Merge commit 'b90feb57ca1ce4b88b48e554ac1e228e72986b05' into HEAD
diff --git a/common/Android.mk b/common/Android.mk
index 7c3d6cc..7141195 100644
--- a/common/Android.mk
+++ b/common/Android.mk
@@ -22,7 +22,10 @@
 src_files := \
 	cmemory.c          cstring.c          \
 	cwchar.c           locmap.c           \
+	lrucache.cpp \
 	punycode.cpp       putil.cpp          \
+	sharedobject.cpp \
+	simplepatternformatter.cpp \
 	uarrsort.c         ubidi.c            \
 	ubidiln.c          ubidi_props.c      \
 	ubidiwrt.c         ucase.cpp          \
@@ -46,7 +49,7 @@
 	uinvchar.c         uloc.cpp           \
 	umapfile.c         umath.c            \
 	umutex.cpp         unames.cpp         \
-	unorm_it.c         uresbund.cpp       \
+	uresbund.cpp       \
 	ures_cnv.c         uresdata.c         \
 	usc_impl.c         uscript.c          \
 	uscript_props.cpp  \
@@ -108,7 +111,8 @@
 	dictionarydata.cpp \
 	ustrcase_locale.cpp unistr_titlecase_brkiter.cpp \
 	uniset_closure.cpp ucasemap_titlecase_brkiter.cpp \
-	ustr_titlecase_brkiter.cpp unistr_case_locale.cpp
+	ustr_titlecase_brkiter.cpp unistr_case_locale.cpp \
+	listformatter.cpp
 
 
 # This is the empty compiled-in icu data structure
diff --git a/common/Makefile.in b/common/Makefile.in
index ec7f23f..98d23d6 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,6 +1,6 @@
 #******************************************************************************
 #
-#   Copyright (C) 1999-2013, International Business Machines
+#   Copyright (C) 1999-2014, International Business Machines
 #   Corporation and others.  All Rights Reserved.
 #
 #******************************************************************************
@@ -94,7 +94,7 @@
 appendable.o ustr_cnv.o unistr_cnv.o unistr.o unistr_case.o unistr_props.o \
 utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o utext.o \
 unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
-normalizer2impl.o normalizer2.o filterednormalizer2.o normlzr.o unorm.o unormcmp.o unorm_it.o \
+normalizer2impl.o normalizer2.o filterednormalizer2.o normlzr.o unorm.o unormcmp.o \
 chariter.o schriter.o uchriter.o uiter.o \
 patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o \
 uscript.o uscript_props.o usc_impl.o unames.o \
@@ -104,7 +104,8 @@
 serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o \
 uidna.o usprep.o uts46.o punycode.o \
 util.o util_props.o parsepos.o locbased.o cwchar.o wintz.o dtintrv.o ucnvsel.o propsvec.o \
-ulist.o uloc_tag.o icudataver.o icuplug.o listformatter.o
+ulist.o uloc_tag.o icudataver.o icuplug.o listformatter.o lrucache.o \
+sharedobject.o simplepatternformatter.o
 
 ## Header files to install
 HEADERS = $(srcdir)/unicode/*.h
diff --git a/common/brkiter.cpp b/common/brkiter.cpp
index adbfd65..5931ebf 100644
--- a/common/brkiter.cpp
+++ b/common/brkiter.cpp
@@ -1,10 +1,10 @@
 /*
 *******************************************************************************
-* Copyright (C) 1997-2013, International Business Machines Corporation and
+* Copyright (C) 1997-2014, International Business Machines Corporation and
 * others. All Rights Reserved.
 *******************************************************************************
 *
-* File TXTBDRY.CPP
+* File brkiter.cpp
 *
 * Modification History:
 *
@@ -461,6 +461,11 @@
     return 1;
 }
 
+BreakIterator::BreakIterator (const Locale& valid, const Locale& actual) {
+  U_LOCALE_BASED(locBased, (*this));
+  locBased.setLocaleIDs(valid, actual);
+}
+
 U_NAMESPACE_END
 
 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/common/common.vcxproj b/common/common.vcxproj
index b12906a..4b16bd1 100644
--- a/common/common.vcxproj
+++ b/common/common.vcxproj
@@ -104,7 +104,7 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc52.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc53.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <ProgramDatabaseFile>.\..\..\lib\icuuc.pdb</ProgramDatabaseFile>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -145,7 +145,7 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc52d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc53d.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>.\..\..\lib\icuucd.pdb</ProgramDatabaseFile>
@@ -183,7 +183,7 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc52.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc53.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <ProgramDatabaseFile>.\..\..\lib64\icuuc.pdb</ProgramDatabaseFile>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -222,7 +222,7 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc52d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc53d.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>.\..\..\lib64\icuucd.pdb</ProgramDatabaseFile>
@@ -371,6 +371,9 @@
     <ClCompile Include="locresdata.cpp" />
     <ClCompile Include="locutil.cpp">
     </ClCompile>
+    <ClCompile Include="lrucache.cpp">
+    <DisableLanguageExtensions>false</DisableLanguageExtensions>
+    </ClCompile>
     <ClCompile Include="resbund.cpp">
     </ClCompile>
     <ClCompile Include="resbund_cnv.cpp" />
@@ -390,7 +393,6 @@
     <ClCompile Include="normlzr.cpp">
     </ClCompile>
     <ClCompile Include="unorm.cpp" />
-    <ClCompile Include="unorm_it.c" />
     <ClCompile Include="unormcmp.cpp" />
     <ClCompile Include="bmpset.cpp" />
     <ClCompile Include="patternprops.cpp" />
@@ -443,6 +445,7 @@
     <ClCompile Include="schriter.cpp" />
     <ClCompile Include="stringpiece.cpp" />
     <ClCompile Include="stringtriebuilder.cpp" />
+    <ClCompile Include="simplepatternformatter.cpp" />
     <ClCompile Include="ucasemap.cpp" />
     <ClCompile Include="ucasemap_titlecase_brkiter.cpp" />
     <ClCompile Include="ucharstrie.cpp" />
@@ -1066,6 +1069,7 @@
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
     </CustomBuild>
     <ClInclude Include="locutil.h" />
+    <ClInclude Include="lrucache.h" />
     <CustomBuild Include="unicode\resbund.h">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
 </Command>
@@ -1080,6 +1084,10 @@
 </Command>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
     </CustomBuild>
+    <ClInclude Include="sharedobject.h" />
+    <ClCompile Include="sharedobject.cpp" />
+    <ClInclude Include="sharedptr.h" />
+    <ClInclude Include="simplepatternformatter.h" />
     <CustomBuild Include="unicode\ucat.h">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
 </Command>
@@ -1197,7 +1205,6 @@
 </Command>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
     </CustomBuild>
-    <ClInclude Include="unorm_it.h" />
     <ClInclude Include="unormimp.h" />
     <ClInclude Include="bmpset.h" />
     <ClInclude Include="messageimpl.h" />
diff --git a/common/common.vcxproj.filters b/common/common.vcxproj.filters
index 4d286d1..b155459 100644
--- a/common/common.vcxproj.filters
+++ b/common/common.vcxproj.filters
@@ -103,6 +103,9 @@
     <ClCompile Include="ucol_swp.cpp">
       <Filter>collation</Filter>
     </ClCompile>
+    <ClCompile Include="lrucache.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="propsvec.c">
       <Filter>collections</Filter>
     </ClCompile>
@@ -241,6 +244,9 @@
     <ClCompile Include="cmemory.c">
       <Filter>data &amp; memory</Filter>
     </ClCompile>
+    <ClCompile Include="sharedobject.cpp">
+      <Filter>data &amp; memory</Filter>
+    </ClCompile>
     <ClCompile Include="ucln_cmn.c">
       <Filter>data &amp; memory</Filter>
     </ClCompile>
@@ -271,6 +277,9 @@
     <ClCompile Include="parsepos.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="simplepatternformatter.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="ustrfmt.c">
       <Filter>formatting</Filter>
     </ClCompile>
@@ -352,9 +361,6 @@
     <ClCompile Include="unorm.cpp">
       <Filter>normalization</Filter>
     </ClCompile>
-    <ClCompile Include="unorm_it.c">
-      <Filter>normalization</Filter>
-    </ClCompile>
     <ClCompile Include="unormcmp.cpp">
       <Filter>normalization</Filter>
     </ClCompile>
@@ -609,6 +615,9 @@
     <ClInclude Include="hash.h">
       <Filter>collections</Filter>
     </ClInclude>
+    <ClInclude Include="lrucache.h">
+      <Filter>collections</Filter>
+    </ClInclude>
     <ClInclude Include="propsvec.h">
       <Filter>collections</Filter>
     </ClInclude>
@@ -696,6 +705,12 @@
     <ClInclude Include="cmemory.h">
       <Filter>data &amp; memory</Filter>
     </ClInclude>
+    <ClInclude Include="sharedobject.h">
+      <Filter>data &amp; memory</Filter>
+    </ClInclude>
+    <ClInclude Include="sharedptr.h">
+      <Filter>data &amp; memory</Filter>
+    </ClInclude>
     <ClInclude Include="ucln.h">
       <Filter>data &amp; memory</Filter>
     </ClInclude>
@@ -717,6 +732,9 @@
     <ClInclude Include="umapfile.h">
       <Filter>data &amp; memory</Filter>
     </ClInclude>
+    <ClInclude Include="simplepatternformatter.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
     <ClInclude Include="ustrfmt.h">
       <Filter>formatting</Filter>
     </ClInclude>
@@ -747,9 +765,6 @@
     <ClInclude Include="normalizer2impl.h">
       <Filter>normalization</Filter>
     </ClInclude>
-    <ClInclude Include="unorm_it.h">
-      <Filter>normalization</Filter>
-    </ClInclude>
     <ClInclude Include="unormimp.h">
       <Filter>normalization</Filter>
     </ClInclude>
diff --git a/common/dictbe.cpp b/common/dictbe.cpp
index 4510426..20447f4 100644
--- a/common/dictbe.cpp
+++ b/common/dictbe.cpp
@@ -1,6 +1,6 @@
 /**
  *******************************************************************************
- * Copyright (C) 2006-2013, International Business Machines Corporation
+ * Copyright (C) 2006-2014, International Business Machines Corporation
  * and others. All Rights Reserved.
  *******************************************************************************
  */
@@ -49,6 +49,9 @@
     int32_t result = 0;
 
     // Find the span of characters included in the set.
+    //   The span to break begins at the current position in the text, and
+    //   extends towards the start or end of the text, depending on 'reverse'.
+
     int32_t start = (int32_t)utext_getNativeIndex(text);
     int32_t current;
     int32_t rangeStart;
diff --git a/common/dictionarydata.cpp b/common/dictionarydata.cpp
index 039871b..f174f9d 100644
--- a/common/dictionarydata.cpp
+++ b/common/dictionarydata.cpp
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-* Copyright (C) 2013, International Business Machines
+* Copyright (C) 2014, International Business Machines
 * Corporation and others.  All Rights Reserved.
 *******************************************************************************
 * dictionarydata.h
@@ -118,7 +118,7 @@
             if (count < limit) {
                 if (values != NULL) {
                     values[count] = bt.getValue();
-            }
+                }
                 lengths[count++] = numChars;
             }
             if (result == USTRINGTRIE_FINAL_VALUE) {
diff --git a/common/listformatter.cpp b/common/listformatter.cpp
index f4350d2..17bc066 100644
--- a/common/listformatter.cpp
+++ b/common/listformatter.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2013, International Business Machines
+*   Copyright (C) 2013-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -15,6 +15,7 @@
 */
 
 #include "unicode/listformatter.h"
+#include "simplepatternformatter.h"
 #include "mutex.h"
 #include "hash.h"
 #include "cstring.h"
@@ -23,12 +24,43 @@
 #include "ucln_cmn.h"
 #include "uresimp.h"
 
+#define LENGTHOF(array) (int32_t)(sizeof(array) / sizeof((array)[0]))
+
 U_NAMESPACE_BEGIN
 
+struct ListFormatInternal : public UMemory {
+    SimplePatternFormatter twoPattern;
+    SimplePatternFormatter startPattern;
+    SimplePatternFormatter middlePattern;
+    SimplePatternFormatter endPattern;
+
+ListFormatInternal(
+        const UnicodeString& two,
+        const UnicodeString& start,
+        const UnicodeString& middle,
+        const UnicodeString& end) :
+        twoPattern(two),
+        startPattern(start),
+        middlePattern(middle),
+        endPattern(end) {}
+
+ListFormatInternal(const ListFormatData &data) :
+        twoPattern(data.twoPattern),
+        startPattern(data.startPattern),
+        middlePattern(data.middlePattern),
+        endPattern(data.endPattern) { }
+
+ListFormatInternal(const ListFormatInternal &other) :
+    twoPattern(other.twoPattern),
+    startPattern(other.startPattern),
+    middlePattern(other.middlePattern),
+    endPattern(other.endPattern) { }
+};
+
+
+
 static Hashtable* listPatternHash = NULL;
 static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
-static UChar FIRST_PARAMETER[] = { 0x7b, 0x30, 0x7d };  // "{0}"
-static UChar SECOND_PARAMETER[] = { 0x7b, 0x31, 0x7d };  // "{0}"
 static const char *STANDARD_STYLE = "standard";
 
 U_CDECL_BEGIN
@@ -39,20 +71,43 @@
 }
 
 static void U_CALLCONV
-uprv_deleteListFormatData(void *obj) {
-    delete static_cast<ListFormatData *>(obj);
+uprv_deleteListFormatInternal(void *obj) {
+    delete static_cast<ListFormatInternal *>(obj);
 }
 
 U_CDECL_END
 
-static ListFormatData* loadListFormatData(const Locale& locale, const char* style, UErrorCode& errorCode);
-static void getStringByKey(const UResourceBundle* rb, const char* key, UnicodeString& result, UErrorCode& errorCode);
+static ListFormatInternal* loadListFormatInternal(
+        const Locale& locale,
+        const char* style,
+        UErrorCode& errorCode);
 
-ListFormatter::ListFormatter(const ListFormatter& other) : data(other.data) {
+static void getStringByKey(
+        const UResourceBundle* rb,
+        const char* key,
+        UnicodeString& result,
+        UErrorCode& errorCode);
+
+ListFormatter::ListFormatter(const ListFormatter& other) :
+        owned(other.owned), data(other.data) {
+    if (other.owned != NULL) {
+        owned = new ListFormatInternal(*other.owned);
+        data = owned;
+    }
 }
 
 ListFormatter& ListFormatter::operator=(const ListFormatter& other) {
-    data = other.data;
+    if (this == &other) {
+        return *this;
+    }
+    delete owned;
+    if (other.owned) {
+        owned = new ListFormatInternal(*other.owned);
+        data = owned;
+    } else {
+        owned = NULL;
+        data = other.data;
+    }
     return *this;
 }
 
@@ -67,12 +122,12 @@
         return;
     }
 
-    listPatternHash->setValueDeleter(uprv_deleteListFormatData);
+    listPatternHash->setValueDeleter(uprv_deleteListFormatInternal);
     ucln_common_registerCleanup(UCLN_COMMON_LIST_FORMATTER, uprv_listformatter_cleanup);
 
 }
 
-const ListFormatData* ListFormatter::getListFormatData(
+const ListFormatInternal* ListFormatter::getListFormatInternal(
         const Locale& locale, const char *style, UErrorCode& errorCode) {
     if (U_FAILURE(errorCode)) {
         return NULL;
@@ -80,7 +135,7 @@
     CharString keyBuffer(locale.getName(), errorCode);
     keyBuffer.append(':', errorCode).append(style, errorCode);
     UnicodeString key(keyBuffer.data(), -1, US_INV);
-    ListFormatData* result = NULL;
+    ListFormatInternal* result = NULL;
     {
         Mutex m(&listFormatterMutex);
         if (listPatternHash == NULL) {
@@ -89,19 +144,19 @@
                 return NULL;
             }
         }
-        result = static_cast<ListFormatData*>(listPatternHash->get(key));
+        result = static_cast<ListFormatInternal*>(listPatternHash->get(key));
     }
     if (result != NULL) {
         return result;
     }
-    result = loadListFormatData(locale, style, errorCode);
+    result = loadListFormatInternal(locale, style, errorCode);
     if (U_FAILURE(errorCode)) {
         return NULL;
     }
 
     {
         Mutex m(&listFormatterMutex);
-        ListFormatData* temp = static_cast<ListFormatData*>(listPatternHash->get(key));
+        ListFormatInternal* temp = static_cast<ListFormatInternal*>(listPatternHash->get(key));
         if (temp != NULL) {
             delete result;
             result = temp;
@@ -115,7 +170,7 @@
     return result;
 }
 
-static ListFormatData* loadListFormatData(
+static ListFormatInternal* loadListFormatInternal(
         const Locale& locale, const char * style, UErrorCode& errorCode) {
     UResourceBundle* rb = ures_open(NULL, locale.getName(), &errorCode);
     if (U_FAILURE(errorCode)) {
@@ -144,7 +199,7 @@
     if (U_FAILURE(errorCode)) {
         return NULL;
     }
-    ListFormatData* result = new ListFormatData(two, start, middle, end);
+    ListFormatInternal* result = new ListFormatInternal(two, start, middle, end);
     if (result == NULL) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
         return NULL;
@@ -172,11 +227,11 @@
 
 ListFormatter* ListFormatter::createInstance(const Locale& locale, const char *style, UErrorCode& errorCode) {
     Locale tempLocale = locale;
-    const ListFormatData* listFormatData = getListFormatData(tempLocale, style, errorCode);
+    const ListFormatInternal* listFormatInternal = getListFormatInternal(tempLocale, style, errorCode);
     if (U_FAILURE(errorCode)) {
         return NULL;
     }
-    ListFormatter* p = new ListFormatter(listFormatData);
+    ListFormatter* p = new ListFormatter(listFormatInternal);
     if (p == NULL) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
         return NULL;
@@ -184,14 +239,76 @@
     return p;
 }
 
-
-ListFormatter::ListFormatter(const ListFormatData* listFormatterData) : data(listFormatterData) {
+ListFormatter::ListFormatter(const ListFormatData& listFormatData) {
+    owned = new ListFormatInternal(listFormatData);
+    data = owned;
 }
 
-ListFormatter::~ListFormatter() {}
+ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(NULL), data(listFormatterInternal) {
+}
 
-UnicodeString& ListFormatter::format(const UnicodeString items[], int32_t nItems,
-                      UnicodeString& appendTo, UErrorCode& errorCode) const {
+ListFormatter::~ListFormatter() {
+    delete owned;
+}
+
+/**
+ * Joins first and second using the pattern pat.
+ * On entry offset is an offset into first or -1 if offset unspecified.
+ * On exit offset is offset of second in result if recordOffset was set
+ * Otherwise if it was >=0 it is set to point into result where it used
+ * to point into first.
+ */
+static void joinStrings(
+        const SimplePatternFormatter& pat,
+        const UnicodeString& first,
+        const UnicodeString& second,
+        UnicodeString &result,
+        UBool recordOffset,
+        int32_t &offset,
+        UErrorCode& errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    const UnicodeString *params[2] = {&first, &second};
+    int32_t offsets[2];
+    pat.format(
+            params,
+            LENGTHOF(params),
+            result,
+            offsets,
+            LENGTHOF(offsets),
+            errorCode);
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if (offsets[0] == -1 || offsets[1] == -1) {
+        errorCode = U_INVALID_FORMAT_ERROR;
+        return;
+    }
+    if (recordOffset) {
+        offset = offsets[1];
+    } else if (offset >= 0) {
+        offset += offsets[0];
+    }
+}
+
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        UErrorCode& errorCode) const {
+    int32_t offset;
+    return format(items, nItems, appendTo, -1, offset, errorCode);
+}
+
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        int32_t index,
+        int32_t &offset,
+        UErrorCode& errorCode) const {
+    offset = -1;
     if (U_FAILURE(errorCode)) {
         return appendTo;
     }
@@ -200,67 +317,74 @@
         return appendTo;
     }
 
-    if (nItems > 0) {
-        UnicodeString newString = items[0];
-        if (nItems == 2) {
-            addNewString(data->twoPattern, newString, items[1], errorCode);
-        } else if (nItems > 2) {
-            addNewString(data->startPattern, newString, items[1], errorCode);
-            int32_t i;
-            for (i = 2; i < nItems - 1; ++i) {
-                addNewString(data->middlePattern, newString, items[i], errorCode);
-            }
-            addNewString(data->endPattern, newString, items[nItems - 1], errorCode);
+    if (nItems <= 0) {
+        return appendTo;
+    }
+    if (nItems == 1) {
+        if (index == 0) {
+            offset = appendTo.length();
         }
-        if (U_SUCCESS(errorCode)) {
-            appendTo += newString;
+        appendTo.append(items[0]);
+        return appendTo;
+    }
+    if (nItems == 2) {
+        if (index == 0) {
+            offset = 0;
         }
+        joinStrings(
+                data->twoPattern,
+                items[0],
+                items[1],
+                appendTo,
+                index == 1,
+                offset,
+                errorCode);
+        return appendTo;
+    }
+    UnicodeString temp[2];
+    if (index == 0) {
+        offset = 0;
+    }
+    joinStrings(
+            data->startPattern,
+            items[0],
+            items[1],
+            temp[0],
+            index == 1,
+            offset,
+            errorCode);
+    int32_t i;
+    int32_t pos = 0;
+    int32_t npos = 1;
+    for (i = 2; i < nItems - 1; ++i) {
+         temp[npos].remove();
+         joinStrings(
+                 data->middlePattern,
+                 temp[pos],
+                 items[i],
+                 temp[npos],
+                 index == i,
+                 offset,
+                 errorCode);
+         pos = npos;
+         npos = (pos + 1) & 1;
+    }
+    temp[npos].remove();
+    joinStrings(
+            data->endPattern,
+            temp[pos],
+            items[nItems - 1],
+            temp[npos],
+            index == nItems - 1,
+            offset,
+            errorCode);
+    if (U_SUCCESS(errorCode)) {
+        if (offset >= 0) {
+            offset += appendTo.length();
+        }
+        appendTo += temp[npos];
     }
     return appendTo;
 }
 
-/**
- * Joins originalString and nextString using the pattern pat and puts the result in
- * originalString.
- */
-void ListFormatter::addNewString(const UnicodeString& pat, UnicodeString& originalString,
-                                 const UnicodeString& nextString, UErrorCode& errorCode) const {
-    if (U_FAILURE(errorCode)) {
-        return;
-    }
-
-    int32_t p0Offset = pat.indexOf(FIRST_PARAMETER, 3, 0);
-    if (p0Offset < 0) {
-        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
-        return;
-    }
-    int32_t p1Offset = pat.indexOf(SECOND_PARAMETER, 3, 0);
-    if (p1Offset < 0) {
-        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
-        return;
-    }
-
-    int32_t i, j;
-
-    const UnicodeString* firstString;
-    const UnicodeString* secondString;
-    if (p0Offset < p1Offset) {
-        i = p0Offset;
-        j = p1Offset;
-        firstString = &originalString;
-        secondString = &nextString;
-    } else {
-        i = p1Offset;
-        j = p0Offset;
-        firstString = &nextString;
-        secondString = &originalString;
-    }
-
-    UnicodeString result = UnicodeString(pat, 0, i) + *firstString;
-    result += UnicodeString(pat, i+3, j-i-3);
-    result += *secondString;
-    result += UnicodeString(pat, j+3);
-    originalString = result;
-}
-
 U_NAMESPACE_END
diff --git a/common/locbased.cpp b/common/locbased.cpp
index e96b9f7..b3d911d 100644
--- a/common/locbased.cpp
+++ b/common/locbased.cpp
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-* Copyright (c) 2004, International Business Machines
+* Copyright (c) 2004-2014, International Business Machines
 * Corporation and others.  All Rights Reserved.
 **********************************************************************
 * Author: Alan Liu
@@ -43,4 +43,9 @@
     }
 }
 
+void LocaleBased::setLocaleIDs(const Locale& validID, const Locale& actualID) {
+  uprv_strcpy(valid, validID.getName());
+  uprv_strcpy(actual, actualID.getName());
+}
+
 U_NAMESPACE_END
diff --git a/common/locbased.h b/common/locbased.h
index 366b151..d9f8942 100644
--- a/common/locbased.h
+++ b/common/locbased.h
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-* Copyright (c) 2004, International Business Machines
+* Copyright (c) 2004-2014, International Business Machines
 * Corporation and others.  All Rights Reserved.
 **********************************************************************
 * Author: Alan Liu
@@ -75,6 +75,14 @@
      */
     void setLocaleIDs(const char* valid, const char* actual);
 
+    /**
+     * Set the locale meta-data for the service object wrapped by this
+     * object.
+     * @param valid the ID of the valid locale
+     * @param actual the ID of the actual locale
+     */
+    void setLocaleIDs(const Locale& valid, const Locale& actual);
+
  private:
 
     char* valid;
diff --git a/common/locmap.c b/common/locmap.c
index 9a6fb0d..59809c6 100644
--- a/common/locmap.c
+++ b/common/locmap.c
@@ -294,7 +294,7 @@
     {0x540a, "es_US"},
     {0x380a, "es_UY"},
     {0x200a, "es_VE"},
-    {0xe40a, "es_419"},
+    {0x580a, "es_419"},
     {0x040a, "es_ES@collation=traditional"},
     {0x040a, "es@collation=traditional"}
 };
@@ -462,7 +462,8 @@
     {0x7c50, "mn_Mong"},
     {0x0850, "mn_Mong_CN"},
     {0x0850, "mn_CN"},
-    {0x7850, "mn_Cyrl"}
+    {0x7850, "mn_Cyrl"},
+    {0x0c50, "mn_Mong_MN"}
 };
 
 ILCID_POSIX_ELEMENT_ARRAY(0x0458, mni,mni_IN)
diff --git a/common/lrucache.cpp b/common/lrucache.cpp
new file mode 100644
index 0000000..a92d038
--- /dev/null
+++ b/common/lrucache.cpp
@@ -0,0 +1,178 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines Corporation and         
+* others. All Rights Reserved.                                                
+******************************************************************************
+*                                                                             
+* File LRUCACHE.CPP                                                             
+******************************************************************************
+*/
+
+#include "lrucache.h"
+#include "uhash.h"
+#include "cstring.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+// TODO (Travis Keep): Consider building synchronization into this cache
+// instead of leaving synchronization up to the clients.
+
+LRUCache::CacheEntry::CacheEntry() 
+    : moreRecent(NULL), lessRecent(NULL), localeId(NULL), cachedData(NULL),
+      status(U_ZERO_ERROR) {
+}
+
+LRUCache::CacheEntry::~CacheEntry() {
+    reset();
+}
+
+void LRUCache::CacheEntry::unlink() {
+    if (moreRecent != NULL) {
+        moreRecent->lessRecent = lessRecent;
+    }
+    if (lessRecent != NULL) {
+        lessRecent->moreRecent = moreRecent;
+    }
+    moreRecent = NULL;
+    lessRecent = NULL;
+}
+
+void LRUCache::CacheEntry::reset() {
+    SharedObject::clearPtr(cachedData);
+    status = U_ZERO_ERROR;
+    uprv_free(localeId);
+    localeId = NULL;
+}
+
+void LRUCache::CacheEntry::init(
+        char *adoptedLocId, SharedObject *dataToAdopt, UErrorCode err) {
+    U_ASSERT(localeId == NULL);
+    localeId = adoptedLocId;
+    SharedObject::copyPtr(dataToAdopt, cachedData);
+    status = err;
+}
+
+void LRUCache::moveToMostRecent(CacheEntry *entry) {
+    if (entry->moreRecent == mostRecentlyUsedMarker) {
+        return;
+    }
+    entry->unlink();
+    entry->moreRecent = mostRecentlyUsedMarker;
+    entry->lessRecent = mostRecentlyUsedMarker->lessRecent;
+    mostRecentlyUsedMarker->lessRecent->moreRecent = entry;
+    mostRecentlyUsedMarker->lessRecent = entry;
+}
+
+void LRUCache::init(char *adoptedLocId, CacheEntry *entry) {
+    UErrorCode status = U_ZERO_ERROR;
+    SharedObject *result = create(adoptedLocId, status);
+    entry->init(adoptedLocId, result, status);
+}
+
+UBool LRUCache::contains(const char *localeId) const {
+    return (uhash_get(localeIdToEntries, localeId) != NULL);
+}
+
+
+const SharedObject *LRUCache::_get(const char *localeId, UErrorCode &status) {
+    // TODO (Travis Keep): Consider stripping irrelevant locale keywords.
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    CacheEntry *entry = static_cast<CacheEntry *>(uhash_get(
+            localeIdToEntries, localeId));
+    if (entry == NULL) {
+        // Its a cache miss.
+
+        if (uhash_count(localeIdToEntries) < maxSize) {
+            // Cache not full. There is room for a new entry.
+            entry = new CacheEntry;
+            if (entry == NULL) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return NULL;
+            }
+        } else {
+            // Cache full. Must evict an entry and re-use it.
+            entry = leastRecentlyUsedMarker->moreRecent;
+            uhash_remove(localeIdToEntries, entry->localeId);
+            entry->unlink();
+            entry->reset();
+        }
+ 
+        // entry is an uninitialized, unlinked cache entry 
+        char *dupLocaleId = uprv_strdup(localeId);
+        if (dupLocaleId == NULL) {
+            delete entry;
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return NULL;
+        }
+        init(dupLocaleId, entry);
+
+        // Entry is initialized, add to hashtable
+        uhash_put(localeIdToEntries, entry->localeId, entry, &status);
+        if (U_FAILURE(status)) {
+            delete entry;
+            return NULL;
+        }
+    }
+
+    // Re-link entry so that it is the most recent.
+    moveToMostRecent(entry);
+
+    if (U_FAILURE(entry->status)) {
+        status = entry->status;
+        return NULL;
+    }
+    return entry->cachedData;
+}
+
+LRUCache::LRUCache(int32_t size, UErrorCode &status) :
+        mostRecentlyUsedMarker(NULL),
+        leastRecentlyUsedMarker(NULL),
+        localeIdToEntries(NULL),
+        maxSize(size) {
+    if (U_FAILURE(status)) {
+        return;
+    }
+    mostRecentlyUsedMarker = new CacheEntry;
+    leastRecentlyUsedMarker = new CacheEntry;
+    if (mostRecentlyUsedMarker == NULL || leastRecentlyUsedMarker == NULL) {
+        delete mostRecentlyUsedMarker;
+        delete leastRecentlyUsedMarker;
+        mostRecentlyUsedMarker = leastRecentlyUsedMarker = NULL;
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    mostRecentlyUsedMarker->moreRecent = NULL;
+    mostRecentlyUsedMarker->lessRecent = leastRecentlyUsedMarker;
+    leastRecentlyUsedMarker->moreRecent = mostRecentlyUsedMarker;
+    leastRecentlyUsedMarker->lessRecent = NULL;
+    localeIdToEntries = uhash_openSize(
+        uhash_hashChars,
+        uhash_compareChars,
+        NULL,
+        maxSize + maxSize / 5,
+        &status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+}
+
+LRUCache::~LRUCache() {
+    uhash_close(localeIdToEntries);
+    for (CacheEntry *i = mostRecentlyUsedMarker; i != NULL;) {
+        CacheEntry *next = i->lessRecent;
+        delete i;
+        i = next;
+    }
+}
+
+SimpleLRUCache::~SimpleLRUCache() {
+}
+
+SharedObject *SimpleLRUCache::create(const char *localeId, UErrorCode &status) {
+    return createFunc(localeId, status);
+}
+
+U_NAMESPACE_END
diff --git a/common/lrucache.h b/common/lrucache.h
new file mode 100644
index 0000000..22c30a3
--- /dev/null
+++ b/common/lrucache.h
@@ -0,0 +1,95 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines Corporation and         
+* others. All Rights Reserved.                                                
+******************************************************************************
+*                                                                             
+* File LRUCACHE.H                                                             
+******************************************************************************
+*/
+
+#ifndef __LRU_CACHE_H__
+#define __LRU_CACHE_H__
+
+#include "unicode/uobject.h"
+#include "sharedobject.h"
+
+struct UHashtable;
+
+U_NAMESPACE_BEGIN
+
+/**
+ * LRUCache keyed by locale ID.
+ */
+
+class U_COMMON_API LRUCache : public UObject {
+public:
+    template<typename T>
+    void get(const char *localeId, const T *&ptr, UErrorCode &status) {
+        const T *value = (const T *) _get(localeId, status);
+        if (U_FAILURE(status)) {
+            return;
+        }
+        SharedObject::copyPtr(value, ptr);
+    }
+    UBool contains(const char *localeId) const;
+    virtual ~LRUCache();
+protected:
+    virtual SharedObject *create(const char *localeId, UErrorCode &status)=0;
+    LRUCache(int32_t maxSize, UErrorCode &status);
+private:
+    class CacheEntry : public UMemory {
+    public:
+        CacheEntry *moreRecent;
+        CacheEntry *lessRecent;
+        char *localeId;
+        const SharedObject *cachedData;
+        UErrorCode status;  // This is the error if any from creating
+                            // cachedData.
+        CacheEntry();
+        ~CacheEntry();
+
+        void unlink();
+        void reset();
+        void init(
+               char *adoptedLocId, SharedObject *dataToAdopt, UErrorCode err);
+    private:
+        CacheEntry(const CacheEntry& other);
+        CacheEntry &operator=(const CacheEntry& other);
+    };
+    LRUCache();
+    LRUCache(const LRUCache &other);
+    LRUCache &operator=(const LRUCache &other);
+
+    // TODO (Travis Keep): Consider replacing both of these end nodes with a
+    // single sentinel.
+    CacheEntry *mostRecentlyUsedMarker;
+    CacheEntry *leastRecentlyUsedMarker;
+    UHashtable *localeIdToEntries;
+    int32_t maxSize;
+
+    void moveToMostRecent(CacheEntry *cacheEntry);
+    void init(char *localeId, CacheEntry *cacheEntry);
+    const SharedObject *_get(const char *localeId, UErrorCode &status);
+};
+
+typedef SharedObject *CreateFunc(const char *localeId, UErrorCode &status);
+
+class U_COMMON_API SimpleLRUCache : public LRUCache {
+public:
+    SimpleLRUCache(
+        int32_t maxSize,
+        CreateFunc cf,
+        UErrorCode &status) :
+            LRUCache(maxSize, status), createFunc(cf) {
+    }
+    virtual ~SimpleLRUCache();
+protected:
+    virtual SharedObject *create(const char *localeId, UErrorCode &status);
+private:
+    CreateFunc *createFunc;
+};
+    
+U_NAMESPACE_END
+
+#endif
diff --git a/common/normalizer2impl.cpp b/common/normalizer2impl.cpp
index 9c00c1c..e8e1109 100644
--- a/common/normalizer2impl.cpp
+++ b/common/normalizer2impl.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2009-2013, International Business Machines
+*   Copyright (C) 2009-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -357,9 +357,71 @@
     }
 }
 
+namespace {
+
+class LcccContext {
+public:
+    LcccContext(const Normalizer2Impl &ni, UnicodeSet &s) : impl(ni), set(s) {}
+
+    void handleRange(UChar32 start, UChar32 end, uint16_t norm16) {
+        if(impl.isAlgorithmicNoNo(norm16)) {
+            // Range of code points with same-norm16-value algorithmic decompositions.
+            // They might have different non-zero FCD16 values.
+            do {
+                uint16_t fcd16=impl.getFCD16(start);
+                if(fcd16>0xff) { set.add(start); }
+            } while(++start<=end);
+        } else {
+            uint16_t fcd16=impl.getFCD16(start);
+            if(fcd16>0xff) { set.add(start, end); }
+        }
+    }
+
+private:
+    const Normalizer2Impl &impl;
+    UnicodeSet &set;
+};
+
+struct PropertyStartsContext {
+    PropertyStartsContext(const Normalizer2Impl &ni, const USetAdder *adder)
+            : impl(ni), sa(adder) {}
+
+    const Normalizer2Impl &impl;
+    const USetAdder *sa;
+};
+
+}  // namespace
+
 U_CDECL_BEGIN
 
 static UBool U_CALLCONV
+enumLcccRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
+    ((LcccContext *)context)->handleRange(start, end, (uint16_t)value);
+    return TRUE;
+}
+
+static UBool U_CALLCONV
+enumNorm16PropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
+    /* add the start code point to the USet */
+    const PropertyStartsContext *ctx=(const PropertyStartsContext *)context;
+    const USetAdder *sa=ctx->sa;
+    sa->add(sa->set, start);
+    if(start!=end && ctx->impl.isAlgorithmicNoNo((uint16_t)value)) {
+        // Range of code points with same-norm16-value algorithmic decompositions.
+        // They might have different non-zero FCD16 values.
+        uint16_t prevFCD16=ctx->impl.getFCD16(start);
+        while(++start<=end) {
+            uint16_t fcd16=ctx->impl.getFCD16(start);
+            if(fcd16!=prevFCD16) {
+                sa->add(sa->set, start);
+                prevFCD16=fcd16;
+            }
+        }
+    }
+    return TRUE;
+}
+
+static UBool U_CALLCONV
 enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) {
     /* add the start code point to the USet */
     const USetAdder *sa=(const USetAdder *)context;
@@ -375,9 +437,17 @@
 U_CDECL_END
 
 void
+Normalizer2Impl::addLcccChars(UnicodeSet &set) const {
+    /* add the start code point of each same-value range of each trie */
+    LcccContext context(*this, set);
+    utrie2_enum(normTrie, NULL, enumLcccRange, &context);
+}
+
+void
 Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) const {
     /* add the start code point of each same-value range of each trie */
-    utrie2_enum(normTrie, NULL, enumPropertyStartsRange, sa);
+    PropertyStartsContext context(*this, sa);
+    utrie2_enum(normTrie, NULL, enumNorm16PropertyStartsRange, &context);
 
     /* add Hangul LV syllables and LV+1 because of skippables */
     for(UChar c=Hangul::HANGUL_BASE; c<Hangul::HANGUL_LIMIT; c+=Hangul::JAMO_T_COUNT) {
@@ -419,6 +489,38 @@
     return src;
 }
 
+UnicodeString &
+Normalizer2Impl::decompose(const UnicodeString &src, UnicodeString &dest,
+                           UErrorCode &errorCode) const {
+    if(U_FAILURE(errorCode)) {
+        dest.setToBogus();
+        return dest;
+    }
+    const UChar *sArray=src.getBuffer();
+    if(&dest==&src || sArray==NULL) {
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        dest.setToBogus();
+        return dest;
+    }
+    decompose(sArray, sArray+src.length(), dest, src.length(), errorCode);
+    return dest;
+}
+
+void
+Normalizer2Impl::decompose(const UChar *src, const UChar *limit,
+                           UnicodeString &dest,
+                           int32_t destLengthEstimate,
+                           UErrorCode &errorCode) const {
+    if(destLengthEstimate<0 && limit!=NULL) {
+        destLengthEstimate=(int32_t)(limit-src);
+    }
+    dest.remove();
+    ReorderingBuffer buffer(*this, dest);
+    if(buffer.init(destLengthEstimate, errorCode)) {
+        decompose(src, limit, &buffer, errorCode);
+    }
+}
+
 // Dual functionality:
 // buffer!=NULL: normalize
 // buffer==NULL: isNormalized/spanQuickCheckYes
diff --git a/common/normalizer2impl.h b/common/normalizer2impl.h
index 3b85eb0..68c9bbb 100644
--- a/common/normalizer2impl.h
+++ b/common/normalizer2impl.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2009-2013, International Business Machines
+*   Copyright (C) 2009-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -34,15 +34,19 @@
 
 struct CanonIterData;
 
-class Hangul {
+class U_COMMON_API Hangul {
 public:
     /* Korean Hangul and Jamo constants */
     enum {
         JAMO_L_BASE=0x1100,     /* "lead" jamo */
+        JAMO_L_END=0x1112,
         JAMO_V_BASE=0x1161,     /* "vowel" jamo */
+        JAMO_V_END=0x1175,
         JAMO_T_BASE=0x11a7,     /* "trail" jamo */
+        JAMO_T_END=0x11c2,
 
         HANGUL_BASE=0xac00,
+        HANGUL_END=0xd7a3,
 
         JAMO_L_COUNT=19,
         JAMO_V_COUNT=21,
@@ -110,7 +114,7 @@
 
 class Normalizer2Impl;
 
-class ReorderingBuffer : public UMemory {
+class U_COMMON_API ReorderingBuffer : public UMemory {
 public:
     ReorderingBuffer(const Normalizer2Impl &ni, UnicodeString &dest) :
         impl(ni), str(dest),
@@ -222,6 +226,7 @@
 
     void load(const char *packageName, const char *name, UErrorCode &errorCode);
 
+    void addLcccChars(UnicodeSet &set) const;
     void addPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const;
     void addCanonIterPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const;
 
@@ -242,6 +247,7 @@
             return UNORM_NO;
         }
     }
+    UBool isAlgorithmicNoNo(uint16_t norm16) const { return limitNoNo<=norm16 && norm16<minMaybeYes; }
     UBool isCompNo(uint16_t norm16) const { return minNoNo<=norm16 && norm16<minMaybeYes; }
     UBool isDecompYes(uint16_t norm16) const { return norm16<minYesNo || minMaybeYes<=norm16; }
 
@@ -416,6 +422,18 @@
 
     // higher-level functionality ------------------------------------------ ***
 
+    // NFD without an NFD Normalizer2 instance.
+    UnicodeString &decompose(const UnicodeString &src, UnicodeString &dest,
+                             UErrorCode &errorCode) const;
+    /**
+     * Decomposes [src, limit[ and writes the result to dest.
+     * limit can be NULL if src is NUL-terminated.
+     * destLengthEstimate is the initial dest buffer capacity and can be -1.
+     */
+    void decompose(const UChar *src, const UChar *limit,
+                   UnicodeString &dest, int32_t destLengthEstimate,
+                   UErrorCode &errorCode) const;
+
     const UChar *decompose(const UChar *src, const UChar *limit,
                            ReorderingBuffer *buffer, UErrorCode &errorCode) const;
     void decomposeAndAppend(const UChar *src, const UChar *limit,
diff --git a/common/propname_data.h b/common/propname_data.h
index f17cce4..6ebee59 100644
--- a/common/propname_data.h
+++ b/common/propname_data.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2013, International Business Machines
+ * Copyright (C) 1999-2014, International Business Machines
  * Corporation and others.  All Rights Reserved.
  *
  * file name: propname_data.h
diff --git a/common/putil.cpp b/common/putil.cpp
index 62165c2..b7e2647 100644
--- a/common/putil.cpp
+++ b/common/putil.cpp
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1997-2013, International Business Machines
+*   Copyright (C) 1997-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -2136,6 +2136,7 @@
 
 U_CAPI void U_EXPORT2
 u_getVersion(UVersionInfo versionArray) {
+    (void)copyright;   // Suppress unused variable warning from clang.
     u_versionFromString(versionArray, U_ICU_VERSION);
 }
 
diff --git a/common/putilimp.h b/common/putilimp.h
index afbd622..beaf647 100644
--- a/common/putilimp.h
+++ b/common/putilimp.h
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1997-2013, International Business Machines
+*   Copyright (C) 1997-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -85,7 +85,7 @@
 
 #ifdef U_HAVE_NL_LANGINFO_CODESET
     /* Use the predefined value. */
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_HAS_WIN32_API || U_PLATFORM == U_PF_ANDROID
 #   define U_HAVE_NL_LANGINFO_CODESET 0
 #else
 #   define U_HAVE_NL_LANGINFO_CODESET 1
diff --git a/common/rbbi.cpp b/common/rbbi.cpp
index 6ab57a7..f091a3a 100644
--- a/common/rbbi.cpp
+++ b/common/rbbi.cpp
@@ -1,6 +1,6 @@
 /*
 ***************************************************************************
-*   Copyright (C) 1999-2013 International Business Machines Corporation
+*   Copyright (C) 1999-2014 International Business Machines Corporation
 *   and others. All rights reserved.
 ***************************************************************************
 */
@@ -592,6 +592,7 @@
     }
 
     int32_t startPos = current();
+    fDictionaryCharCount = 0;
     int32_t result = handleNext(fData->fForwardTable);
     if (fDictionaryCharCount > 0) {
         result = checkDictionary(startPos, result, FALSE);
@@ -646,7 +647,6 @@
     // break position before the current position (we back our internal
     // iterator up one step to prevent handlePrevious() from returning
     // the current position), but not necessarily the last one before
-
     // where we started
 
     int32_t start = current();
@@ -679,11 +679,11 @@
     // the result position that we are to return (in lastResult.)  If
     // the backwards rules overshot and the above loop had to do two or more
     // next()s to move up to the desired return position, we will have a valid
-    // tag value. But, if handlePrevious() took us to exactly the correct result positon,
+    // tag value. But, if handlePrevious() took us to exactly the correct result position,
     // we wont have a tag value for that position, which is only set by handleNext().
 
-    // set the current iteration position to be the last break position
-    // before where we started, and then return that value
+    // Set the current iteration position to be the last break position
+    // before where we started, and then return that value.
     utext_setNativeIndex(fText, lastResult);
     fLastRuleStatusIndex  = lastTag;       // for use by getRuleStatus()
     fLastStatusIndexValid = breakTagValid;
@@ -1703,6 +1703,7 @@
     // If we found breaks, build a new break cache. The first and last entries must
     // be the original starting and ending position.
     if (foundBreakCount > 0) {
+        U_ASSERT(foundBreakCount == breaks.size());
         int32_t totalBreaks = foundBreakCount;
         if (startPos < breaks.elementAti(0)) {
             totalBreaks += 1;
diff --git a/common/sharedobject.cpp b/common/sharedobject.cpp
new file mode 100644
index 0000000..bad7980
--- /dev/null
+++ b/common/sharedobject.cpp
@@ -0,0 +1,37 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines
+* Corporation and others.  All Rights Reserved.
+******************************************************************************
+* sharedobject.cpp
+*/
+#include "sharedobject.h"
+
+U_NAMESPACE_BEGIN
+SharedObject::~SharedObject() {}
+
+void
+SharedObject::addRef() const {
+    umtx_atomic_inc(&refCount);
+}
+
+void
+SharedObject::removeRef() const {
+    if(umtx_atomic_dec(&refCount) == 0) {
+        delete this;
+    }
+}
+
+int32_t
+SharedObject::getRefCount() const {
+    return umtx_loadAcquire(refCount);
+}
+
+void
+SharedObject::deleteIfZeroRefCount() const {
+    if(getRefCount() == 0) {
+        delete this;
+    }
+}
+
+U_NAMESPACE_END
diff --git a/common/sharedobject.h b/common/sharedobject.h
new file mode 100644
index 0000000..671bab1
--- /dev/null
+++ b/common/sharedobject.h
@@ -0,0 +1,111 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines
+* Corporation and others.  All Rights Reserved.
+******************************************************************************
+* sharedobject.h
+*/
+
+#ifndef __SHAREDOBJECT_H__
+#define __SHAREDOBJECT_H__
+
+
+#include "unicode/uobject.h"
+#include "umutex.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * Base class for shared, reference-counted, auto-deleted objects.
+ * Subclasses can be immutable.
+ * If they are mutable, then they must implement their copy constructor
+ * so that copyOnWrite() works.
+ *
+ * Either stack-allocate, use LocalPointer, or use addRef()/removeRef().
+ * Sharing requires reference-counting.
+ */
+class U_COMMON_API SharedObject : public UObject {
+public:
+    /** Initializes refCount to 0. */
+    SharedObject() : refCount(0) {}
+
+    /** Initializes refCount to 0. */
+    SharedObject(const SharedObject &/*other*/) : refCount(0) {}
+    virtual ~SharedObject();
+
+    /**
+     * Increments the number of references to this object. Thread-safe.
+     */
+    void addRef() const;
+
+    /**
+     * Decrements the number of references to this object,
+     * and auto-deletes "this" if the number becomes 0. Thread-safe.
+     */
+    void removeRef() const;
+
+    /**
+     * Returns the reference counter. Uses a memory barrier.
+     */
+    int32_t getRefCount() const;
+
+    void deleteIfZeroRefCount() const;
+
+    /**
+     * Returns a writable version of ptr.
+     * If there is exactly one owner, then ptr itself is returned as a
+     *  non-const pointer.
+     * If there are multiple owners, then ptr is replaced with a 
+     * copy-constructed clone,
+     * and that is returned.
+     * Returns NULL if cloning failed.
+     *
+     * T must be a subclass of SharedObject.
+     */
+    template<typename T>
+    static T *copyOnWrite(const T *&ptr) {
+        const T *p = ptr;
+        if(p->getRefCount() <= 1) { return const_cast<T *>(p); }
+        T *p2 = new T(*p);
+        if(p2 == NULL) { return NULL; }
+        p->removeRef();
+        ptr = p2;
+        p2->addRef();
+        return p2;
+    }
+
+    /**
+     * Makes dest an owner of the object pointed to by src while adjusting
+     * reference counts and deleting the previous object dest pointed to
+     * if necessary. Before this call is made, dest must either be NULL or
+     * own its object. 
+     *
+     * T must be a subclass of SharedObject.
+     */
+    template<typename T>
+    static void copyPtr(const T *src, const T *&dest) {
+        if(src != dest) {
+            if(dest != NULL) { dest->removeRef(); }
+            dest = src;
+            if(src != NULL) { src->addRef(); }
+        }
+    }
+
+    /**
+     * Equivalent to copy(NULL, dest).
+     */
+    template<typename T>
+    static void clearPtr(const T *&ptr) {
+        if (ptr != NULL) {
+            ptr->removeRef();
+            ptr = NULL;
+        }
+    }
+
+private:
+    mutable u_atomic_int32_t refCount;
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/common/sharedptr.h b/common/sharedptr.h
new file mode 100644
index 0000000..31d62aa
--- /dev/null
+++ b/common/sharedptr.h
@@ -0,0 +1,225 @@
+/*
+*******************************************************************************
+* Copyright (C) 2014, International Business Machines Corporation and         
+* others. All Rights Reserved.                                                
+*******************************************************************************
+*                                                                             
+* File SHAREDPTR.H                                                             
+*******************************************************************************
+*/
+
+#ifndef __SHARED_PTR_H__
+#define __SHARED_PTR_H__
+
+#include "unicode/uobject.h"
+#include "umutex.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+// Wrap u_atomic_int32_t in a UMemory so that we allocate them in the same
+// way we allocate all other ICU objects.
+struct AtomicInt : public UMemory {
+    u_atomic_int32_t value;
+};
+
+/**
+ * SharedPtr are shared pointers that support copy-on-write sematics.
+ * SharedPtr makes the act of copying large objects cheap by deferring the
+ * cost of the copy to the first write operation after the copy.
+ *
+ * A SharedPtr<T> instance can refer to no object or an object of type T.
+ * T must have a clone() method that copies
+ * the object and returns a pointer to the copy. Copy and assignment of
+ * SharedPtr instances are cheap because they only involve copying or
+ * assigning the SharedPtr instance, not the T object which could be large.
+ * Although many SharedPtr<T> instances may refer to the same T object,
+ * clients can still assume that each SharedPtr<T> instance has its own
+ * private instance of T because each SharedPtr<T> instance offers only a
+ * const view of its T object through normal pointer operations. If a caller
+ * must change a T object through its SharedPtr<T>, it can do so by calling
+ * readWrite() on the SharedPtr instance. readWrite() ensures that the
+ * SharedPtr<T> really does have its own private T object by cloning it if
+ * it is shared by using its clone() method. SharedPtr<T> instances handle
+ * management by reference counting their T objects. T objects that are
+ * referenced by no SharedPtr<T> instances get deleted automatically.
+ */
+
+// TODO (Travis Keep): Leave interface the same, but find a more efficient
+// implementation that is easier to understand.
+template<typename T>
+class SharedPtr {
+public:
+    /**
+     * Constructor. If there is a memory allocation error creating
+     * reference counter then this object will contain NULL, and adopted
+     * pointer will be freed. Note that when passing NULL or no argument to
+     * constructor, no memory allocation error can happen as NULL pointers
+     * are never reference counted.
+     */
+    explicit SharedPtr(T *adopted=NULL) : ptr(adopted), refPtr(NULL) {
+        if (ptr != NULL) {
+            refPtr = new AtomicInt();
+            if (refPtr == NULL) {
+                delete ptr;
+                ptr = NULL;
+            } else {
+                refPtr->value = 1;
+            }
+        }
+    }
+
+    /**
+     * Copy constructor.
+     */
+    SharedPtr(const SharedPtr<T> &other) :
+            ptr(other.ptr), refPtr(other.refPtr) {
+        if (refPtr != NULL) {
+            umtx_atomic_inc(&refPtr->value);
+        }
+    }
+
+    /**
+     * assignment operator.
+     */
+    SharedPtr<T> &operator=(const SharedPtr<T> &other) {
+        if (ptr != other.ptr) {
+            SharedPtr<T> newValue(other);
+            swap(newValue);
+        }
+        return *this;
+    }
+
+    /**
+     * Destructor.
+     */
+    ~SharedPtr() {
+        if (refPtr != NULL) {
+            if (umtx_atomic_dec(&refPtr->value) == 0) {
+                delete ptr;
+                delete refPtr;
+            }
+        }
+    }
+
+    /**
+     * reset adopts a new pointer. On success, returns TRUE.
+     * On memory allocation error creating reference counter for adopted
+     * pointer, returns FALSE while leaving this instance unchanged.
+     */
+    bool reset(T *adopted) {
+        SharedPtr<T> newValue(adopted);
+        if (adopted != NULL && newValue.ptr == NULL) {
+            // We couldn't allocate ref counter.
+            return FALSE;
+        }
+        swap(newValue);
+        return TRUE;
+    }
+
+    /**
+     * reset makes this instance refer to no object.
+     */
+    void reset() {
+        reset(NULL);
+    }
+
+    /**
+     * count returns how many SharedPtr instances, including this one,
+     * refer to the T object. Used for testing. Clients need not use in
+     * practice.
+     */
+    int32_t count() const {
+        if (refPtr == NULL) {
+            return 0;
+        }
+        return umtx_loadAcquire(refPtr->value);
+    }
+
+    /**
+     * Swaps this instance with other.
+     */
+    void swap(SharedPtr<T> &other) {
+        T *tempPtr = other.ptr;
+        AtomicInt *tempRefPtr = other.refPtr;
+        other.ptr = ptr;
+        other.refPtr = refPtr;
+        ptr = tempPtr;
+        refPtr = tempRefPtr;
+    }
+
+    const T *operator->() const {
+        return ptr;
+    }
+
+    const T &operator*() const {
+        return *ptr;
+    }
+
+    bool operator==(const T *other) const {
+        return ptr == other;
+    }
+
+    bool operator!=(const T *other) const {
+        return ptr != other;
+    }
+
+    /**
+     * readOnly gives const access to this instance's T object. If this
+     * instance refers to no object, returns NULL.
+     */
+    const T *readOnly() const {
+        return ptr;
+    }
+
+    /**
+     * readWrite returns a writable pointer to its T object copying it first
+     * using its clone() method if it is shared.
+     * On memory allocation error or if this instance refers to no object,
+     * this method returns NULL leaving this instance unchanged.
+     * <p>
+     * If readWrite() returns a non NULL pointer, it guarantees that this
+     * object holds the only reference to its T object enabling the caller to
+     * perform mutations using the returned pointer without affecting other
+     * SharedPtr objects. However, the non-constness of readWrite continues as
+     * long as the returned pointer is in scope. Therefore it is an API
+     * violation to call readWrite() on A; perform B = A; and then proceed to
+     * mutate A via its writeable pointer as that would be the same as setting
+     * B = A while A is changing. The returned pointer is guaranteed to be
+     * valid only while this object is in scope because this object maintains
+     * ownership of its T object. Therefore, callers must never attempt to
+     * delete the returned writeable pointer. The best practice with readWrite
+     * is this: callers should use the returned pointer from readWrite() only
+     * within the same scope as that call to readWrite, and that scope should
+     * be made as small as possible avoiding overlap with other operatios on
+     * this object.
+     */
+    T *readWrite() {
+        int32_t refCount = count();
+        if (refCount <= 1) {
+            return ptr;
+        }
+        T *result = (T *) ptr->clone();
+        if (result == NULL) {
+            // Memory allocation error
+            return NULL;
+        }
+        if (!reset(result)) {
+            return NULL;
+        }
+        return ptr;
+    }
+private:
+    T *ptr;
+    AtomicInt *refPtr;
+    // No heap allocation. Use only stack.
+    static void * U_EXPORT2 operator new(size_t size);
+    static void * U_EXPORT2 operator new[](size_t size);
+#if U_HAVE_PLACEMENT_NEW
+    static void * U_EXPORT2 operator new(size_t, void *ptr);
+#endif
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/common/simplepatternformatter.cpp b/common/simplepatternformatter.cpp
new file mode 100644
index 0000000..4c2cdac
--- /dev/null
+++ b/common/simplepatternformatter.cpp
@@ -0,0 +1,342 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines
+* Corporation and others.  All Rights Reserved.
+******************************************************************************
+* simplepatternformatter.cpp
+*/
+#include "simplepatternformatter.h"
+#include "cstring.h"
+#include "uassert.h"
+
+#define LENGTHOF(array) (int32_t)(sizeof(array) / sizeof((array)[0]))
+
+U_NAMESPACE_BEGIN
+
+typedef enum SimplePatternFormatterCompileState {
+    INIT,
+    APOSTROPHE,
+    PLACEHOLDER
+} SimplePatternFormatterCompileState;
+
+class SimplePatternFormatterIdBuilder {
+public:
+    SimplePatternFormatterIdBuilder() : id(0), idLen(0) { }
+    ~SimplePatternFormatterIdBuilder() { }
+    void reset() { id = 0; idLen = 0; }
+    int32_t getId() const { return id; }
+    void appendTo(UChar *buffer, int32_t *len) const;
+    UBool isValid() const { return (idLen > 0); }
+    void add(UChar ch);
+private:
+    int32_t id;
+    int32_t idLen;
+    SimplePatternFormatterIdBuilder(
+            const SimplePatternFormatterIdBuilder &other);
+    SimplePatternFormatterIdBuilder &operator=(
+            const SimplePatternFormatterIdBuilder &other);
+};
+
+void SimplePatternFormatterIdBuilder::appendTo(
+        UChar *buffer, int32_t *len) const {
+    int32_t origLen = *len;
+    int32_t kId = id;
+    for (int32_t i = origLen + idLen - 1; i >= origLen; i--) {
+        int32_t digit = kId % 10;
+        buffer[i] = digit + 0x30;
+        kId /= 10;
+    }
+    *len = origLen + idLen;
+}
+
+void SimplePatternFormatterIdBuilder::add(UChar ch) {
+    id = id * 10 + (ch - 0x30);
+    idLen++;
+}
+
+SimplePatternFormatter::SimplePatternFormatter() :
+        noPlaceholders(),
+        placeholdersByOffset(placeholderBuffer),
+        placeholderSize(0),
+        placeholderCapacity(EXPECTED_PLACEHOLDER_COUNT),
+        placeholderCount(0) {
+}
+
+SimplePatternFormatter::SimplePatternFormatter(const UnicodeString &pattern) :
+        noPlaceholders(),
+        placeholdersByOffset(placeholderBuffer),
+        placeholderSize(0),
+        placeholderCapacity(EXPECTED_PLACEHOLDER_COUNT),
+        placeholderCount(0) {
+    UErrorCode status = U_ZERO_ERROR;
+    compile(pattern, status);
+}
+
+SimplePatternFormatter::SimplePatternFormatter(
+        const SimplePatternFormatter &other) :
+        noPlaceholders(other.noPlaceholders),
+        placeholdersByOffset(placeholderBuffer),
+        placeholderSize(0),
+        placeholderCapacity(EXPECTED_PLACEHOLDER_COUNT),
+        placeholderCount(other.placeholderCount) {
+    placeholderSize = ensureCapacity(other.placeholderSize);
+    uprv_memcpy(
+            placeholdersByOffset,
+            other.placeholdersByOffset,
+            placeholderSize * 2 * sizeof(int32_t));
+}
+
+SimplePatternFormatter &SimplePatternFormatter::operator=(
+        const SimplePatternFormatter& other) {
+    if (this == &other) {
+        return *this;
+    }
+    noPlaceholders = other.noPlaceholders;
+    placeholderCount = other.placeholderCount;
+    placeholderSize = ensureCapacity(other.placeholderSize);
+    uprv_memcpy(
+            placeholdersByOffset,
+            other.placeholdersByOffset,
+            placeholderSize * 2 * sizeof(int32_t));
+    return *this;
+}
+
+SimplePatternFormatter::~SimplePatternFormatter() {
+    if (placeholdersByOffset != placeholderBuffer) {
+        uprv_free(placeholdersByOffset);
+    }
+}
+
+UBool SimplePatternFormatter::compile(
+        const UnicodeString &pattern, UErrorCode &status) {
+    if (U_FAILURE(status)) {
+        return FALSE;
+    }
+    const UChar *patternBuffer = pattern.getBuffer();
+    int32_t patternLength = pattern.length();
+    UChar *buffer = noPlaceholders.getBuffer(patternLength);
+    int32_t len = 0;
+    placeholderSize = 0;
+    placeholderCount = 0;
+    SimplePatternFormatterCompileState state = INIT;
+    SimplePatternFormatterIdBuilder idBuilder;
+    for (int32_t i = 0; i < patternLength; ++i) {
+        UChar ch = patternBuffer[i];
+        switch (state) {
+        case INIT:
+            if (ch == 0x27) {
+                state = APOSTROPHE;
+            } else if (ch == 0x7B) {
+                state = PLACEHOLDER;
+                idBuilder.reset();
+            } else {
+               buffer[len++] = ch;
+            }
+            break;
+        case APOSTROPHE:
+            if (ch == 0x27) {
+                buffer[len++] = 0x27;
+            } else if (ch == 0x7B) {
+                buffer[len++] = 0x7B;
+            } else {
+                buffer[len++] = 0x27;
+                buffer[len++] = ch;
+            }
+            state = INIT;
+            break;
+        case PLACEHOLDER:
+            if (ch >= 0x30 && ch <= 0x39) {
+                idBuilder.add(ch);
+            } else if (ch == 0x7D && idBuilder.isValid()) {
+                if (!addPlaceholder(idBuilder.getId(), len)) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    return FALSE;
+                }
+                state = INIT;
+            } else {
+                buffer[len++] = 0x7B;
+                idBuilder.appendTo(buffer, &len);
+                buffer[len++] = ch;
+                state = INIT;
+            }
+            break;
+        default:
+            U_ASSERT(FALSE);
+            break;
+        }
+    }
+    switch (state) {
+    case INIT:
+        break;
+    case APOSTROPHE:
+        buffer[len++] = 0x27;
+        break;
+    case PLACEHOLDER:
+        buffer[len++] = 0X7B;
+        idBuilder.appendTo(buffer, &len);
+        break;
+    default:
+        U_ASSERT(false);
+        break;
+    }
+    noPlaceholders.releaseBuffer(len);
+    return TRUE;
+}
+
+UnicodeString& SimplePatternFormatter::format(
+        const UnicodeString &arg0,
+        UnicodeString &appendTo,
+        UErrorCode &status) const {
+    const UnicodeString *params[] = {&arg0};
+    return format(
+            params,
+            LENGTHOF(params),
+            appendTo,
+            NULL,
+            0,
+            status);
+}
+
+UnicodeString& SimplePatternFormatter::format(
+        const UnicodeString &arg0,
+        const UnicodeString &arg1,
+        UnicodeString &appendTo,
+        UErrorCode &status) const {
+    const UnicodeString *params[] = {&arg0, &arg1};
+    return format(
+            params,
+            LENGTHOF(params),
+            appendTo,
+            NULL,
+            0,
+            status);
+}
+
+UnicodeString& SimplePatternFormatter::format(
+        const UnicodeString &arg0,
+        const UnicodeString &arg1,
+        const UnicodeString &arg2,
+        UnicodeString &appendTo,
+        UErrorCode &status) const {
+    const UnicodeString *params[] = {&arg0, &arg1, &arg2};
+    return format(
+            params,
+            LENGTHOF(params),
+            appendTo,
+            NULL,
+            0,
+            status);
+}
+
+static void updatePlaceholderOffset(
+        int32_t placeholderId,
+        int32_t placeholderOffset,
+        int32_t *offsetArray,
+        int32_t offsetArrayLength) {
+    if (placeholderId < offsetArrayLength) {
+        offsetArray[placeholderId] = placeholderOffset;
+    }
+}
+
+static void appendRange(
+        const UnicodeString &src,
+        int32_t start,
+        int32_t end,
+        UnicodeString &dest) {
+    dest.append(src, start, end - start);
+}
+
+UnicodeString& SimplePatternFormatter::format(
+        const UnicodeString * const *placeholderValues,
+        int32_t placeholderValueCount,
+        UnicodeString &appendTo,
+        int32_t *offsetArray,
+        int32_t offsetArrayLength,
+        UErrorCode &status) const {
+    if (U_FAILURE(status)) {
+        return appendTo;
+    }
+    if (placeholderValueCount < placeholderCount) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return appendTo;
+    }
+    for (int32_t i = 0; i < offsetArrayLength; ++i) {
+        offsetArray[i] = -1;
+    }
+    if (placeholderSize == 0) {
+        appendTo.append(noPlaceholders);
+        return appendTo;
+    }
+    appendRange(
+            noPlaceholders,
+            0,
+            placeholdersByOffset[0],
+            appendTo);
+    updatePlaceholderOffset(
+            placeholdersByOffset[1],
+            appendTo.length(),
+            offsetArray,
+            offsetArrayLength);
+    appendTo.append(*placeholderValues[placeholdersByOffset[1]]);
+    for (int32_t i = 1; i < placeholderSize; ++i) {
+        appendRange(
+                noPlaceholders,
+                placeholdersByOffset[2 * i - 2],
+                placeholdersByOffset[2 * i],
+                appendTo);
+        updatePlaceholderOffset(
+                placeholdersByOffset[2 * i + 1],
+                appendTo.length(),
+                offsetArray,
+                offsetArrayLength);
+        appendTo.append(*placeholderValues[placeholdersByOffset[2 * i + 1]]);
+    }
+    appendRange(
+            noPlaceholders,
+            placeholdersByOffset[2 * placeholderSize - 2],
+            noPlaceholders.length(),
+            appendTo);
+    return appendTo;
+}
+
+int32_t SimplePatternFormatter::ensureCapacity(int32_t atLeast) {
+    if (atLeast <= placeholderCapacity) {
+        return atLeast;
+    }
+    // aim to double capacity each time
+    int32_t newCapacity = 2*atLeast - 2;
+
+    // allocate new buffer
+    int32_t *newBuffer = (int32_t *) uprv_malloc(2 * newCapacity * sizeof(int32_t));
+    if (newBuffer == NULL) {
+        return placeholderCapacity;
+    }
+
+    // Copy contents of old buffer to new buffer
+    uprv_memcpy(newBuffer, placeholdersByOffset, 2 * placeholderSize * sizeof(int32_t));
+
+    // free old buffer
+    if (placeholdersByOffset != placeholderBuffer) {
+        uprv_free(placeholdersByOffset);
+    }
+
+    // Use new buffer
+    placeholdersByOffset = newBuffer;
+    placeholderCapacity = newCapacity;
+    return atLeast;
+}
+
+UBool SimplePatternFormatter::addPlaceholder(int32_t id, int32_t offset) {
+    if (ensureCapacity(placeholderSize + 1) < placeholderSize + 1) {
+        return FALSE;
+    }
+    ++placeholderSize;
+    placeholdersByOffset[2 * placeholderSize - 2] = offset;
+    placeholdersByOffset[2 * placeholderSize - 1] = id;
+    if (id >= placeholderCount) {
+        placeholderCount = id + 1;
+    }
+    return TRUE;
+}
+    
+U_NAMESPACE_END
diff --git a/common/simplepatternformatter.h b/common/simplepatternformatter.h
new file mode 100644
index 0000000..528122a
--- /dev/null
+++ b/common/simplepatternformatter.h
@@ -0,0 +1,153 @@
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines
+* Corporation and others.  All Rights Reserved.
+******************************************************************************
+* simplepatternformatter.h
+*/
+
+#ifndef __SIMPLEPATTERNFORMATTER_H__
+#define __SIMPLEPATTERNFORMATTER_H__ 
+
+#define EXPECTED_PLACEHOLDER_COUNT 3
+
+#include "unicode/utypes.h"
+#include "unicode/unistr.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * Compiled version of a pattern string such as "{1} was born in {0}".
+ * <p>
+ * Using SimplePatternFormatter is both faster and safer than adhoc replacement.
+ * They are faster because they are precompiled; they are safer because they
+ * account for curly braces escaped by apostrophe (').
+ * 
+ * Placeholders are of the form \{[0-9]+\}. If a curly brace is preceded
+ * by a single quote, it becomes a curly brace instead of the start of a
+ * placeholder. Two single quotes resolve to one single quote. 
+ * <p>
+ * Example:
+ * <pre>
+ * SimplePatternFormatter fmt("{1} '{born} in {0}");
+ * UnicodeString result;
+ * UErrorCode status = U_ZERO_ERROR;
+ * // Evaluates to: "paul {born} in england"
+ * fmt.format("englad", "paul", result, status);
+ * </pre>
+ */
+class U_COMMON_API SimplePatternFormatter : public UMemory {
+public:
+    /**
+     * Default constructor
+     */
+    SimplePatternFormatter();
+
+    /**
+     * Construct from a pattern. Will never fail if pattern has three or
+     * fewer placeholders in it.
+     */
+    explicit SimplePatternFormatter(const UnicodeString& pattern);
+
+    /**
+     * Copy constructor.
+     */
+    SimplePatternFormatter(const SimplePatternFormatter& other);
+
+    /**
+     * Assignment operator
+     */
+    SimplePatternFormatter &operator=(const SimplePatternFormatter& other);
+
+    /**
+     * Destructor.
+     */
+    ~SimplePatternFormatter();
+
+    /**
+     * Compiles pattern and makes this object represent pattern.
+     *
+     * Returns TRUE on success; FALSE on failure. Will not fail if
+     * there are three or fewer placeholders in pattern. May fail with
+     * U_MEMORY_ALLOCATION_ERROR if there are more than three placeholders.
+     */
+    UBool compile(const UnicodeString &pattern, UErrorCode &status);
+
+    /**
+     * Returns (maxPlaceholderId + 1). For example
+     * <code>SimplePatternFormatter("{0} {2}").getPlaceholderCount()
+     * evaluates to 3.
+     * Callers use this function to find out how many values this object
+     * expects when formatting.
+     */
+    int32_t getPlaceholderCount() const {
+        return placeholderCount;
+    }
+
+    /**
+     * Formats given value.
+     */
+    UnicodeString &format(
+            const UnicodeString &args0,
+            UnicodeString &appendTo,
+            UErrorCode &status) const;
+    
+    /**
+     * Formats given values.
+     */
+    UnicodeString &format(
+            const UnicodeString &args0,
+            const UnicodeString &args1,
+            UnicodeString &appendTo,
+            UErrorCode &status) const;
+    
+    /**
+     * Formats given values.
+     */
+    UnicodeString &format(
+            const UnicodeString &args0,
+            const UnicodeString &args1,
+            const UnicodeString &args2,
+            UnicodeString &appendTo,
+            UErrorCode &status) const;
+    
+    /**
+     * Formats given values.
+     *
+     * The caller retains ownership of all pointers.
+     * @param placeholderValues 1st one corresponds to {0}; 2nd to {1};
+     *  3rd to {2} etc.
+     * @param placeholderValueCount the number of placeholder values
+     *  must be at least large enough to provide values for all placeholders
+     *  in this object. Otherwise status set to U_ILLEGAL_ARGUMENT_ERROR.
+     * @param appendTo resulting string appended here.
+     * @param offsetArray The offset of each placeholder value in appendTo
+     *  stored here. The first value gets the offset of the value for {0};
+     *  the 2nd for {1}; the 3rd for {2} etc. -1 means that the corresponding
+     *  placeholder does not exist in this object. If caller is not
+     *  interested in offsets, it may pass NULL and 0 for the length.
+     * @param offsetArrayLength the size of offsetArray may be less than
+     *  placeholderValueCount.
+     * @param status any error stored here.
+     */
+    UnicodeString &format(
+            const UnicodeString * const *placeholderValues,
+            int32_t placeholderValueCount,
+            UnicodeString &appendTo,
+            int32_t *offsetArray,
+            int32_t offsetArrayLength,
+            UErrorCode &status) const;
+private:
+    UnicodeString noPlaceholders;
+    int32_t placeholderBuffer[EXPECTED_PLACEHOLDER_COUNT * 2];
+    int32_t *placeholdersByOffset;
+    int32_t placeholderSize;
+    int32_t placeholderCapacity;
+    int32_t placeholderCount;
+    int32_t ensureCapacity(int32_t size);
+    UBool addPlaceholder(int32_t id, int32_t offset);
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/common/ubidi.c b/common/ubidi.c
index 75afd06..295a135 100644
--- a/common/ubidi.c
+++ b/common/ubidi.c
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1999-2013, International Business Machines
+*   Copyright (C) 1999-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -29,8 +29,8 @@
  * General implementation notes:
  *
  * Throughout the implementation, there are comments like (W2) that refer to
- * rules of the BiDi algorithm in its version 5, in this example to the second
- * rule of the resolution of weak types.
+ * rules of the BiDi algorithm, in this example to the second rule of the
+ * resolution of weak types.
  *
  * For handling surrogate pairs, where two UChar's form one "abstract" (or UTF-32)
  * character according to UTF-16, the second UChar gets the directional property of
@@ -60,14 +60,12 @@
  * For the purpose of conformance, the levels of all these codes
  * do not matter.
  *
- * Note that this implementation never modifies the dirProps
- * after the initial setup, except for FSI which is changed to either
- * LRI or RLI in getDirProps(), and paired brackets which may be changed
- * to L or R according to N0.
+ * Note that this implementation modifies the dirProps
+ * after the initial setup, when applying X5c (replace FSI by LRI or RLI),
+ * X6, N0 (replace paired brackets by L or R).
  *
- *
- * In this implementation, the resolution of weak types (Wn),
- * neutrals (Nn), and the assignment of the resolved level (In)
+ * In this implementation, the resolution of weak types (W1 to W6),
+ * neutrals (N1 and N2), and the assignment of the resolved level (In)
  * are all done in one single loop, in resolveImplicitLevels().
  * Changes of dirProp values are done on the fly, without writing
  * them back to the dirProps array.
@@ -114,11 +112,13 @@
 static const Flags flagO[2]={ DIRPROP_FLAG(LRO), DIRPROP_FLAG(RLO) };
 
 #define DIRPROP_FLAG_LR(level) flagLR[(level)&1]
-#define DIRPROP_FLAG_E(level) flagE[(level)&1]
-#define DIRPROP_FLAG_O(level) flagO[(level)&1]
+#define DIRPROP_FLAG_E(level)  flagE[(level)&1]
+#define DIRPROP_FLAG_O(level)  flagO[(level)&1]
 
 #define DIR_FROM_STRONG(strong) ((strong)==L ? L : R)
 
+#define NO_OVERRIDE(level)  ((level)&~UBIDI_LEVEL_OVERRIDE)
+
 /* UBiDi object management -------------------------------------------------- */
 
 U_CAPI UBiDi * U_EXPORT2
@@ -421,6 +421,9 @@
  * Get the directional properties for the text, calculate the flags bit-set, and
  * determine the paragraph level if necessary (in pBiDi->paras[i].level).
  * FSI initiators are also resolved and their dirProp replaced with LRI or RLI.
+ * When encountering an FSI, it is initially replaced with an LRI, which is the
+ * default. Only if a strong R or AL is found within its scope will the LRI be
+ * replaced by an RLI.
  */
 static UBool
 getDirProps(UBiDi *pBiDi) {
@@ -508,7 +511,8 @@
             }
             else if(state==SEEKING_STRONG_FOR_FSI) {
                 if(stackLast<=UBIDI_MAX_EXPLICIT_LEVEL) {
-                    dirProps[isolateStartStack[stackLast]]=LRI;
+                    /* no need for next statement, already set by default */
+                    /* dirProps[isolateStartStack[stackLast]]=LRI; */
                     flags|=DIRPROP_FLAG(LRI);
                 }
                 state=LOOKING_FOR_PDI;
@@ -539,8 +543,10 @@
                 isolateStartStack[stackLast]=i-1;
                 previousStateStack[stackLast]=state;
             }
-            if(dirProp==FSI)
+            if(dirProp==FSI) {
+                dirProps[i-1]=LRI;      /* default if no strong char */
                 state=SEEKING_STRONG_FOR_FSI;
+            }
             else
                 state=LOOKING_FOR_PDI;
             continue;
@@ -548,7 +554,8 @@
         if(dirProp==PDI) {
             if(state==SEEKING_STRONG_FOR_FSI) {
                 if(stackLast<=UBIDI_MAX_EXPLICIT_LEVEL) {
-                    dirProps[isolateStartStack[stackLast]]=LRI;
+                    /* no need for next statement, already set by default */
+                    /* dirProps[isolateStartStack[stackLast]]=LRI; */
                     flags|=DIRPROP_FLAG(LRI);
                 }
             }
@@ -591,14 +598,15 @@
     /* Ignore still open isolate sequences with overflow */
     if(stackLast>UBIDI_MAX_EXPLICIT_LEVEL) {
         stackLast=UBIDI_MAX_EXPLICIT_LEVEL;
-        if(dirProps[previousStateStack[UBIDI_MAX_EXPLICIT_LEVEL]]!=FSI)
-            state=LOOKING_FOR_PDI;
+        state=SEEKING_STRONG_FOR_FSI;   /* to be on the safe side */
     }
     /* Resolve direction of still unresolved open FSI sequences */
     while(stackLast>=0) {
         if(state==SEEKING_STRONG_FOR_FSI) {
-            dirProps[isolateStartStack[stackLast]]=LRI;
+            /* no need for next statement, already set by default */
+            /* dirProps[isolateStartStack[stackLast]]=LRI; */
             flags|=DIRPROP_FLAG(LRI);
+            break;
         }
         state=previousStateStack[stackLast];
         stackLast--;
@@ -667,8 +675,8 @@
     bd->isoRuns[0].start=0;
     bd->isoRuns[0].limit=0;
     bd->isoRuns[0].level=GET_PARALEVEL(pBiDi, 0);
-    bd->isoRuns[0].lastStrong=bd->isoRuns[0].contextDir=GET_PARALEVEL(pBiDi, 0)&1;
-    bd->isoRuns[0].lastStrongPos=bd->isoRuns[0].contextPos=0;
+    bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=bd->isoRuns[0].contextDir=GET_PARALEVEL(pBiDi, 0)&1;
+    bd->isoRuns[0].contextPos=0;
     if(pBiDi->openingsMemory) {
         bd->openings=pBiDi->openingsMemory;
         bd->openingsSize=pBiDi->openingsSize;
@@ -686,8 +694,8 @@
     bd->isoRunLast=0;
     bd->isoRuns[0].limit=0;
     bd->isoRuns[0].level=level;
-    bd->isoRuns[0].lastStrong=bd->isoRuns[0].contextDir=level&1;
-    bd->isoRuns[0].lastStrongPos=bd->isoRuns[0].contextPos=0;
+    bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=bd->isoRuns[0].contextDir=level&1;
+    bd->isoRuns[0].contextPos=0;
 }
 
 /* LRE, LRO, RLE, RLO, PDF */
@@ -698,13 +706,12 @@
     DirProp *dirProps=bd->pBiDi->dirProps;
     if(DIRPROP_FLAG(dirProps[lastCcPos])&MASK_ISO)  /* after an isolate */
         return;
-    if((embeddingLevel&~UBIDI_LEVEL_OVERRIDE)>
-       (contextLevel&~UBIDI_LEVEL_OVERRIDE))        /* not a PDF */
+    if(NO_OVERRIDE(embeddingLevel)>NO_OVERRIDE(contextLevel))   /* not a PDF */
         contextLevel=embeddingLevel;
     pLastIsoRun->limit=pLastIsoRun->start;
     pLastIsoRun->level=embeddingLevel;
-    pLastIsoRun->lastStrong=pLastIsoRun->contextDir=contextLevel&1;
-    pLastIsoRun->lastStrongPos=pLastIsoRun->contextPos=lastCcPos;
+    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=pLastIsoRun->contextDir=contextLevel&1;
+    pLastIsoRun->contextPos=lastCcPos;
 }
 
 /* LRI or RLI */
@@ -712,19 +719,23 @@
 bracketProcessLRI_RLI(BracketData *bd, UBiDiLevel level) {
     IsoRun *pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
     int16_t lastLimit;
+    pLastIsoRun->lastBase=ON;
     lastLimit=pLastIsoRun->limit;
     bd->isoRunLast++;
     pLastIsoRun++;
     pLastIsoRun->start=pLastIsoRun->limit=lastLimit;
     pLastIsoRun->level=level;
-    pLastIsoRun->lastStrong=pLastIsoRun->contextDir=level&1;
-    pLastIsoRun->lastStrongPos=pLastIsoRun->contextPos=0;
+    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=pLastIsoRun->contextDir=level&1;
+    pLastIsoRun->contextPos=0;
 }
 
 /* PDI */
 static void
 bracketProcessPDI(BracketData *bd) {
+    IsoRun *pLastIsoRun;
     bd->isoRunLast--;
+    pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
+    pLastIsoRun->lastBase=ON;
 }
 
 /* newly found opening bracket: create an openings entry */
@@ -770,159 +781,220 @@
         if(newProp==qOpening->contextDir)
             break;
         openingPosition=qOpening->position;
-        dirProps[openingPosition]=dirProps[newPropPosition];
+        dirProps[openingPosition]=newProp;
         closingPosition=-(qOpening->match);
-        dirProps[closingPosition]= newProp; /* can never be AL */
-        qOpening->match=0;                  /* prevent further changes */
+        dirProps[closingPosition]=newProp;
+        qOpening->match=0;                      /* prevent further changes */
         fixN0c(bd, k, openingPosition, newProp);
         fixN0c(bd, k, closingPosition, newProp);
     }
 }
 
+/* process closing bracket */
+static DirProp              /* return L or R if N0b or N0c, ON if N0d */
+bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) {
+    IsoRun *pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
+    Opening *pOpening, *qOpening;
+    UBiDiDirection direction;
+    UBool stable;
+    DirProp newProp;
+    pOpening=&bd->openings[openIdx];
+    direction=pLastIsoRun->level&1;
+    stable=TRUE;            /* assume stable until proved otherwise */
+
+    /* The stable flag is set when brackets are paired and their
+       level is resolved and cannot be changed by what will be
+       found later in the source string.
+       An unstable match can occur only when applying N0c, where
+       the resolved level depends on the preceding context, and
+       this context may be affected by text occurring later.
+       Example: RTL paragraph containing:  abc[(latin) HEBREW]
+       When the closing parenthesis is encountered, it appears
+       that N0c1 must be applied since 'abc' sets an opposite
+       direction context and both parentheses receive level 2.
+       However, when the closing square bracket is processed,
+       N0b applies because of 'HEBREW' being included within the
+       brackets, thus the square brackets are treated like R and
+       receive level 1. However, this changes the preceding
+       context of the opening parenthesis, and it now appears
+       that N0c2 must be applied to the parentheses rather than
+       N0c1. */
+
+    if((direction==0 && pOpening->flags&FOUND_L) ||
+       (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
+        newProp=direction;
+    }
+    else if(pOpening->flags&(FOUND_L|FOUND_R)) {    /* N0c */
+        /* it is stable if there is no containing pair or in
+           conditions too complicated and not worth checking */
+        stable=(openIdx==pLastIsoRun->start);
+        if(direction!=pOpening->contextDir)
+            newProp=pOpening->contextDir;           /* N0c1 */
+        else
+            newProp=direction;                      /* N0c2 */
+    } else {
+        /* forget this and any brackets nested within this pair */
+        pLastIsoRun->limit=openIdx;
+        return ON;                                  /* N0d */
+    }
+    bd->pBiDi->dirProps[pOpening->position]=newProp;
+    bd->pBiDi->dirProps[position]=newProp;
+    /* Update nested N0c pairs that may be affected */
+    fixN0c(bd, openIdx, pOpening->position, newProp);
+    if(stable) {
+        pLastIsoRun->limit=openIdx; /* forget any brackets nested within this pair */
+        /* remove lower located synonyms if any */
+        while(pLastIsoRun->limit>pLastIsoRun->start &&
+              bd->openings[pLastIsoRun->limit-1].position==pOpening->position)
+            pLastIsoRun->limit--;
+    } else {
+        int32_t k;
+        pOpening->match=-position;
+        /* neutralize lower located synonyms if any */
+        k=openIdx-1;
+        while(k>=pLastIsoRun->start &&
+              bd->openings[k].position==pOpening->position)
+            bd->openings[k--].match=0;
+        /* neutralize any unmatched opening between the current pair;
+           this will also neutralize higher located synonyms if any */
+        for(k=openIdx+1; k<pLastIsoRun->limit; k++) {
+            qOpening=&bd->openings[k];
+            if(qOpening->position>=position)
+                break;
+            if(qOpening->match>0)
+                qOpening->match=0;
+        }
+    }
+    return newProp;
+}
+
 /* handle strong characters, digits and candidates for closing brackets */
 static UBool                            /* return TRUE if success */
-bracketProcessChar(BracketData *bd, int32_t position, DirProp dirProp) {
-    IsoRun *pLastIsoRun;
-    Opening *pOpening, *qOpening;
-    DirProp *dirProps, newProp;
-    UBiDiDirection direction;
-    uint16_t flag;
-    int32_t i, k;
-    UBool stable;
-    UChar c, match;
+bracketProcessChar(BracketData *bd, int32_t position) {
+    IsoRun *pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
+    DirProp *dirProps, dirProp, newProp;
+    UBiDiLevel level;
     dirProps=bd->pBiDi->dirProps;
-    if(DIRPROP_FLAG(dirProp)&MASK_STRONG_EN_AN) { /* L, R, AL, EN or AN */
-        pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
-        /* AN after R or AL becomes R or AL; after L or L+AN, it is kept as-is */
-        if(dirProp==AN && (pLastIsoRun->lastStrong==R || pLastIsoRun->lastStrong==AL))
-            dirProp=pLastIsoRun->lastStrong;
-        /* EN after L or L+AN becomes L; after R or AL, it becomes R or AL */
-        if(dirProp==EN) {
-            if(pLastIsoRun->lastStrong==L || pLastIsoRun->lastStrong==AN) {
-                dirProp=L;
-                if(!bd->isNumbersSpecial)
-                    dirProps[position]=ENL;
+    dirProp=dirProps[position];
+    if(dirProp==ON) {
+        UChar c, match;
+        int32_t idx;
+        /* First see if it is a matching closing bracket. Hopefully, this is
+           more efficient than checking if it is a closing bracket at all */
+        c=bd->pBiDi->text[position];
+        for(idx=pLastIsoRun->limit-1; idx>=pLastIsoRun->start; idx--) {
+            if(bd->openings[idx].match!=c)
+                continue;
+            /* We have a match */
+            newProp=bracketProcessClosing(bd, idx, position);
+            if(newProp==ON) {           /* N0d */
+                c=0;        /* prevent handling as an opening */
+                break;
             }
-            else {
-                dirProp=pLastIsoRun->lastStrong;    /* may be R or AL */
-                if(!bd->isNumbersSpecial)
-                    dirProps[position]= dirProp==AL ? AN : ENR;
-            }
-        }
-        pLastIsoRun->lastStrong=dirProp;
-        pLastIsoRun->contextDir=DIR_FROM_STRONG(dirProp);
-        pLastIsoRun->lastStrongPos=pLastIsoRun->contextPos=position;
-        if(dirProp==AL || dirProp==AN)
-            dirProp=R;
-        flag=DIRPROP_FLAG(dirProp);
-        /* strong characters found after an unmatched opening bracket
-           must be noted for possibly applying N0b */
-        for(i=pLastIsoRun->start; i<pLastIsoRun->limit; i++)
-            bd->openings[i].flags|=flag;
-        return TRUE;
-    }
-    if(dirProp!=ON)
-        return TRUE;
-    /* First see if it is a matching closing bracket. Hopefully, this is more
-       efficient than checking if it is a closing bracket at all */
-    c=bd->pBiDi->text[position];
-    pLastIsoRun=&bd->isoRuns[bd->isoRunLast];
-    for(i=pLastIsoRun->limit-1; i>=pLastIsoRun->start; i--) {
-        if(bd->openings[i].match!=c)
-            continue;
-        /* We have a match */
-        pOpening=&bd->openings[i];
-        direction=pLastIsoRun->level&1;
-        stable=TRUE;            /* assume stable until proved otherwise */
-
-        /* The stable flag is set when brackets are paired and their
-           level is resolved and cannot be changed by what will be
-           found later in the source string.
-           An unstable match can occur only when applying N0c, where
-           the resolved level depends on the preceding context, and
-           this context may be affected by text occurring later.
-           Example: RTL paragraph containing:  abc[(latin) HEBREW]
-           When the closing parenthesis is encountered, it appears
-           that N0c1 must be applied since 'abc' sets an opposite
-           direction context and both parentheses receive level 2.
-           However, when the closing square bracket is processed,
-           N0b applies because of 'HEBREW' being included within the
-           brackets, thus the square brackets are treated like R and
-           receive level 1. However, this changes the preceding
-           context of the opening parenthesis, and it now appears
-           that N0c2 must be applied to the parentheses rather than
-           N0c1. */
-
-        if((direction==0 && pOpening->flags&FOUND_L) ||
-           (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
-            newProp=direction;
-        }
-        else if(pOpening->flags&(FOUND_L|FOUND_R)) {    /* N0c */
-            if(direction!=pOpening->contextDir) {
-                newProp=pOpening->contextDir;           /* N0c1 */
-                /* it is stable if there is no preceding text or in
-                   conditions too complicated and not worth checking */
-                stable=(i==pLastIsoRun->start);
-            }
-            else
-                newProp=direction;                      /* N0c2 */
-        }
-        else {
-            newProp=BN;                                 /* N0d */
-        }
-        if(newProp!=BN) {
-            dirProps[pOpening->position]=newProp;
-            dirProps[position]=newProp;
+            pLastIsoRun->lastBase=ON;
             pLastIsoRun->contextDir=newProp;
             pLastIsoRun->contextPos=position;
+            level=bd->pBiDi->levels[position];
+            if(level&UBIDI_LEVEL_OVERRIDE) {    /* X4, X5 */
+                uint16_t flag;
+                int32_t i;
+                newProp=level&1;
+                pLastIsoRun->lastStrong=newProp;
+                flag=DIRPROP_FLAG(newProp);
+                for(i=pLastIsoRun->start; i<idx; i++)
+                    bd->openings[i].flags|=flag;
+                /* matching brackets are not overridden by LRO/RLO */
+                bd->pBiDi->levels[position]&=~UBIDI_LEVEL_OVERRIDE;
+            }
+            /* matching brackets are not overridden by LRO/RLO */
+            bd->pBiDi->levels[bd->openings[idx].position]&=~UBIDI_LEVEL_OVERRIDE;
+            return TRUE;
         }
-        /* Update nested N0c pairs that may be affected */
-        if(newProp==direction)
-            fixN0c(bd, i, pOpening->position, newProp);
-        if(stable) {
-            pLastIsoRun->limit=i;   /* forget any brackets nested within this pair */
-            /* remove lower located synonyms if any */
-            while(pLastIsoRun->limit>pLastIsoRun->start &&
-                  bd->openings[pLastIsoRun->limit-1].position==pOpening->position)
-                pLastIsoRun->limit--;
+        /* We get here only if the ON character is not a matching closing
+           bracket or it is a case of N0d */
+        /* Now see if it is an opening bracket */
+        if(c)
+            match=u_getBidiPairedBracket(c);    /* get the matching char */
+        else
+            match=0;
+        if(match!=c &&                  /* has a matching char */
+           ubidi_getPairedBracketType(bd->pBiDi->bdp, c)==U_BPT_OPEN) { /* opening bracket */
+            /* special case: process synonyms
+               create an opening entry for each synonym */
+            if(match==0x232A) {     /* RIGHT-POINTING ANGLE BRACKET */
+                if(!bracketAddOpening(bd, 0x3009, position))
+                    return FALSE;
+            }
+            else if(match==0x3009) {         /* RIGHT ANGLE BRACKET */
+                if(!bracketAddOpening(bd, 0x232A, position))
+                    return FALSE;
+            }
+            if(!bracketAddOpening(bd, match, position))
+                return FALSE;
+        }
+    }
+    level=bd->pBiDi->levels[position];
+    if(level&UBIDI_LEVEL_OVERRIDE) {    /* X4, X5 */
+        newProp=level&1;
+        if(dirProp!=S && dirProp!=WS && dirProp!=ON)
+            dirProps[position]=newProp;
+        pLastIsoRun->lastBase=newProp;
+        pLastIsoRun->lastStrong=newProp;
+        pLastIsoRun->contextDir=newProp;
+        pLastIsoRun->contextPos=position;
+    }
+    else if(dirProp<=R || dirProp==AL) {
+        newProp=DIR_FROM_STRONG(dirProp);
+        pLastIsoRun->lastBase=dirProp;
+        pLastIsoRun->lastStrong=dirProp;
+        pLastIsoRun->contextDir=newProp;
+        pLastIsoRun->contextPos=position;
+    }
+    else if(dirProp==EN) {
+        pLastIsoRun->lastBase=EN;
+        if(pLastIsoRun->lastStrong==L) {
+            newProp=L;                  /* W7 */
+            if(!bd->isNumbersSpecial)
+                dirProps[position]=ENL;
+            pLastIsoRun->contextDir=L;
+            pLastIsoRun->contextPos=position;
         }
         else {
-            pOpening->match=-position;
-            /* neutralize lower located synonyms if any */
-            k=i-1;
-            while(k>=pLastIsoRun->start &&
-                  bd->openings[k].position==pOpening->position)
-                bd->openings[k--].match=0;
-            /* neutralize any unmatched opening between the current pair;
-               this will also neutralize higher located synonyms if any */
-            for(k=i+1; k<pLastIsoRun->limit; k++) {
-                qOpening=&bd->openings[k];
-                if(qOpening->position>=position)
-                    break;
-                if(qOpening->match>0)
-                    qOpening->match=0;
-            }
+            newProp=R;                  /* N0 */
+            if(pLastIsoRun->lastStrong==AL)
+                dirProps[position]=AN;  /* W2 */
+            else
+                dirProps[position]=ENR;
+            pLastIsoRun->contextDir=R;
+            pLastIsoRun->contextPos=position;
         }
-        return TRUE;
     }
-    /* We get here only if the ON character was not a matching closing bracket */
-    /* Now see if it is an opening bracket */
-    match=u_getBidiPairedBracket(c);    /* get the matching char */
-    if(match==c)                        /* if no matching char */
-        return TRUE;
-    if(ubidi_getPairedBracketType(bd->pBiDi->bdp, c)!=U_BPT_OPEN)
-        return TRUE;                    /* not an opening bracket */
-    /* special case: process synonyms
-       create an opening entry for each synonym */
-    if(match==0x232A) {     /* RIGHT-POINTING ANGLE BRACKET */
-        if(!bracketAddOpening(bd, 0x3009, position))
-            return FALSE;
+    else if(dirProp==AN) {
+        newProp=R;                      /* N0 */
+        pLastIsoRun->lastBase=AN;
+        pLastIsoRun->contextDir=R;
+        pLastIsoRun->contextPos=position;
     }
-    else if(match==0x3009) {         /* RIGHT ANGLE BRACKET */
-        if(!bracketAddOpening(bd, 0x232A, position))
-            return FALSE;
+    else if(dirProp==NSM) {
+        /* if the last real char was ON, change NSM to ON so that it
+           will stay ON even if the last real char is a bracket which
+           may be changed to L or R */
+        newProp=pLastIsoRun->lastBase;
+        if(newProp==ON)
+            dirProps[position]=newProp;
     }
-    return bracketAddOpening(bd, match, position);
+    else {
+        newProp=dirProp;
+        pLastIsoRun->lastBase=dirProp;
+    }
+    if(newProp<=R || newProp==AL) {
+        int32_t i;
+        uint16_t flag=DIRPROP_FLAG(DIR_FROM_STRONG(newProp));
+        for(i=pLastIsoRun->start; i<pLastIsoRun->limit; i++)
+            if(position>bd->openings[i].position)
+                bd->openings[i].flags|=flag;
+    }
+    return TRUE;
 }
 
 /* perform (X1)..(X9) ------------------------------------------------------- */
@@ -980,7 +1052,7 @@
  * Handling the stack of explicit levels (Xn):
  *
  * With the BiDi stack of explicit levels, as pushed with each
- * LRE, RLE, LRO, RLO, LRI, RLI and FSO and popped with each PDF and PDI,
+ * LRE, RLE, LRO, RLO, LRI, RLI and FSI and popped with each PDF and PDI,
  * the explicit level must never exceed UBIDI_MAX_EXPLICIT_LEVEL.
  *
  * In order to have a correct push-pop semantics even in the case of overflows,
@@ -988,6 +1060,9 @@
  * section 3.3.2 "Explicit Levels and Directions".
  *
  * This implementation assumes that UBIDI_MAX_EXPLICIT_LEVEL is odd.
+ *
+ * Returns normally the direction; -1 if there was a memory shortage
+ *
  */
 static UBiDiDirection
 resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
@@ -1044,6 +1119,8 @@
             for(i=start; i<limit; i++) {
                 levels[i]=level;
                 dirProp=dirProps[i];
+                if(dirProp==BN)
+                    continue;
                 if(dirProp==B) {
                     if((i+1)<length) {
                         if(text[i]==CR && text[i+1]==LF)
@@ -1052,7 +1129,7 @@
                     }
                     continue;
                 }
-                if(!bracketProcessChar(&bracketData, i, dirProp)) {
+                if(!bracketProcessChar(&bracketData, i)) {
                     *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
                     return UBIDI_LTR;
                 }
@@ -1069,6 +1146,8 @@
         UBiDiLevel previousLevel=level;     /* previous level for regular (not CC) characters */
         int32_t lastCcPos=0;                /* index of last effective LRx,RLx, PDx */
 
+        /* The following stack remembers the embedding level and the ISOLATE flag of level runs.
+           stackLast points to its current entry. */
         uint16_t stack[UBIDI_MAX_EXPLICIT_LEVEL+2];   /* we never push anything >=UBIDI_MAX_EXPLICIT_LEVEL
                                                         but we need one more entry as base */
         uint32_t stackLast=0;
@@ -1091,10 +1170,13 @@
             case RLO:
                 /* (X2, X3, X4, X5) */
                 flags|=DIRPROP_FLAG(BN);
+                levels[i]=previousLevel;
                 if (dirProp==LRE || dirProp==LRO)
-                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1)); /* least greater even level */
+                    /* least greater even level */
+                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1));
                 else
-                    newLevel=(UBiDiLevel)(((embeddingLevel&~UBIDI_LEVEL_OVERRIDE)+1)|1); /* least greater odd level */
+                    /* least greater odd level */
+                    newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1);
                 if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 &&
                                                          overflowEmbeddingCount==0) {
                     lastCcPos=i;
@@ -1108,7 +1190,6 @@
                        the source for embeddingLevel.
                      */
                 } else {
-                    dirProps[i]|=IGNORE_CC;
                     if(overflowIsolateCount==0)
                         overflowEmbeddingCount++;
                 }
@@ -1116,13 +1197,12 @@
             case PDF:
                 /* (X7) */
                 flags|=DIRPROP_FLAG(BN);
+                levels[i]=previousLevel;
                 /* handle all the overflow cases first */
                 if(overflowIsolateCount) {
-                    dirProps[i]|=IGNORE_CC;
                     break;
                 }
                 if(overflowEmbeddingCount) {
-                    dirProps[i]|=IGNORE_CC;
                     overflowEmbeddingCount--;
                     break;
                 }
@@ -1130,50 +1210,58 @@
                     lastCcPos=i;
                     stackLast--;
                     embeddingLevel=(UBiDiLevel)stack[stackLast];
-                } else
-                    dirProps[i]|=IGNORE_CC;
+                }
                 break;
             case LRI:
             case RLI:
-                if(embeddingLevel!=previousLevel) {
+                flags|=(DIRPROP_FLAG(ON)|DIRPROP_FLAG_LR(embeddingLevel));
+                levels[i]=NO_OVERRIDE(embeddingLevel);
+                if(NO_OVERRIDE(embeddingLevel)!=NO_OVERRIDE(previousLevel)) {
                     bracketProcessBoundary(&bracketData, lastCcPos,
                                            previousLevel, embeddingLevel);
-                    previousLevel=embeddingLevel;
+                    flags|=DIRPROP_FLAG_MULTI_RUNS;
                 }
+                previousLevel=embeddingLevel;
                 /* (X5a, X5b) */
-                flags|= DIRPROP_FLAG(ON) | DIRPROP_FLAG(BN) | DIRPROP_FLAG_LR(embeddingLevel);
-                level=embeddingLevel;
                 if(dirProp==LRI)
-                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1)); /* least greater even level */
+                    /* least greater even level */
+                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1));
                 else
-                    newLevel=(UBiDiLevel)(((embeddingLevel&~UBIDI_LEVEL_OVERRIDE)+1)|1); /* least greater odd level */
+                    /* least greater odd level */
+                    newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1);
                 if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 &&
                                                          overflowEmbeddingCount==0) {
+                    flags|=DIRPROP_FLAG(dirProp);
                     lastCcPos=i;
-                    previousLevel=embeddingLevel;
                     validIsolateCount++;
                     if(validIsolateCount>pBiDi->isolateCount)
                         pBiDi->isolateCount=validIsolateCount;
                     embeddingLevel=newLevel;
+                    /* we can increment stackLast without checking because newLevel
+                       will exceed UBIDI_MAX_EXPLICIT_LEVEL before stackLast overflows */
                     stackLast++;
                     stack[stackLast]=embeddingLevel+ISOLATE;
                     bracketProcessLRI_RLI(&bracketData, embeddingLevel);
                 } else {
-                    dirProps[i]|=IGNORE_CC;
+                    /* make it WS so that it is handled by adjustWSLevels() */
+                    dirProps[i]=WS;
                     overflowIsolateCount++;
                 }
                 break;
             case PDI:
-                if(embeddingLevel!=previousLevel) {
+                if(NO_OVERRIDE(embeddingLevel)!=NO_OVERRIDE(previousLevel)) {
                     bracketProcessBoundary(&bracketData, lastCcPos,
                                            previousLevel, embeddingLevel);
+                    flags|=DIRPROP_FLAG_MULTI_RUNS;
                 }
                 /* (X6a) */
                 if(overflowIsolateCount) {
-                    dirProps[i]|=IGNORE_CC;
                     overflowIsolateCount--;
+                    /* make it WS so that it is handled by adjustWSLevels() */
+                    dirProps[i]=WS;
                 }
                 else if(validIsolateCount) {
+                    flags|=DIRPROP_FLAG(PDI);
                     lastCcPos=i;
                     overflowEmbeddingCount=0;
                     while(stack[stackLast]<ISOLATE) /* pop embedding entries */
@@ -1182,71 +1270,57 @@
                     validIsolateCount--;
                     bracketProcessPDI(&bracketData);
                 } else
-                    dirProps[i]|=IGNORE_CC;
+                    /* make it WS so that it is handled by adjustWSLevels() */
+                    dirProps[i]=WS;
                 embeddingLevel=(UBiDiLevel)stack[stackLast]&~ISOLATE;
-                previousLevel=level=embeddingLevel;
-                flags|= DIRPROP_FLAG(ON) | DIRPROP_FLAG(BN) | DIRPROP_FLAG_LR(embeddingLevel);
+                flags|=(DIRPROP_FLAG(ON)|DIRPROP_FLAG_LR(embeddingLevel));
+                previousLevel=embeddingLevel;
+                levels[i]=NO_OVERRIDE(embeddingLevel);
                 break;
             case B:
-                level=GET_PARALEVEL(pBiDi, i);
+                flags|=DIRPROP_FLAG(B);
+                levels[i]=GET_PARALEVEL(pBiDi, i);
                 if((i+1)<length) {
                     if(text[i]==CR && text[i+1]==LF)
                         break;          /* skip CR when followed by LF */
                     overflowEmbeddingCount=overflowIsolateCount=0;
                     validIsolateCount=0;
                     stackLast=0;
-                    stack[0]=level; /* initialize base entry to para level, no override, no isolate */
                     previousLevel=embeddingLevel=GET_PARALEVEL(pBiDi, i+1);
+                    stack[0]=embeddingLevel; /* initialize base entry to para level, no override, no isolate */
                     bracketProcessB(&bracketData, embeddingLevel);
                 }
-                flags|=DIRPROP_FLAG(B);
                 break;
             case BN:
                 /* BN, LRE, RLE, and PDF are supposed to be removed (X9) */
                 /* they will get their levels set correctly in adjustWSLevels() */
+                levels[i]=previousLevel;
                 flags|=DIRPROP_FLAG(BN);
                 break;
             default:
-                /* all other types get the "real" level */
-                level=embeddingLevel;
-                if(embeddingLevel!=previousLevel) {
+                /* all other types are normal characters and get the "real" level */
+                if(NO_OVERRIDE(embeddingLevel)!=NO_OVERRIDE(previousLevel)) {
                     bracketProcessBoundary(&bracketData, lastCcPos,
                                            previousLevel, embeddingLevel);
-                    previousLevel=embeddingLevel;
+                    flags|=DIRPROP_FLAG_MULTI_RUNS;
+                    if(embeddingLevel&UBIDI_LEVEL_OVERRIDE)
+                        flags|=DIRPROP_FLAG_O(embeddingLevel);
+                    else
+                        flags|=DIRPROP_FLAG_E(embeddingLevel);
                 }
-                if(level&UBIDI_LEVEL_OVERRIDE)
-                    flags|=DIRPROP_FLAG_LR(level);
-                else
-                    flags|=DIRPROP_FLAG(dirProp);
-                if(!bracketProcessChar(&bracketData, i, dirProp))
+                previousLevel=embeddingLevel;
+                levels[i]=embeddingLevel;
+                if(!bracketProcessChar(&bracketData, i))
                     return -1;
+                /* the dirProp may have been changed in bracketProcessChar() */
+                flags|=DIRPROP_FLAG(dirProps[i]);
                 break;
             }
-
-            /*
-             * We need to set reasonable levels even on BN codes and
-             * explicit codes because we will later look at same-level runs (X10).
-             */
-            levels[i]=level;
-            if(i>0 && levels[i-1]!=level) {
-                flags|=DIRPROP_FLAG_MULTI_RUNS;
-                if(level&UBIDI_LEVEL_OVERRIDE)
-                    flags|=DIRPROP_FLAG_O(level);
-                else
-                    flags|=DIRPROP_FLAG_E(level);
-            }
-            if(DIRPROP_FLAG(dirProp)&MASK_ISO)
-                level=embeddingLevel;
         }
-        if(flags&MASK_EMBEDDING) {
+        if(flags&MASK_EMBEDDING)
             flags|=DIRPROP_FLAG_LR(pBiDi->paraLevel);
-        }
-        if(pBiDi->orderParagraphsLTR && (flags&DIRPROP_FLAG(B))) {
+        if(pBiDi->orderParagraphsLTR && (flags&DIRPROP_FLAG(B)))
             flags|=DIRPROP_FLAG(L);
-        }
-
-        /* subsequently, ignore the explicit codes and BN (X9) */
-
         /* again, determine if the text is mixed-directional or single-directional */
         pBiDi->flags=flags;
         direction=directionFromFlags(pBiDi);
@@ -1304,10 +1378,8 @@
             return UBIDI_LTR;
         }
     }
-    if(flags&MASK_EMBEDDING) {
+    if(flags&MASK_EMBEDDING)
         flags|=DIRPROP_FLAG_LR(pBiDi->paraLevel);
-    }
-
     /* determine if the text is mixed-directional or single-directional */
     pBiDi->flags=flags;
     return directionFromFlags(pBiDi);
@@ -1407,7 +1479,7 @@
 /*23 ENR+ET      */ { s(1,1), s(1,2),    21 , s(1,5), s(1,7),s(1,15),s(1,17), s(1,7),    23 , s(1,7),    23 ,    23 , s(1,3),    18 ,    21 , DirProp_AN }
 };
 
-/*  we must undef macro s because the levels table have a different
+/*  we must undef macro s because the levels tables have a different
  *  structure (4 bits for action and 4 bits for next state.
  */
 #undef s
@@ -1486,7 +1558,7 @@
 */
 
 static const ImpTab impTabL_DEFAULT =   /* Even paragraph level */
-/*  In this table, conditional sequences receive the higher possible level
+/*  In this table, conditional sequences receive the lower possible level
     until proven otherwise.
 */
 {
@@ -1495,8 +1567,8 @@
 /* 1 : R          */ {     0 ,     1 ,     3 ,     3 , s(1,4), s(1,4),     0 ,  1 },
 /* 2 : AN         */ {     0 ,     1 ,     0 ,     2 , s(1,5), s(1,5),     0 ,  2 },
 /* 3 : R+EN/AN    */ {     0 ,     1 ,     3 ,     3 , s(1,4), s(1,4),     0 ,  2 },
-/* 4 : R+ON       */ { s(2,0),     1 ,     3 ,     3 ,     4 ,     4 , s(2,0),  1 },
-/* 5 : AN+ON      */ { s(2,0),     1 , s(2,0),     2 ,     5 ,     5 , s(2,0),  1 }
+/* 4 : R+ON       */ {     0 , s(2,1), s(3,3), s(3,3),     4 ,     4 ,     0 ,  0 },
+/* 5 : AN+ON      */ {     0 , s(2,1),     0 , s(3,2),     5 ,     5 ,     0 ,  0 }
 };
 static const ImpTab impTabR_DEFAULT =   /* Odd  paragraph level */
 /*  In this table, conditional sequences receive the lower possible level
@@ -1511,23 +1583,23 @@
 /* 4 : L+ON       */ { s(2,1),     0 , s(2,1),     3 ,     4 ,     4 ,     0 ,  0 },
 /* 5 : L+AN+ON    */ {     1 ,     0 ,     1 ,     3 ,     5 ,     5 ,     0 ,  0 }
 };
-static const ImpAct impAct0 = {0,1,2,3,4,5,6};
+static const ImpAct impAct0 = {0,1,2,3,4};
 static const ImpTabPair impTab_DEFAULT = {{&impTabL_DEFAULT,
                                            &impTabR_DEFAULT},
                                           {&impAct0, &impAct0}};
 
 static const ImpTab impTabL_NUMBERS_SPECIAL =   /* Even paragraph level */
-/*  In this table, conditional sequences receive the higher possible level
+/*  In this table, conditional sequences receive the lower possible level
     until proven otherwise.
 */
 {
 /*                         L ,     R ,    EN ,    AN ,    ON ,     S ,     B , Res */
-/* 0 : init       */ {     0 ,     2 ,    1 ,      1 ,     0 ,     0 ,     0 ,  0 },
-/* 1 : L+EN/AN    */ {     0 ,     2 ,    1 ,      1 ,     0 ,     0 ,     0 ,  2 },
-/* 2 : R          */ {     0 ,     2 ,    4 ,      4 , s(1,3),     0 ,     0 ,  1 },
-/* 3 : R+ON       */ { s(2,0),     2 ,    4 ,      4 ,     3 ,     3 , s(2,0),  1 },
-/* 4 : R+EN/AN    */ {     0 ,     2 ,    4 ,      4 , s(1,3), s(1,3),     0 ,  2 }
-  };
+/* 0 : init       */ {     0 ,     2 , s(1,1), s(1,1),     0 ,     0 ,     0 ,  0 },
+/* 1 : L+EN/AN    */ {     0 , s(4,2),     1 ,     1 ,     0 ,     0 ,     0 ,  0 },
+/* 2 : R          */ {     0 ,     2 ,     4 ,     4 , s(1,3), s(1,3),     0 ,  1 },
+/* 3 : R+ON       */ {     0 , s(2,2), s(3,4), s(3,4),     3 ,     3 ,     0 ,  0 },
+/* 4 : R+EN/AN    */ {     0 ,     2 ,     4 ,     4 , s(1,3), s(1,3),     0 ,  2 }
+};
 static const ImpTabPair impTab_NUMBERS_SPECIAL = {{&impTabL_NUMBERS_SPECIAL,
                                                    &impTabR_DEFAULT},
                                                   {&impAct0, &impAct0}};
@@ -1608,7 +1680,7 @@
 /* 5 : L+AN+ON    */ { s(2,1), s(3,0),     6 ,     4 ,     5 ,     5 , s(3,0),  2 },
 /* 6 : L+ON+EN    */ { s(2,1), s(3,0),     6 ,     4 ,     3 ,     3 , s(3,0),  1 }
 };
-static const ImpAct impAct1 = {0,1,11,12};
+static const ImpAct impAct1 = {0,1,13,14};
 /* FOOD FOR THOUGHT: in LTR table below, check case "JKL 123abc"
  */
 static const ImpTabPair impTab_INVERSE_LIKE_DIRECT = {
@@ -1643,11 +1715,12 @@
 /* 5 : L+ON+EN    */ { s(5,3), s(4,0),     5 , s(3,6),     4 , s(4,0), s(4,0),  1 },
 /* 6 : L+AN       */ { s(5,3), s(4,0),     6 ,     6 ,     4 , s(4,0), s(4,0),  3 }
 };
-static const ImpAct impAct2 = {0,1,7,8,9,10};
+static const ImpAct impAct2 = {0,1,2,5,6,7,8};
+static const ImpAct impAct3 = {0,1,9,10,11,12};
 static const ImpTabPair impTab_INVERSE_LIKE_DIRECT_WITH_MARKS = {
                         {&impTabL_INVERSE_LIKE_DIRECT_WITH_MARKS,
                          &impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS},
-                        {&impAct0, &impAct2}};
+                        {&impAct2, &impAct3}};
 
 static const ImpTabPair impTab_INVERSE_FOR_NUMBERS_SPECIAL = {
                         {&impTabL_NUMBERS_SPECIAL,
@@ -1668,7 +1741,7 @@
 static const ImpTabPair impTab_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS = {
                         {&impTabL_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS,
                          &impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS},
-                        {&impAct0, &impAct2}};
+                        {&impAct2, &impAct3}};
 
 #undef s
 
@@ -1725,6 +1798,23 @@
 #undef FIRSTALLOC
 }
 
+static void
+setLevelsOutsideIsolates(UBiDi *pBiDi, int32_t start, int32_t limit, UBiDiLevel level)
+{
+    DirProp *dirProps=pBiDi->dirProps, dirProp;
+    UBiDiLevel *levels=pBiDi->levels;
+    int32_t isolateCount=0, k;
+    for(k=start; k<limit; k++) {
+        dirProp=dirProps[k];
+        if(dirProp==PDI)
+            isolateCount--;
+        if(isolateCount==0)
+            levels[k]=level;
+        if(dirProp==LRI || dirProp==RLI)
+            isolateCount++;
+    }
+}
+
 /* perform rules (Wn), (Nn), and (In) on a run of the text ------------------ */
 
 /*
@@ -1768,7 +1858,17 @@
             start=pLevState->startON;
             break;
 
-        case 3:                         /* L or S after possible relevant EN/AN */
+        case 3:                         /* EN/AN after R+ON */
+            level=pLevState->runLevel+1;
+            setLevelsOutsideIsolates(pBiDi, pLevState->startON, start0, level);
+            break;
+
+        case 4:                         /* EN/AN before R for NUMBERS_SPECIAL */
+            level=pLevState->runLevel+2;
+            setLevelsOutsideIsolates(pBiDi, pLevState->startON, start0, level);
+            break;
+
+        case 5:                         /* L or S after possible relevant EN/AN */
             /* check if we had EN after R/AL */
             if (pLevState->startL2EN >= 0) {
                 addPoint(pBiDi, pLevState->startL2EN, LRM_BEFORE);
@@ -1809,7 +1909,7 @@
             }
             break;
 
-        case 4:                         /* R/AL after possible relevant EN/AN */
+        case 6:                         /* R/AL after possible relevant EN/AN */
             /* just clean up */
             pInsertPoints=&(pBiDi->insertPoints);
             if (pInsertPoints->capacity > 0)
@@ -1820,7 +1920,7 @@
             pLevState->lastStrongRTL=limit - 1;
             break;
 
-        case 5:                         /* EN/AN after R/AL + possible cont */
+        case 7:                         /* EN/AN after R/AL + possible cont */
             /* check for real AN */
             if ((_prop == DirProp_AN) && (pBiDi->dirProps[start0] == AN) &&
                 (pBiDi->reorderingMode!=UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL))
@@ -1847,12 +1947,12 @@
             }
             break;
 
-        case 6:                         /* note location of latest R/AL */
+        case 8:                         /* note location of latest R/AL */
             pLevState->lastStrongRTL=limit - 1;
             pLevState->startON=-1;
             break;
 
-        case 7:                         /* L after R+ON/EN/AN */
+        case 9:                         /* L after R+ON/EN/AN */
             /* include possible adjacent number on the left */
             for (k=start0-1; k>=0 && !(levels[k]&1); k--);
             if(k>=0) {
@@ -1863,14 +1963,14 @@
             pLevState->startON=start0;
             break;
 
-        case 8:                         /* AN after L */
+        case 10:                        /* AN after L */
             /* AN numbers between L text on both sides may be trouble. */
             /* tentatively bracket with LRMs; will be confirmed if followed by L */
             addPoint(pBiDi, start0, LRM_BEFORE);    /* add LRM before */
             addPoint(pBiDi, start0, LRM_AFTER);     /* add LRM after  */
             break;
 
-        case 9:                         /* R after L+ON/EN/AN */
+        case 11:                        /* R after L+ON/EN/AN */
             /* false alert, infirm LRMs around previous AN */
             pInsertPoints=&(pBiDi->insertPoints);
             pInsertPoints->size=pInsertPoints->confirmed;
@@ -1881,7 +1981,7 @@
             }
             break;
 
-        case 10:                        /* L after L+ON/AN */
+        case 12:                        /* L after L+ON/AN */
             level=pLevState->runLevel + addLevel;
             for(k=pLevState->startON; k<start0; k++) {
                 if (levels[k]<level)
@@ -1892,7 +1992,7 @@
             pLevState->startON=start0;
             break;
 
-        case 11:                        /* L after L+ON+EN/AN/ON */
+        case 13:                        /* L after L+ON+EN/AN/ON */
             level=pLevState->runLevel;
             for(k=start0-1; k>=pLevState->startON; k--) {
                 if(levels[k]==level+3) {
@@ -1911,7 +2011,7 @@
             }
             break;
 
-        case 12:                        /* R after L+ON+EN/AN/ON */
+        case 14:                        /* R after L+ON+EN/AN/ON */
             level=pLevState->runLevel+1;
             for(k=start0-1; k>=pLevState->startON; k--) {
                 if(levels[k]>level) {
@@ -1932,17 +2032,7 @@
                 levels[k]=level;
             }
         } else {
-            DirProp *dirProps=pBiDi->dirProps, dirProp;
-            int32_t isolateCount=0;
-            for(k=start; k<limit; k++) {
-                dirProp=dirProps[k];
-                if(dirProp==PDI)
-                    isolateCount--;
-                if(isolateCount==0)
-                    levels[k]=level;
-                if(dirProp==LRI || dirProp==RLI)
-                    isolateCount++;
-            }
+            setLevelsOutsideIsolates(pBiDi, start, limit, level);
         }
     }
 }
@@ -2033,7 +2123,6 @@
           pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL));
 
     /* initialize for property and levels state tables */
-    levState.startON=-1;
     levState.startL2EN=-1;              /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
     levState.lastStrongRTL=-1;          /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
     levState.runStart=start;
@@ -2050,11 +2139,13 @@
        resume the bidi algorithm in the same state as it was
        when it was interrupted by an isolate sequence. */
     if(dirProps[start]==PDI) {
+        levState.startON=pBiDi->isolates[pBiDi->isolateCount].startON;
         start1=pBiDi->isolates[pBiDi->isolateCount].start1;
         stateImp=pBiDi->isolates[pBiDi->isolateCount].stateImp;
         levState.state=pBiDi->isolates[pBiDi->isolateCount].state;
         pBiDi->isolateCount--;
     } else {
+        levState.startON=-1;
         start1=start;
         if(dirProps[start]==NSM)
             stateImp = 1 + sor;
@@ -2063,19 +2154,19 @@
         levState.state=0;
         processPropertySeq(pBiDi, &levState, sor, start, start);
     }
-    start2=start;
+    start2=start;                       /* to make Java compiler happy */
 
     for(i=start; i<=limit; i++) {
         if(i>=limit) {
-            if(limit>start) {
-                dirProp=pBiDi->dirProps[limit-1];
-                if(dirProp==LRI || dirProp==RLI)
-                    break;  /* no forced closing for sequence ending with LRI/RLI */
-            }
+            int32_t k;
+            for(k=limit-1; k>start&&(DIRPROP_FLAG(dirProps[k])&MASK_BN_EXPLICIT); k--);
+            dirProp=dirProps[k];
+            if(dirProp==LRI || dirProp==RLI)
+                break;      /* no forced closing for sequence ending with LRI/RLI */
             gprop=eor;
         } else {
             DirProp prop, prop1;
-            prop=PURE_DIRPROP(dirProps[i]);
+            prop=dirProps[i];
             if(inverseRTL) {
                 if(prop==AL) {
                     /* AL before EN does not make it AN */
@@ -2145,12 +2236,15 @@
         }
     }
 
-    dirProp=dirProps[limit-1];
+    /* look for the last char not a BN or LRE/RLE/LRO/RLO/PDF */
+    for(i=limit-1; i>start&&(DIRPROP_FLAG(dirProps[i])&MASK_BN_EXPLICIT); i--);
+    dirProp=dirProps[i];
     if((dirProp==LRI || dirProp==RLI) && limit<pBiDi->length) {
         pBiDi->isolateCount++;
         pBiDi->isolates[pBiDi->isolateCount].stateImp=stateImp;
         pBiDi->isolates[pBiDi->isolateCount].state=levState.state;
         pBiDi->isolates[pBiDi->isolateCount].start1=start1;
+        pBiDi->isolates[pBiDi->isolateCount].startON=levState.startON;
     }
     else
         processPropertySeq(pBiDi, &levState, eor, limit, limit);
@@ -2177,7 +2271,7 @@
         i=pBiDi->trailingWSStart;
         while(i>0) {
             /* reset a sequence of WS/BN before eop and B/S to the paragraph paraLevel */
-            while(i>0 && (flag=DIRPROP_FLAG(PURE_DIRPROP(dirProps[--i])))&MASK_WS) {
+            while(i>0 && (flag=DIRPROP_FLAG(dirProps[--i]))&MASK_WS) {
                 if(orderParagraphsLTR&&(flag&DIRPROP_FLAG(B))) {
                     levels[i]=0;
                 } else {
@@ -2188,7 +2282,7 @@
             /* reset BN to the next character's paraLevel until B/S, which restarts above loop */
             /* here, i+1 is guaranteed to be <length */
             while(i>0) {
-                flag=DIRPROP_FLAG(PURE_DIRPROP(dirProps[--i]));
+                flag=DIRPROP_FLAG(dirProps[--i]);
                 if(flag&MASK_BN_EXPLICIT) {
                     levels[i]=levels[i+1];
                 } else if(orderParagraphsLTR&&(flag&DIRPROP_FLAG(B))) {
@@ -2433,6 +2527,7 @@
               UBiDiLevel paraLevel, UBiDiLevel *embeddingLevels,
               UErrorCode *pErrorCode) {
     UBiDiDirection direction;
+    DirProp *dirProps;
 
     /* check the argument values */
     RETURN_VOID_IF_NULL_OR_FAILING_ERRCODE(pErrorCode);
@@ -2511,6 +2606,7 @@
         *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
         return;
     }
+    dirProps=pBiDi->dirProps;
     /* the processed length may have changed if UBIDI_OPTION_STREAMING */
     length= pBiDi->length;
     pBiDi->trailingWSStart=length;  /* the levels[] will reflect the WS run */
@@ -2541,7 +2637,7 @@
     if(pBiDi->isolateCount<=SIMPLE_ISOLATES_SIZE)
         pBiDi->isolates=pBiDi->simpleIsolates;
     else
-        if(pBiDi->isolateCount<=pBiDi->isolatesSize)
+        if((int32_t)(pBiDi->isolateCount*sizeof(Isolate))<=pBiDi->isolatesSize)
             pBiDi->isolates=pBiDi->isolatesMemory;
         else {
             if(getInitialIsolatesMemory(pBiDi, pBiDi->isolateCount)) {
@@ -2647,7 +2743,7 @@
                 /* the values for this run's start are the same as for the previous run's end */
                 start=limit;
                 level=nextLevel;
-                if((start>0) && (pBiDi->dirProps[start-1]==B)) {
+                if((start>0) && (dirProps[start-1]==B)) {
                     /* except if this is a new paragraph, then set sor = para level */
                     sor=GET_LR_FROM_LEVEL(GET_PARALEVEL(pBiDi, start));
                 } else {
@@ -2655,7 +2751,9 @@
                 }
 
                 /* search for the limit of this run */
-                while(++limit<length && levels[limit]==level) {}
+                while((++limit<length) &&
+                      ((levels[limit]==level) ||
+                       (DIRPROP_FLAG(dirProps[limit])&MASK_BN_EXPLICIT))) {}
 
                 /* get the correct level of the next run */
                 if(limit<length) {
@@ -2665,7 +2763,7 @@
                 }
 
                 /* determine eor from max(level, nextLevel); sor is last run's eor */
-                if((level&~UBIDI_LEVEL_OVERRIDE)<(nextLevel&~UBIDI_LEVEL_OVERRIDE)) {
+                if(NO_OVERRIDE(level)<NO_OVERRIDE(nextLevel)) {
                     eor=GET_LR_FROM_LEVEL(nextLevel);
                 } else {
                     eor=GET_LR_FROM_LEVEL(level);
@@ -2710,10 +2808,10 @@
                 continue;           /* LTR paragraph */
             start= i==0 ? 0 : pBiDi->paras[i-1].limit;
             for(j=last; j>=start; j--) {
-                dirProp=pBiDi->dirProps[j];
+                dirProp=dirProps[j];
                 if(dirProp==L) {
                     if(j<last) {
-                        while(pBiDi->dirProps[last]==B) {
+                        while(dirProps[last]==B) {
                             last--;
                         }
                     }
diff --git a/common/ubidi_props_data.h b/common/ubidi_props_data.h
index 397ea0a..c18da3c 100644
--- a/common/ubidi_props_data.h
+++ b/common/ubidi_props_data.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2013, International Business Machines
+ * Copyright (C) 1999-2014, International Business Machines
  * Corporation and others.  All Rights Reserved.
  *
  * file name: ubidi_props_data.h
diff --git a/common/ubidiimp.h b/common/ubidiimp.h
index 58c86f2..21a7d5e 100644
--- a/common/ubidiimp.h
+++ b/common/ubidiimp.h
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1999-2013, International Business Machines
+*   Copyright (C) 1999-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -17,7 +17,7 @@
 #ifndef UBIDIIMP_H
 #define UBIDIIMP_H
 
-/* set import/export definitions */
+/*  set import/export definitions */
 #ifdef U_COMMON_IMPLEMENTATION
 
 #include "unicode/utypes.h"
@@ -57,24 +57,24 @@
     LRI=U_LEFT_TO_RIGHT_ISOLATE,        /* 20 */
     RLI=U_RIGHT_TO_LEFT_ISOLATE,        /* 21 */
     PDI=U_POP_DIRECTIONAL_ISOLATE,      /* 22 */
-    ENL,                                /* 23 */
-    ENR,                                /* 24 */
+    ENL,    /* EN after W7 */           /* 23 */
+    ENR,    /* EN not subject to W7 */  /* 24 */
     dirPropCount
 };
 
-/*
- * Sometimes, bit values are more appropriate
- * to deal with directionality properties.
- * Abbreviations in these macro names refer to names
- * used in the BiDi algorithm.
- */
+/*  Sometimes, bit values are more appropriate
+    to deal with directionality properties.
+    Abbreviations in these macro names refer to names
+    used in the BiDi algorithm.
+*/
 #define DIRPROP_FLAG(dir) (1UL<<(dir))
+#define PURE_DIRPROP(prop)  ((prop)&~0xE0)    ?????????????????????????
 
 /* special flag for multiple runs from explicit embedding codes */
 #define DIRPROP_FLAG_MULTI_RUNS (1UL<<31)
 
 /* are there any characters that are LTR or RTL? */
-#define MASK_LTR (DIRPROP_FLAG(L)|DIRPROP_FLAG(EN)|DIRPROP_FLAG(AN)|DIRPROP_FLAG(LRE)|DIRPROP_FLAG(LRO)|DIRPROP_FLAG(LRI))
+#define MASK_LTR (DIRPROP_FLAG(L)|DIRPROP_FLAG(EN)|DIRPROP_FLAG(ENL)|DIRPROP_FLAG(ENR)|DIRPROP_FLAG(AN)|DIRPROP_FLAG(LRE)|DIRPROP_FLAG(LRO)|DIRPROP_FLAG(LRI))
 #define MASK_RTL (DIRPROP_FLAG(R)|DIRPROP_FLAG(AL)|DIRPROP_FLAG(RLE)|DIRPROP_FLAG(RLO)|DIRPROP_FLAG(RLI))
 #define MASK_R_AL (DIRPROP_FLAG(R)|DIRPROP_FLAG(AL))
 #define MASK_STRONG_EN_AN (DIRPROP_FLAG(L)|DIRPROP_FLAG(R)|DIRPROP_FLAG(AL)|DIRPROP_FLAG(EN)|DIRPROP_FLAG(AN))
@@ -97,9 +97,9 @@
 #define MASK_POSSIBLE_N (DIRPROP_FLAG(ON)|DIRPROP_FLAG(CS)|DIRPROP_FLAG(ES)|DIRPROP_FLAG(ET)|MASK_WS)
 
 /*
- * These types may be changed to "e",
- * the embedding type (L or R) of the run,
- * in the BiDi algorithm (N2)
+ *  These types may be changed to "e",
+ *  the embedding type (L or R) of the run,
+ *  in the BiDi algorithm (N2)
  */
 #define MASK_EMBEDDING (DIRPROP_FLAG(NSM)|MASK_POSSIBLE_N)
 
@@ -109,17 +109,8 @@
 #define IS_DEFAULT_LEVEL(level) ((level)>=0xfe)
 
 /*
- * The following bit is ORed to the property of directional control
- * characters which are ignored: unmatched PDF or PDI; LRx, RLx or FSI
- * which would exceed the maximum explicit bidi level.
- */
-#define IGNORE_CC   0x40
-
-#define PURE_DIRPROP(prop)  ((prop)&~IGNORE_CC)
-
-/*
- * The following bit is used for the directional isolate status.
- * Stack entries corresponding to isolate sequences are greater than ISOLATE.
+ *  The following bit is used for the directional isolate status.
+ *  Stack entries corresponding to isolate sequences are greater than ISOLATE.
  */
 #define ISOLATE  0x0100
 
@@ -168,14 +159,13 @@
 } Opening;
 
 typedef struct IsoRun {
-    int32_t  lastStrongPos;             /* position of last strong char found in this run */
-    int32_t  contextPos;                /* position of last char defining context */
+    int32_t  contextPos;                /* position of char determining context */
     uint16_t start;                     /* index of first opening entry for this run */
     uint16_t limit;                     /* index after last opening entry for this run */
     UBiDiLevel level;                   /* level of this run */
     DirProp lastStrong;                 /* bidi class of last strong char found in this run */
+    DirProp lastBase;                   /* bidi class of last base char found in this run */
     UBiDiDirection contextDir;          /* L or R to use as context for following openings */
-    uint8_t filler;                     /* to complete a nice multiple of 4 chars */
 } IsoRun;
 
 typedef struct BracketData {
@@ -192,6 +182,7 @@
 } BracketData;
 
 typedef struct Isolate {
+    int32_t startON;
     int32_t start1;
     int16_t stateImp;
     int16_t state;
diff --git a/common/ubidiln.c b/common/ubidiln.c
index 743dfb9..e10c203 100644
--- a/common/ubidiln.c
+++ b/common/ubidiln.c
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1999-2013, International Business Machines
+*   Copyright (C) 1999-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -110,7 +110,7 @@
         return;
     }
     /* go backwards across all WS, BN, explicit codes */
-    while(start>0 && DIRPROP_FLAG(PURE_DIRPROP(dirProps[start-1]))&MASK_WS) {
+    while(start>0 && DIRPROP_FLAG(dirProps[start-1])&MASK_WS) {
         --start;
     }
 
diff --git a/common/ucase_props_data.h b/common/ucase_props_data.h
index 88b4176..ef037c7 100644
--- a/common/ucase_props_data.h
+++ b/common/ucase_props_data.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2013, International Business Machines
+ * Copyright (C) 1999-2014, International Business Machines
  * Corporation and others.  All Rights Reserved.
  *
  * file name: ucase_props_data.h
diff --git a/common/uchar_props_data.h b/common/uchar_props_data.h
index 1c0717a..0a5cf2e 100644
--- a/common/uchar_props_data.h
+++ b/common/uchar_props_data.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2013, International Business Machines
+ * Copyright (C) 1999-2014, International Business Machines
  * Corporation and others.  All Rights Reserved.
  *
  * file name: uchar_props_data.h
@@ -13,7 +13,7 @@
 
 static const UVersionInfo dataVersion={6,3,0,0};
 
-static const uint16_t propsTrie_index[17928]={
+static const uint16_t propsTrie_index[17932]={
 0x3dc,0x3e4,0x3ec,0x3f4,0x40c,0x414,0x41c,0x424,0x42c,0x434,0x43a,0x442,0x44a,0x452,0x45a,0x462,
 0x468,0x470,0x478,0x480,0x483,0x48b,0x493,0x49b,0x4a3,0x4ab,0x4a7,0x4af,0x4b7,0x4bf,0x4c4,0x4cc,
 0x4d4,0x4dc,0x4e0,0x4e8,0x4f0,0x4f8,0x500,0x508,0x506,0x50e,0x513,0x51b,0x521,0x529,0x531,0x539,
@@ -30,20 +30,20 @@
 0x85a,0x549,0x86a,0x872,0x87a,0x862,0x3fc,0x3fc,0x88a,0x88d,0x895,0x882,0x8a5,0x89d,0x549,0x8ac,
 0x549,0x8bb,0x8b4,0x8c3,0x3fc,0x3fc,0x8cb,0x8d3,0x47c,0x8db,0x8de,0x8e4,0x8eb,0x8de,0x4a3,0x8f3,
 0x42c,0x42c,0x42c,0x42c,0x8fb,0x42c,0x42c,0x42c,0x90b,0x913,0x91b,0x923,0x92b,0x92f,0x937,0x903,
-0x94f,0x957,0x93f,0x947,0x95f,0x967,0x96e,0x976,0x98e,0x97e,0x986,0x996,0x99e,0x9ad,0x9b2,0x9a5,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9c2,0x9ca,0x852,0x9cd,0x9d5,0x9dc,0x9e1,0x9e9,
-0x852,0x9f1,0x9f9,0xa09,0xa0c,0x852,0x852,0xa01,0x852,0x852,0x852,0x852,0x852,0xa1b,0xa23,0xa13,
-0x852,0x852,0x852,0xa28,0x852,0x852,0x852,0x852,0xa30,0x852,0x852,0xa36,0xa3e,0x852,0xa46,0xa4d,
-0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x9ba,0x9ba,0x9ba,0x9ba,0xa55,0x9ba,0xa5c,0xa63,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x852,0xa6b,0xa72,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x4d4,0xa82,0xa7a,0xa8a,0x42c,0x42c,0x42c,0xa92,0x47c,0xa9a,0x549,0xaa0,0xab0,0xaa8,0xaa8,0x4a3,
-0xab8,0xac0,0x3fc,0x3fc,0xac8,0x852,0x852,0xacf,0x852,0x852,0x852,0x852,0x852,0x852,0xad7,0xadd,
-0xaed,0xae5,0x58a,0x549,0xaf5,0x7af,0x549,0xafd,0xb05,0xb0a,0x549,0x549,0xb0f,0x535,0x852,0xb16,
-0xb1e,0xb26,0xb2c,0x852,0xb26,0xb34,0x852,0xb1e,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,
-0xb3c,0x549,0x549,0x549,0xb44,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x94f,0x957,0x93f,0x947,0x95f,0x967,0x96f,0x977,0x98f,0x97f,0x987,0x997,0x99f,0x9ae,0x9b3,0x9a6,
+0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9c3,0x9cb,0x852,0x9ce,0x9d6,0x9dd,0x9e2,0x9ea,
+0x852,0x9f2,0x9fa,0xa0a,0xa0d,0x852,0x852,0xa02,0x852,0x852,0x852,0x852,0x852,0xa1c,0xa24,0xa14,
+0x852,0x852,0x852,0xa29,0x852,0x852,0x852,0x852,0xa31,0x852,0x852,0xa37,0xa3f,0x852,0xa47,0xa4e,
+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x9bb,0x9bb,0x9bb,0x9bb,0xa56,0x9bb,0xa5d,0xa64,
+0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x9bb,0x852,0xa6c,0xa73,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x4d4,0xa83,0xa7b,0xa8b,0x42c,0x42c,0x42c,0xa93,0x47c,0xa9b,0x549,0xaa1,0xab1,0xaa9,0xaa9,0x4a3,
+0xab9,0xac1,0x3fc,0x3fc,0xac9,0x852,0x852,0xad0,0x852,0x852,0x852,0x852,0x852,0x852,0xad8,0xade,
+0xaee,0xae6,0x58a,0x549,0xaf6,0x7af,0x549,0xafe,0xb06,0xb0b,0x549,0x549,0xb10,0x535,0x852,0xb17,
+0xb1f,0xb27,0xb2d,0x852,0xb27,0xb35,0x852,0xb1f,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,
+0xb3d,0x549,0x549,0x549,0xb45,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0xb4a,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb4f,0x549,0x549,0x549,0x549,0x549,
+0x549,0xb4b,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb50,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
@@ -53,53 +53,53 @@
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x81e,0x852,0x852,
-0xb57,0x549,0xb5a,0x549,0xb62,0xb68,0xb70,0xb78,0xb7d,0x549,0x549,0xb81,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb88,0x549,0xb8f,0xb95,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb9d,0x549,0x549,0x549,0xba5,0x549,
+0xb58,0x549,0xb5b,0x549,0xb63,0xb69,0xb71,0xb79,0xb7e,0x549,0x549,0xb82,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb89,0x549,0xb90,0xb96,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xb9e,0x549,0x549,0x549,0xba6,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0xba7,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbae,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0xba8,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbaf,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0xbb5,0x549,0x549,0x549,0xbbc,0xbc4,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0xbb6,0x549,0x549,0x549,0xbbd,0xbc5,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbc9,0x549,0x549,0xbd1,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbca,0x549,0x549,0xbd2,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbd5,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbd6,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbd8,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbd9,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbdb,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbdc,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0xbe1,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0xbe2,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0xbe9,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0xbea,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0xbee,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0xbef,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0xbf3,0x549,0x549,0x549,0xbf8,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0xbf4,0x549,0x549,0x549,0xbf9,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0xc00,0xc07,0xc0b,0x549,0x549,0x549,0xc12,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0xc01,0xc08,0xc0c,0x549,0x549,0x549,0xc13,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xc18,0x3fc,
-0xc28,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xc19,0x3fc,
+0xc29,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0xc20,0x852,0xc30,0x8c3,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0xc35,0xc3d,0x42c,0xc4d,0xc45,0x549,0x549,0xc55,0xc5d,0xc65,0x42c,0xc6a,0xc72,0xc7a,0x3fc,0xc7d,
-0xc85,0xc8d,0x549,0xc95,0xca5,0xca8,0xc9d,0xcb0,0x59e,0xcb8,0xcbf,0x832,0x5dd,0xccf,0xcc7,0x3fc,
-0x549,0xcd7,0xcdf,0xce7,0x549,0xcef,0xcf7,0xcff,0xd07,0xd0f,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xd17,
+0x549,0x549,0x549,0x549,0xc21,0x852,0xc31,0x8c3,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0xc36,0xc3e,0x42c,0xc4e,0xc46,0x549,0x549,0xc56,0xc5e,0xc66,0x42c,0xc6b,0xc73,0xc7b,0x3fc,0xc7e,
+0xc86,0xc8e,0x549,0xc96,0xca6,0xca9,0xc9e,0xcb1,0x59e,0xcb9,0xcc0,0x832,0x5dd,0xcd0,0xcc8,0x3fc,
+0x549,0xcd8,0xce0,0xce8,0x549,0xcf0,0xcf8,0xd00,0xd08,0xd10,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xd18,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
@@ -121,29 +121,29 @@
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xd1f,0xd26,0x815,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xd20,0xd27,0x815,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,
-0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0x549,0x549,0x549,0xd3e,0x549,0xc13,0xd45,0xd4a,
-0x549,0x549,0x549,0xd52,0x549,0x549,0xd56,0x3fc,0xd6e,0xd5e,0xd66,0x549,0x549,0xd76,0xd7e,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xd83,0x866,0x549,0xd8b,0x549,0xd91,0xd95,
-0xd9d,0xda5,0xdac,0xdb4,0x549,0x549,0x549,0xdba,0xdd2,0x3ec,0xdda,0xde2,0xde7,0xdef,0xdc2,0xdca,
-0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,
-0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,0xd2e,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0x549,0x549,0x549,0xd3f,0x549,0xc14,0xd46,0xd4b,
+0x549,0x549,0x549,0xd53,0x549,0x549,0xd57,0x3fc,0xd6f,0xd5f,0xd67,0x549,0x549,0xd77,0xd7f,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xd84,0x866,0x549,0xd8c,0x549,0xd92,0xd96,
+0xd9e,0xda6,0xdad,0xdb5,0x549,0x549,0x549,0xdbb,0xdd3,0x3ec,0xddb,0xde3,0xde8,0xdf0,0xdc3,0xdcb,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
 0xff0,0xff0,0x1030,0x1070,0x10b0,0x10e8,0x1128,0x1168,0x11a0,0x11e0,0x120c,0x124c,0x128c,0x129c,0x12dc,0x1310,
 0x1350,0x1380,0x13c0,0x1400,0x1418,0x144c,0x1484,0x14c4,0x1504,0x1544,0x1578,0x15a4,0x15e4,0x161c,0x1638,0x1678,
 0xa80,0xac0,0xb00,0xa40,0xb40,0xa40,0xb80,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xbc0,0xa40,0xa40,
@@ -182,85 +182,85 @@
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0xdf7,0xdfe,0xe06,0x3fc,0x549,0x549,0x549,0x535,0xe16,0xe0e,0xe2d,0xe1e,0xe25,0x3fc,0xe35,0xe39,
-0x3fc,0x3fc,0x3fc,0x3fc,0x832,0x549,0xe41,0x3fc,0xdef,0xe49,0xe51,0x3fc,0xe59,0x549,0xe61,0x3fc,
-0x4d4,0x4de,0xe69,0x549,0xe6d,0xe75,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0xdf8,0xdff,0xe07,0x3fc,0x549,0x549,0x549,0x535,0xe17,0xe0f,0xe2e,0xe1f,0xe26,0x3fc,0xe36,0xe3a,
+0x3fc,0x3fc,0x3fc,0x3fc,0x832,0x549,0xe42,0x3fc,0xdf0,0xe4a,0xe52,0x3fc,0xe5a,0x549,0xe62,0x3fc,
+0x4d4,0x4de,0xe6a,0x549,0xe6e,0xe76,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0xe85,0xe7d,0xe88,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0xe90,0xe98,0x3fc,0x3fc,0x549,0xea0,0x3fc,0x3fc,
-0xeb0,0xeb7,0xea8,0xebf,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xec7,0xecf,0xed7,0x3fc,0x3fc,0x3fc,0x3fc,
-0x549,0x549,0xedf,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x3fc,0x3fc,0x3fc,0xee7,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0xef7,0x57f,0xeff,0xeef,0x8a5,0xf07,0xf0f,0xf15,0xf2d,0xf1d,0xf25,0x3fc,0x8a5,0xf3d,0xf35,0x3fc,
+0xe86,0xe7e,0xe89,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0xe91,0xe99,0x3fc,0x3fc,0x549,0xea1,0x3fc,0x3fc,
+0xeb1,0xeb8,0xea9,0xec0,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xec8,0xed0,0xed8,0x3fc,0x3fc,0x3fc,0x3fc,
+0x549,0x549,0xee0,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x3fc,0x3fc,0x3fc,0xee8,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0xef8,0x57f,0xf00,0xef0,0x8a5,0xf08,0xf10,0xf16,0xf2e,0xf1e,0xf26,0x3fc,0x8a5,0xf3e,0xf36,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xf45,0xe75,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x3fc,0x3fc,0x3fc,0x3fc,0x549,0xf46,0xe76,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xf4d,0x3fc,0x3fc,0x3fc,0x3fc,
-0xf5d,0xf65,0xf6d,0xf55,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xf4e,0x3fc,0x3fc,0x3fc,0x3fc,
+0xf5e,0xf66,0xf6e,0xf56,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0xf4d,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x549,0xf4e,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0xf75,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x549,0xf76,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0x549,0xf7a,0xf7f,0xf87,0x3fc,0x3fc,0x3fc,
-0xf8f,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x549,0x549,0xf7b,0xf80,0xf88,0x3fc,0x3fc,0x3fc,
+0xf90,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x852,0x852,0x852,0x852,0x852,0x852,0x852,0xad7,0x852,0xf97,0x852,0xf9e,0xfa6,0xfac,0xfb0,0x3fc,
-0x852,0x852,0xfb8,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x852,0x852,0xfc0,0xfc8,0x3fc,0x3fc,0x3fc,0x3fc,
-0xfd8,0xfdf,0xfe4,0xfea,0xff2,0xffa,0x1002,0xfdc,0x100a,0x1012,0x101a,0x101f,0xff1,0xfd8,0xfdf,0xfdb,
-0xfea,0x1027,0xfd9,0x102a,0xfdc,0x1032,0x103a,0x1042,0x1049,0x1035,0x103d,0x1045,0x104c,0x1038,0x1054,0xfd0,
+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0xad8,0x852,0xf98,0x852,0xf9f,0xfa7,0xfad,0xfb1,0x3fc,
+0x852,0x852,0xfb9,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x852,0x852,0xfc1,0xfc9,0x3fc,0x3fc,0x3fc,0x3fc,
+0xfd9,0xfe0,0xfe5,0xfeb,0xff3,0xffb,0x1003,0xfdd,0x100b,0x1013,0x101b,0x1020,0xff2,0xfd9,0xfe0,0xfdc,
+0xfeb,0x1028,0xfda,0x102b,0xfdd,0x1033,0x103b,0x1043,0x104a,0x1036,0x103e,0x1046,0x104d,0x1039,0x1055,0xfd1,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x1064,0x106c,0x1074,0x107c,0x1084,0x108c,0x3fc,0x105c,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x852,0x1094,0x852,0x852,0xacf,0x1099,0x10a1,0x3fc,0x10a9,0x10ae,0x852,0x1094,0x10b2,0x3fc,0x3fc,0x10b9,
-0x10c1,0x10b2,0x10c7,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x852,0x10cf,0x852,0x10d5,0xacf,0x852,0x10dd,0x10e5,
-0x852,0xb1e,0x10ed,0x852,0x852,0x852,0x852,0x10ef,0x852,0xfb0,0xad3,0x10f7,0x3fc,0x3fc,0x3fc,0x10f9,
-0x852,0x852,0x1101,0x3fc,0x852,0x852,0x1109,0x3fc,0x852,0x852,0x852,0xacf,0x3fc,0x3fc,0x3fc,0x3fc,
-0x1111,0x549,0x549,0x1118,0x549,0x549,0x549,0x1120,0x549,0x1128,0x549,0x549,0x549,0x549,0x549,0x549,
+0x1065,0x106d,0x1075,0x107d,0x1085,0x108d,0x3fc,0x105d,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x852,0x1095,0x852,0x852,0xad0,0x109a,0x10a2,0x3fc,0x10aa,0x10af,0x852,0x1095,0x10b3,0x3fc,0x3fc,0x10ba,
+0x10c2,0x10b3,0x10c8,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x852,0x10d0,0x852,0x10d6,0xad0,0x852,0x10de,0x10e6,
+0x852,0xb1f,0x10ee,0x852,0x852,0x852,0x852,0x10f0,0x852,0xfb1,0xad4,0x10f8,0x3fc,0x3fc,0x3fc,0x10fa,
+0x852,0x852,0x1102,0x3fc,0x852,0x852,0x110a,0x3fc,0x852,0x852,0x852,0xad0,0x3fc,0x3fc,0x3fc,0x3fc,
+0x1112,0x549,0x549,0x1119,0x549,0x549,0x549,0x1121,0x549,0x1129,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0xbb9,0x549,0x549,0x1130,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1138,0x1140,
+0xbba,0x549,0x549,0x1131,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1139,0x1141,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbf8,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xbf9,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1147,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1148,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x114e,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x114f,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1155,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x1156,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xab0,0x3fc,
+0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xab1,0x3fc,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
 0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x7a7,0x549,0x549,0x549,0x549,0x549,0x549,
-0xe6d,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0xe6e,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x549,0x549,0x549,0x549,0x1159,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0xe6d,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x549,0x549,0x549,0x549,0x115a,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
+0xe6e,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0x1169,0x1161,0x1161,0x1161,0x3fc,0x3fc,0x3fc,0x3fc,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x1171,
+0x116a,0x1162,0x1162,0x1162,0x3fc,0x3fc,0x3fc,0x3fc,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x4a3,0x1172,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
 0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,
-0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0xd36,0x1179,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,
+0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0xd37,0x117a,
 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
 0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,
@@ -617,524 +617,524 @@
 0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0,4,4,4,4,
 4,4,4,4,4,4,4,4,4,0,0,0,0x19,0x19,0x19,0x19,
 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
-0x19,0x19,0x19,0x19,0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,
-6,6,6,6,6,7,7,7,7,6,7,7,7,6,6,6,
-6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,
-1,0x1b,1,1,1,1,0x1b,2,1,1,1,1,2,5,5,5,
-5,2,0x1b,0x1b,2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,
-2,2,0x1b,0x18,0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,
-0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,
-0x1b,0x1b,2,1,1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,
-0x18,1,1,1,1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,
-0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,
-0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,
-0x78ca,0x54b,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,
-0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,
-0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,
-0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
-0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,
-0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
-0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,
-0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
-0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,
-0x18,0x18,0x18,0x18,0x18,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,1,2,1,1,1,2,2,1,
-2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2,
-2,2,2,2,4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,0,0,0,0,
-0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2,
-0,0,0,0,0,2,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4,
-0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
-5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,
-5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
-0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17,
-0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x19,0x19,0x19,0x19,0x19,0x19,0x19,0,0,0x19,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,
+6,6,6,6,6,6,6,6,6,7,7,7,7,6,7,7,
+7,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
+1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2,1,1,1,1,
+2,5,5,5,5,2,0x1b,0x1b,2,2,1,1,0x18,0x18,0x18,0x18,
+0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,
+0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,
+0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2,1,1,1,2,
+0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,
+0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,
+0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,
+2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0,0,0,0,0,0,0x18,0x18,0x18,0x18,
+0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,
+0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,
+0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,
+0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb,
+0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,
+0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,
+0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,
+0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,
+0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,
+0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
+0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,1,
+1,2,2,1,2,1,2,1,2,1,1,1,1,2,1,2,
+2,1,2,2,2,2,2,2,4,4,1,1,1,2,1,2,
+2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,
+0,0,0,0,0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,
+2,2,0,2,0,0,0,0,0,2,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
+0,0,0,4,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,6,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,
+0,0,0,0,0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,
+0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,
+0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,
+0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,
 0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0,0,0,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6,
-6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4,
-5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15,
-0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,
-0x13,0x14,0x15,0x15,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,0x1a,
-0x1a,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x17,
-4,4,4,5,0,0,0,0,0,5,5,5,5,5,5,5,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,
+0x74a,0x78a,6,6,6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,
+0x7ca,0xa4a,0xcca,4,5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,
+0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,
+0x14,0x15,0x14,0x15,0x13,0x14,0x15,0x15,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+0,6,6,0x1a,0x1a,4,4,5,5,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb,
-0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
+5,5,5,0x17,4,4,4,5,0,0,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x58b,0x5cb,0x60b,0x64b,
+0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,
+0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,
+0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb,0x100b,0x104b,0x108b,0x10cb,
+0x110b,0x114b,0x118b,0x11cb,5,5,5,5,5,0x685,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x685,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x705,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0x585,5,5,0x705,5,5,5,0x7885,5,0x605,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x785,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,5,5,5,
+0x685,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0x7985,0x7c5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0x7845,5,5,5,5,5,5,5,5,0x605,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0x685,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x1e45,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x7985,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x7a85,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0x5c5,5,0x745,5,0x6c5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x7c5,5,0x7845,0xa45,0xcc5,5,5,
+5,5,5,5,0xf45,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x605,0x605,0x605,0x605,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0x645,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x585,5,5,
+5,5,5,5,5,0x585,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x585,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x785,0xa45,5,5,5,5,5,5,5,5,5,5,5,5,
+0x585,0x5c5,0x605,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x7c5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x745,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x705,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x1e45,5,5,5,5,5,5,5,0x645,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x7885,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,
+5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0x7845,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x6c5,5,5,5,5,5,0x1e45,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x545,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,
+5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,4,0x17,0x17,0x17,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+0,0,0,0,0,0,0,6,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,5,6,7,7,7,0x17,6,6,6,6,
+6,6,6,6,6,6,0x17,4,5,5,5,5,5,5,0x58a,0x5ca,
+0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17,0x17,0x17,0x17,0x17,
+0,0,0,0,0,0,0,0,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,
+4,4,4,4,4,4,4,4,0x1a,0x1a,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,4,2,2,2,
+2,2,2,2,2,1,2,1,2,1,1,2,1,2,1,2,
+1,2,1,2,4,0x1a,0x1a,1,2,1,2,0,1,2,1,2,
+0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,2,
+1,2,1,2,1,2,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,2,5,5,5,5,5,5,5,6,5,5,5,6,5,
+5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,8,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,
+0x19,0x1b,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17,
+0,0,0,0,0,0,0,0,8,8,8,8,6,0,0,0,
+0,0,0,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,8,8,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,8,8,8,8,8,8,8,8,
+8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,
+0,0,0,0,5,5,5,5,5,5,6,6,6,6,6,6,
+6,6,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,
+6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0x17,
+8,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,6,8,8,6,6,6,6,8,8,6,8,8,8,
+5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,8,
+8,6,6,8,8,6,6,0,0,0,0,0,0,0,0,0,
+5,5,5,6,5,5,5,5,5,5,5,5,6,8,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+4,5,5,5,5,5,5,0x1b,0x1b,0x1b,5,8,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+6,5,6,6,6,5,5,6,6,5,5,5,5,5,6,6,
+5,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,5,5,4,0x17,0x17,
+5,5,5,5,5,5,5,5,5,5,5,8,6,6,8,8,
+0x17,0x17,5,4,4,8,6,0,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0,
+0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,8,8,6,8,8,6,8,8,0x17,8,6,0,0,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,
+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,
+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5,
+5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,0x7c5,
+5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,0x18,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,0,5,0,5,5,0,5,
+5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,
+2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
+2,2,2,2,0,0,0,0,0,5,6,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x14,0x15,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+5,5,5,5,0x19,0x1b,0,0,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,
+0x15,0x17,0,0,0,0,0,0,6,6,6,6,6,6,6,0,
+0,0,0,0,0,0,0,0,0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,
+0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,
+0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,
+0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,
+0,0,0,0,5,5,5,5,5,0,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0x10,0,0,5,5,
+5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,
+5,5,5,5,0,0,5,5,5,0,0,0,0x19,0x19,0x18,0x1a,
+0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,0,0,0,0,
+0,0,0,0,0,0x10,0x10,0x10,0x1b,0x1b,0,0,0,0x17,0x17,0x17,
+0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,0x1a,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,
+0x17,0x17,5,5,5,5,5,5,5,5,5,5,4,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,0xb00b,0xb80b,0x784b,0x804b,
+0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,
+0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,
+0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,
+0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,
+0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a,0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,
+0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x54b,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,
+0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,
+0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,
-0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,
-0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,
+0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0x1bca,5,5,5,5,5,5,
+5,5,0xb80a,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0x17,5,5,5,5,0,0,0,0,
+5,5,5,5,5,5,5,5,0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,
+0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,
+5,0,0,0,5,0,0,5,5,5,5,5,5,5,0,0,
+5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,
+0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,
+0,0,0,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,0,0,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
+0,0,5,5,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,0,0,0,0,
+0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,
+0,0,0,0,5,6,6,6,0,6,6,0,0,0,0,0,
+6,6,6,6,5,5,5,5,0,5,5,5,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0,0,0,0,6,6,6,0,0,0,0,6,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x11cb,0x17,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,
+5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,
+0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,
+0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,6,8,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,
+0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+8,8,8,6,6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17,
+0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,6,
+6,6,6,6,8,6,6,6,6,6,6,6,6,0,0x49,0x89,
+0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,6,6,6,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,8,5,5,5,5,0x17,0x17,0x17,
+0x17,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
+0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,6,
+6,6,6,6,6,6,6,8,5,5,5,5,5,5,5,5,
+5,5,5,6,8,6,8,8,6,6,6,6,6,6,8,6,
+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x34ca,0x354a,0x34ca,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,0,
+0,0,0,0,0,0,0,0,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,
+0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,
+0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,
+0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,
+0x64a,0x68a,0x60a,0x60a,0x64a,0x64a,0x64a,0x64a,0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,
+0x78a,0x78a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x58a,0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,
+0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0,0,0,0,0,0,0,0,0,5,8,8,8,
+8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
+6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,
+5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb,0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,
+0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b,
+0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,
+6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0,0,0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
+0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,
+0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,
+0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,2,2,2,2,2,2,2,0,2,2,2,2,2,2,
+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,1,0,1,1,0,0,1,0,
+0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,
+1,1,2,2,2,2,0,2,0,2,2,2,2,2,2,2,
+0,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,
+1,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,1,0,1,1,1,1,0,1,1,1,1,
+1,0,1,0,0,0,1,1,1,1,1,1,1,0,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+2,2,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x18,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0x18,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,
+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,2,0x18,2,2,2,2,2,2,1,2,
+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,
+0x149,0x189,0x1c9,0x209,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x18,0x18,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,5,5,5,5,0,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0,5,5,0,5,0,0,5,0,5,5,5,
+5,5,5,5,5,5,5,0,5,5,5,5,0,5,0,5,
+0,0,0,0,0,0,5,0,0,0,0,5,0,5,0,5,
+0,5,5,5,0,5,5,0,5,0,0,5,0,5,0,5,
+0,5,0,5,0,5,5,0,5,0,0,5,5,5,5,0,
+5,5,5,5,5,5,5,0,5,5,5,5,0,5,5,5,
+5,0,5,0,5,5,5,5,5,5,5,5,5,5,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0,5,5,5,0,5,5,5,5,5,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,
+0x48b,0x4cb,0x50b,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,
+0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,
+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,0x705,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
 5,5,5,5,5,0x685,5,5,5,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x705,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0x585,5,5,0x705,
-5,5,5,0x7885,5,0x605,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x5c5,5,5,5,5,5,5,5,0x685,5,0x645,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7985,
-0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7845,
-5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x1e45,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x7985,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x7a85,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,0x745,
-5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x7c5,5,0x7845,0xa45,0xcc5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0xcc5,5,5,5,5,5,5,5,5,
 0xf45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x605,0x605,0x605,0x605,5,5,5,5,5,5,5,
+0xf45,5,5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x585,5,5,5,5,5,5,
-5,0x585,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x585,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,0xa45,
-5,5,5,5,5,5,5,5,5,5,5,5,0x585,0x5c5,0x605,5,
-0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0x745,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0x705,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x785,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x1e45,5,5,5,5,5,5,5,0x645,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x7885,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,0x5c5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x7845,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x6c5,5,5,5,5,5,0x1e45,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x545,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-4,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,0,0,0,0,
-0,0,0,6,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,5,6,7,7,7,0x17,6,6,6,6,6,6,6,6,
-6,6,0x17,4,5,5,5,5,5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,
-0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,
-0,0,0,0,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,
-4,4,4,4,0x1a,0x1a,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,4,2,2,2,2,2,2,2,
-2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,
-4,0x1a,0x1a,1,2,1,2,0,1,2,1,2,0,0,0,0,
-0,0,0,0,0,0,0,0,1,2,1,2,1,2,1,2,
-1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,2,5,
-5,5,5,5,5,5,6,5,5,5,6,5,5,5,5,6,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b,
-0,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17,0,0,0,0,
-0,0,0,0,8,8,8,8,6,0,0,0,0,0,0,0,
-0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
-0,0,0,0,8,8,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,8,8,8,8,8,8,8,8,8,8,8,8,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,0,0,0,0,
-5,5,5,5,5,5,6,6,6,6,6,6,6,6,0x17,0x17,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,6,6,6,6,6,6,6,6,8,8,
-0,0,0,0,0,0,0,0,0,0,0,0x17,8,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
-8,8,6,6,6,6,8,8,6,8,8,8,5,5,5,5,
-5,5,5,5,5,6,6,6,6,6,6,8,8,6,6,8,
-8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,6,
-5,5,5,5,5,5,5,5,6,8,0,0,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,
-5,5,5,0x1b,0x1b,0x1b,5,8,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,6,5,6,6,
-6,5,5,6,6,5,5,5,5,5,6,6,5,6,5,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,5,5,4,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,8,6,6,8,8,0x17,0x17,5,4,
-4,8,6,0,0,0,0,0,0,0,0,0,0,5,5,5,
-5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,5,
-5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,0,5,5,5,5,5,5,5,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,8,
-8,6,8,8,6,8,8,0x17,8,6,0,0,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5,5,5,5,5,
-5,5,5,0x605,5,5,5,5,5,5,5,0x7c5,5,5,5,5,
-0x5c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x7c5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,0x18,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-5,5,5,5,5,0,5,0,5,5,0,5,5,0,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,2,2,2,2,2,2,2,0,
-0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
-0,0,0,0,0,5,6,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x14,0x15,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-0x19,0x1b,0,0,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0,
-0,0,0,0,6,6,6,6,6,6,6,0,0,0,0,0,
-0,0,0,0,0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
-0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,
-0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,
-0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0,
-5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,0,0x10,0,0,5,5,5,5,5,5,
-0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,
-0,0,5,5,5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,
-0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
-0,0x10,0x10,0x10,0x1b,0x1b,0,0,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,
-0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,0x1a,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,0x14,0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5,
-5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
-5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,
-0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,0,0,0,0x58b,
-0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,
-0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,
-0x11ca,0x11ca,0x1e4a,0x880a,0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,
-0x3ccb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0,0,0,0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,
-0x980a,0x784a,0x984a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,
-0x5ca,0x5ca,0x5ca,0x68a,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,6,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x1bca,5,5,5,5,5,5,5,5,0xb80a,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0x17,5,5,5,5,0,0,0,0,5,5,5,5,
-5,5,5,5,0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,0,0,0,0,
-0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,5,5,0,0,0,
-5,0,0,5,5,5,5,5,5,5,0,0,5,0,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0x17,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0,0,0,0,0,0,5,5,
-0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,0,0,0,0,0,0,0,0,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,
-5,6,6,6,0,6,6,0,0,0,0,0,6,6,6,6,
-5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0,0,0,0,6,6,6,0,0,0,0,6,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x58b,0x11cb,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
-0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,
-0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,
-0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,0x144b,0x16cb,0x194b,0x1bcb,
-0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,8,6,8,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,
-6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0x30b,0x34b,
-0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,
-6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
-0,0,0,0,5,5,5,5,5,5,5,6,6,6,6,6,
-8,6,6,6,6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189,
-0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,8,5,5,5,5,0x17,0x17,0x17,0x17,0,0,0,
-0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6,
-6,6,6,8,5,5,5,5,5,5,5,5,5,5,5,6,
-8,6,8,8,6,6,6,6,6,6,8,6,0,0,0,0,
-0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x34ca,0x354a,0x34ca,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,
-0,0,0,0,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x60a,0x64a,0x68a,0x6ca,
-0x70a,0x74a,0x78a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,
-0x74a,0x78a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,
-0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0xc08a,0xc18a,0x58a,0x5ca,0x60a,0x60a,0x64a,0x68a,0x60a,0x60a,
-0x64a,0x64a,0x64a,0x64a,0x6ca,0x70a,0x70a,0x70a,0x74a,0x74a,0x78a,0x78a,0x78a,0x78a,0x5ca,0x60a,
-0x64a,0x68a,0x6ca,0x58a,0x5ca,0x60a,0x64a,0x64a,0x68a,0x68a,0x5ca,0x60a,0x58a,0x5ca,0x348a,0x388a,
-0x454a,0x348a,0x388a,0x35ca,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,5,8,8,8,8,8,8,8,
-8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,4,
-4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,
-6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,
-6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
-0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
-0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,
-0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,
-0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
-2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,1,0,1,1,0,0,1,0,0,1,1,0,
-0,1,1,1,1,0,1,1,1,1,1,1,1,1,2,2,
-2,2,0,2,0,2,2,2,2,2,2,2,0,2,2,2,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,2,2,2,2,1,1,0,1,
-1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,
-1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,
-0,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0x18,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,0x18,2,2,2,2,2,2,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x18,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-2,2,2,0x18,2,2,2,2,2,2,1,2,0,0,0x49,0x89,
-0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0,5,5,0,5,0,0,5,0,5,5,5,5,5,5,5,
-5,5,5,0,5,5,5,5,0,5,0,5,0,0,0,0,
-0,0,5,0,0,0,0,5,0,5,0,5,0,5,5,5,
-0,5,5,0,5,0,0,5,0,5,0,5,0,5,0,5,
-0,5,5,0,5,0,0,5,5,5,5,0,5,5,5,5,
-5,5,5,0,5,5,5,5,0,5,5,5,5,0,5,0,
-5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0,5,5,5,0,5,5,5,5,5,0,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,5,0x705,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0xcc5,5,5,5,5,5,5,5,5,0xf45,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,0xf45,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5,
+5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x785,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0,0x10,0,0,0,0,0,0,0,0,0,0,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0,0x10,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0,0,0,0,0,0
+0x11,0x11,0x11,0x11,0x11,0x11,0,0,0,0,0,0
 };
 
 static const UTrie2 propsTrie={
@@ -1142,147 +1142,147 @@
     propsTrie_index+3952,
     NULL,
     3952,
-    13976,
+    13980,
     0xa40,
     0xff0,
     0x0,
     0x0,
     0x110000,
-    0x4604,
+    0x4608,
     NULL, 0, FALSE, FALSE, 0, NULL
 };
 
-static const uint16_t propsVectorsTrie_index[23412]={
+static const uint16_t propsVectorsTrie_index[23416]={
 0x408,0x410,0x418,0x420,0x438,0x440,0x448,0x450,0x458,0x460,0x468,0x470,0x478,0x480,0x488,0x490,
 0x497,0x49f,0x4a7,0x4af,0x4b2,0x4ba,0x4c2,0x4ca,0x4d2,0x4da,0x4e2,0x4ea,0x4f2,0x4fa,0x502,0x50a,
 0x512,0x51a,0x521,0x529,0x531,0x539,0x541,0x549,0x551,0x559,0x55e,0x566,0x56d,0x575,0x57d,0x585,
 0x58d,0x595,0x59d,0x5a5,0x5ac,0x5b4,0x5bc,0x5c4,0x5cc,0x5d4,0x5dc,0x5e4,0x5ec,0x5f4,0x5fc,0x604,
-0x15ad,0xc5f,0xd47,0x428,0x428,0xdfb,0xdff,0xe06,0xeee,0xefe,0xef6,0x674,0x67c,0x682,0x68a,0x692,
+0x15ae,0xc60,0xd48,0x428,0x428,0xdfc,0xe00,0xe07,0xeef,0xeff,0xef7,0x674,0x67c,0x682,0x68a,0x692,
 0x69a,0x6a0,0x6a8,0x6b0,0x6b8,0x6be,0x6c6,0x6ce,0x6d6,0x6dc,0x6e4,0x6ec,0x6f4,0x6fc,0x704,0x70b,
 0x713,0x719,0x721,0x729,0x731,0x737,0x73f,0x747,0x74f,0x755,0x75d,0x765,0x76d,0x774,0x77c,0x784,
-0x78c,0x790,0x798,0x79f,0x7a7,0x7af,0x7b7,0x7bf,0x11f0,0x11f8,0x7c7,0x7cf,0x7d7,0x7df,0x7e7,0x7ee,
-0x1256,0x1246,0x124e,0x150a,0x1512,0xf0e,0x7f6,0xf06,0x113d,0x113d,0x113f,0xf22,0xf23,0xf16,0xf18,0xf1a,
-0x125e,0x1260,0x7fe,0x1260,0x806,0x80b,0x813,0x1265,0x819,0x1260,0x81f,0x827,0xb28,0x126d,0x126d,0x82f,
-0x127d,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,
-0x127e,0x127e,0x127e,0x1275,0x837,0x1286,0x1286,0x83f,0xa4f,0xa57,0xa5f,0xa67,0x1296,0x128e,0x847,0x84f,
-0x857,0x129e,0x12a6,0x85f,0x129e,0x867,0x15b5,0xc67,0xa6f,0xa77,0xa7f,0xa84,0x1485,0xb5b,0xb63,0x13ed,
-0xaf8,0x15bd,0xc6f,0xc77,0xc7f,0x60c,0x428,0x428,0x14d5,0x14da,0xb9a,0xba2,0x152e,0x1536,0x164e,0xd4f,
-0x153e,0xbeb,0xbf3,0x1546,0x428,0x428,0xe8e,0xc87,0x140d,0x13f5,0x1405,0x13fd,0x149d,0x1495,0x145d,0xb08,
-0xf2b,0xf2b,0xf2b,0xf2b,0xf2e,0xf2b,0xf2b,0xf36,0x86f,0xf3e,0x873,0x87b,0xf3e,0x883,0x88b,0x893,
-0xf4e,0xf46,0xf56,0x89b,0x8a3,0x8ab,0x8b2,0x8ba,0xf5e,0xf66,0xf6e,0xf76,0x8c2,0xf7e,0xf85,0xf8d,
-0xf95,0xf9d,0xfa5,0xfad,0xfb5,0xfbc,0xfc4,0xfcc,0xfd4,0xfdc,0xfdf,0xfe1,0x12ae,0x1383,0x1389,0x8ca,
-0xfe9,0x8d2,0x8da,0x10f2,0x10f7,0x10fa,0x1100,0xff1,0x1108,0x1108,0x1001,0xff9,0x1009,0x1011,0x1019,0x1021,
-0x1029,0x1031,0x1039,0x1041,0x1391,0x13e5,0x151a,0x1636,0x8e2,0x104f,0x1057,0x105f,0x1049,0x1067,0x1399,0x13a0,
-0x12b6,0x12b6,0x12b6,0x12b6,0x12b6,0x12b6,0x12b6,0x12b6,0x13a8,0x13a8,0x13a8,0x13a8,0x13b0,0x13b7,0x13b9,0x13c0,
-0x13c8,0x13cc,0x13cc,0x13cf,0x13cc,0x13cc,0x13d5,0x13cc,0x1415,0x14cd,0xa8c,0xa93,0xa93,0xa93,0xa93,0xa93,
-0x1475,0xb38,0xb3c,0x14e2,0x1465,0x1465,0x1465,0xb10,0x146d,0xb30,0x14b5,0xb8a,0xb18,0xb20,0xb20,0x154e,
-0x14a5,0xb73,0xb7a,0xb7a,0x8ea,0x12be,0x12be,0x8f2,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x8fa,0x610,
-0x1125,0x1147,0x902,0x114f,0x90a,0x1157,0x115f,0x1167,0x912,0x917,0x116f,0x1176,0x91c,0x924,0x14c5,0xb00,
-0x92c,0x11cd,0x11d4,0x117e,0x11dc,0x11e0,0x1186,0x934,0x119f,0x119f,0x11a1,0x118e,0x1196,0x1196,0x1197,0x11e8,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,
-0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0x12ce,0xea7,0x141d,0x141d,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11b0,0xeaf,0xeb3,
-0x12d6,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,
-0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,0x12dc,
-0x12dc,0x12dc,0x12dc,0x12dc,0x93c,0x12e4,0x944,0x15c5,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,0x155a,
-0x1556,0xbfb,0x156a,0x1562,0xc03,0x15cd,0x15cd,0xc8f,0x147d,0x14ea,0x1522,0x1526,0xbaa,0xbb2,0xbb5,0xbb7,
-0x14ad,0xb82,0x14f2,0xbbf,0x1572,0x1575,0xc0b,0xc97,0x1585,0x157d,0xc13,0xc9f,0x15d5,0x15d9,0xca7,0x428,
-0x158d,0xc1b,0xc23,0xcaf,0x15e9,0x15e1,0xcb7,0xe51,0xd57,0x618,0x428,0x428,0x428,0x428,0x15f1,0xcbf,
-0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,
-0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,
-0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,
-0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,
-0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,
-0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,
-0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
-0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,
-0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,
-0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,
-0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,
-0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,
-0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,
-0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
-0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,
-0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,
-0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,
-0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,
-0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,
-0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,
-0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
-0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x1238,0x1239,0x123a,0x123b,0x123c,0x123d,0x94c,0xcc7,0xcca,
+0x78c,0x790,0x798,0x79f,0x7a7,0x7af,0x7b7,0x7bf,0x11f1,0x11f9,0x7c7,0x7cf,0x7d7,0x7df,0x7e7,0x7ee,
+0x1257,0x1247,0x124f,0x150b,0x1513,0xf0f,0x7f6,0xf07,0x113e,0x113e,0x1140,0xf23,0xf24,0xf17,0xf19,0xf1b,
+0x125f,0x1261,0x7fe,0x1261,0x806,0x80b,0x813,0x1266,0x819,0x1261,0x81f,0x827,0xb29,0x126e,0x126e,0x82f,
+0x127e,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,0x127f,
+0x127f,0x127f,0x127f,0x1276,0x837,0x1287,0x1287,0x83f,0xa50,0xa58,0xa60,0xa68,0x1297,0x128f,0x847,0x84f,
+0x857,0x129f,0x12a7,0x85f,0x129f,0x867,0x15b6,0xc68,0xa70,0xa78,0xa80,0xa85,0x1486,0xb5c,0xb64,0x13ee,
+0xaf9,0x15be,0xc70,0xc78,0xc80,0x60c,0x428,0x428,0x14d6,0x14db,0xb9b,0xba3,0x152f,0x1537,0x164f,0xd50,
+0x153f,0xbec,0xbf4,0x1547,0x428,0x428,0xe8f,0xc88,0x140e,0x13f6,0x1406,0x13fe,0x149e,0x1496,0x145e,0xb09,
+0xf2c,0xf2c,0xf2c,0xf2c,0xf2f,0xf2c,0xf2c,0xf37,0x86f,0xf3f,0x873,0x87b,0xf3f,0x883,0x88b,0x893,
+0xf4f,0xf47,0xf57,0x89b,0x8a3,0x8ab,0x8b3,0x8bb,0xf5f,0xf67,0xf6f,0xf77,0x8c3,0xf7f,0xf86,0xf8e,
+0xf96,0xf9e,0xfa6,0xfae,0xfb6,0xfbd,0xfc5,0xfcd,0xfd5,0xfdd,0xfe0,0xfe2,0x12af,0x1384,0x138a,0x8cb,
+0xfea,0x8d3,0x8db,0x10f3,0x10f8,0x10fb,0x1101,0xff2,0x1109,0x1109,0x1002,0xffa,0x100a,0x1012,0x101a,0x1022,
+0x102a,0x1032,0x103a,0x1042,0x1392,0x13e6,0x151b,0x1637,0x8e3,0x1050,0x1058,0x1060,0x104a,0x1068,0x139a,0x13a1,
+0x12b7,0x12b7,0x12b7,0x12b7,0x12b7,0x12b7,0x12b7,0x12b7,0x13a9,0x13a9,0x13a9,0x13a9,0x13b1,0x13b8,0x13ba,0x13c1,
+0x13c9,0x13cd,0x13cd,0x13d0,0x13cd,0x13cd,0x13d6,0x13cd,0x1416,0x14ce,0xa8d,0xa94,0xa94,0xa94,0xa94,0xa94,
+0x1476,0xb39,0xb3d,0x14e3,0x1466,0x1466,0x1466,0xb11,0x146e,0xb31,0x14b6,0xb8b,0xb19,0xb21,0xb21,0x154f,
+0x14a6,0xb74,0xb7b,0xb7b,0x8eb,0x12bf,0x12bf,0x8f3,0x12c7,0x12c7,0x12c7,0x12c7,0x12c7,0x12c7,0x8fb,0x610,
+0x1126,0x1148,0x903,0x1150,0x90b,0x1158,0x1160,0x1168,0x913,0x918,0x1170,0x1177,0x91d,0x925,0x14c6,0xb01,
+0x92d,0x11ce,0x11d5,0x117f,0x11dd,0x11e1,0x1187,0x935,0x11a0,0x11a0,0x11a2,0x118f,0x1197,0x1197,0x1198,0x11e9,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0xea8,0x141e,0x141e,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,
+0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11aa,0x11b1,0xeb0,0xeb4,
+0x12d7,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,
+0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,0x12dd,
+0x12dd,0x12dd,0x12dd,0x12dd,0x93d,0x12e5,0x945,0x15c6,0x155b,0x155b,0x155b,0x155b,0x155b,0x155b,0x155b,0x155b,
+0x1557,0xbfc,0x156b,0x1563,0xc04,0x15ce,0x15ce,0xc90,0x147e,0x14eb,0x1523,0x1527,0xbab,0xbb3,0xbb6,0xbb8,
+0x14ae,0xb83,0x14f3,0xbc0,0x1573,0x1576,0xc0c,0xc98,0x1586,0x157e,0xc14,0xca0,0x15d6,0x15da,0xca8,0x428,
+0x158e,0xc1c,0xc24,0xcb0,0x15ea,0x15e2,0xcb8,0xe52,0xd58,0x618,0x428,0x428,0x428,0x428,0x15f2,0xcc0,
+0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,
+0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,
+0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
+0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,
+0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,
+0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,
+0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,
+0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,
+0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,
+0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
+0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,
+0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,
+0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,
+0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,
+0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,
+0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,
+0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,
+0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,
+0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,
+0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,
+0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,
+0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x123f,0x1239,0x123a,0x123b,0x123c,0x123d,0x123e,0x94d,0xcc8,0xccb,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,
-0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,0x1210,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,
-0x11bd,0x11c5,0x13dd,0xebb,0x14bd,0x14bd,0xebf,0xec6,0x954,0x95c,0x964,0x1087,0x108e,0x1096,0x96c,0x109e,
-0x10cf,0x10cf,0x1077,0x107f,0x10a6,0x10c6,0x10c7,0x10d7,0x10ae,0x106f,0x974,0x10b6,0x97c,0x10be,0x984,0x988,
-0xb92,0x990,0x998,0x9a0,0x10df,0x10e5,0x10ea,0x9a8,0x9b8,0x112d,0x1135,0x1118,0x111d,0x9c0,0x9c8,0x9b0,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1208,0x1208,0x1208,0x1208,
+0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,
+0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,0x1211,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,
+0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x1111,0x11b9,0x11b9,0x11b9,0x11b9,0x11b9,0x11b9,0x11b9,0x11b9,
+0x11be,0x11c6,0x13de,0xebc,0x14be,0x14be,0xec0,0xec7,0x955,0x95d,0x965,0x1088,0x108f,0x1097,0x96d,0x109f,
+0x10d0,0x10d0,0x1078,0x1080,0x10a7,0x10c7,0x10c8,0x10d8,0x10af,0x1070,0x975,0x10b7,0x97d,0x10bf,0x985,0x989,
+0xb93,0x991,0x999,0x9a1,0x10e0,0x10e6,0x10eb,0x9a9,0x9b9,0x112e,0x1136,0x1119,0x111e,0x9c1,0x9c9,0x9b1,
+0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,
+0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1201,0x1209,0x1209,0x1209,0x1209,
 0x10a0,0x10a0,0x10e0,0x1120,0x1160,0x11a0,0x11e0,0x1220,0x125c,0x129c,0x12c8,0x1308,0x1348,0x1388,0x13c8,0x1408,
 0x1448,0x1484,0x14c4,0x1504,0x1544,0x1578,0x15b4,0x15f4,0x1634,0x1674,0x16b0,0x16f0,0x1730,0x1770,0x17b0,0x17f0,
 0xa80,0xac0,0xb00,0xa40,0xc8c,0xa40,0xb40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xccc,0xa40,0xa40,
@@ -1321,96 +1321,96 @@
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0xa9b,0xaa2,0xaaa,0xab2,0x1425,0x1425,0x1425,0xaba,0xac2,0xac5,0x1455,0x144d,0xaf0,0xc2b,0xc2f,0xc33,
-0x428,0x428,0x428,0x428,0xc3b,0x1595,0xc43,0x428,0x9d0,0x9d8,0x620,0x428,0xacd,0x148d,0xb6b,0x428,
-0x12f9,0x12ec,0x12f1,0x142d,0xad5,0x628,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0xa9c,0xaa3,0xaab,0xab3,0x1426,0x1426,0x1426,0xabb,0xac3,0xac6,0x1456,0x144e,0xaf1,0xc2c,0xc30,0xc34,
+0x428,0x428,0x428,0x428,0xc3c,0x1596,0xc44,0x428,0x9d1,0x9d9,0x620,0x428,0xace,0x148e,0xb6c,0x428,
+0x12fa,0x12ed,0x12f2,0x142e,0xad6,0x628,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0xadd,0xae0,0xcd2,0x428,0x428,0x428,0x428,0x428,0xbc7,0xc4b,0x428,0x428,0x16b8,0xe59,0xe61,0xe61,
-0xb44,0xb4b,0xb53,0x15f9,0x428,0x428,0x428,0x428,0x1601,0xcda,0xce2,0xcea,0x428,0x428,0x428,0x428,
-0x1609,0x1609,0x630,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0xcf2,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x1656,0x1658,0xd5f,0xd66,0x1619,0x1611,0xcfa,0xe86,0x16b0,0xe49,0x638,0x428,0x16c8,0x16cc,0xe7e,0x428,
+0xade,0xae1,0xcd3,0x428,0x428,0x428,0x428,0x428,0xbc8,0xc4c,0x428,0x428,0x16b9,0xe5a,0xe62,0xe62,
+0xb45,0xb4c,0xb54,0x15fa,0x428,0x428,0x428,0x428,0x1602,0xcdb,0xce3,0xceb,0x428,0x428,0x428,0x428,
+0x160a,0x160a,0x630,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0x428,0x428,0x428,0xcf3,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0x1657,0x1659,0xd60,0xd67,0x161a,0x1612,0xcfb,0xe87,0x16b1,0xe4a,0x638,0x428,0x16c9,0x16cd,0xe7f,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0x428,0x16d4,0xe96,0x640,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,
-0x1621,0x1621,0x1623,0x1621,0x162b,0x1621,0x1621,0x1621,0x1621,0x1621,0x1621,0x162e,0x1621,0x1621,0x1621,0x1621,
-0x1621,0x648,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0x428,0x428,0x428,0x428,0x16d5,0xe97,0x640,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,
+0x1622,0x1622,0x1624,0x1622,0x162c,0x1622,0x1622,0x1622,0x1622,0x1622,0x1622,0x162f,0x1622,0x1622,0x1622,0x1622,
+0x1622,0x648,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x1301,0x1301,0x1301,0x1301,0x1301,0x1301,0x1301,0x9e0,0x1311,0x9e8,0x1312,0x1309,0x131a,0x1320,0x9f0,0x9f8,
-0x1445,0x1445,0x650,0x428,0x428,0x428,0x428,0x428,0x1435,0x1435,0xae8,0xbe3,0x428,0x428,0x428,0x428,
-0x1351,0x1358,0xa00,0x135b,0xa08,0xa10,0xa18,0x1355,0xa20,0xa28,0xa30,0x135a,0x1362,0x1351,0x1358,0x1354,
-0x135b,0x1363,0x1352,0x1359,0x1355,0xa37,0x1328,0x1330,0x1337,0x133e,0x132b,0x1333,0x133a,0x1341,0xa3f,0x1349,
-0x159d,0xc53,0x15a5,0x15a5,0xc57,0xd7f,0xd87,0xd8f,0xd02,0xd08,0x163e,0xd10,0xd18,0xd1f,0xd1f,0xd26,
-0xd2e,0xd32,0xd3a,0xd3f,0xd3f,0xd3f,0xd3f,0xd3f,0x1680,0xd97,0x1680,0xd9d,0xda5,0x1668,0xdad,0xdb5,
-0x1680,0xdbd,0xdc5,0x1680,0x1680,0x1670,0x1680,0xdc7,0x1678,0xdcf,0xdd7,0xddd,0xddf,0xddf,0xddf,0xde1,
-0x1688,0x1690,0x658,0x428,0x1698,0x1698,0xde9,0xdeb,0x16a0,0x16a0,0x16a0,0xdf3,0x428,0x428,0x428,0x428,
+0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x9e1,0x1312,0x9e9,0x1313,0x130a,0x131b,0x1321,0x9f1,0x9f9,
+0x1446,0x1446,0x650,0x428,0x428,0x428,0x428,0x428,0x1436,0x1436,0xae9,0xbe4,0x428,0x428,0x428,0x428,
+0x1352,0x1359,0xa01,0x135c,0xa09,0xa11,0xa19,0x1356,0xa21,0xa29,0xa31,0x135b,0x1363,0x1352,0x1359,0x1355,
+0x135c,0x1364,0x1353,0x135a,0x1356,0xa38,0x1329,0x1331,0x1338,0x133f,0x132c,0x1334,0x133b,0x1342,0xa40,0x134a,
+0x159e,0xc54,0x15a6,0x15a6,0xc58,0xd80,0xd88,0xd90,0xd03,0xd09,0x163f,0xd11,0xd19,0xd20,0xd20,0xd27,
+0xd2f,0xd33,0xd3b,0xd40,0xd40,0xd40,0xd40,0xd40,0x1681,0xd98,0x1681,0xd9e,0xda6,0x1669,0xdae,0xdb6,
+0x1681,0xdbe,0xdc6,0x1681,0x1681,0x1671,0x1681,0xdc8,0x1679,0xdd0,0xdd8,0xdde,0xde0,0xde0,0xde0,0xde2,
+0x1689,0x1691,0x658,0x428,0x1699,0x1699,0xdea,0xdec,0x16a1,0x16a1,0x16a1,0xdf4,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x65c,0xa47,0x136b,0x136b,0x136b,
-0x664,0x664,0x664,0x664,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x66c,0x664,0x664,0x664,0x664,
+0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x65c,0xa48,0x136c,0x136c,0x136c,
+0x664,0x664,0x664,0x664,0x143e,0x143e,0x143e,0x143e,0x143e,0x143e,0x143e,0x66c,0x664,0x664,0x664,0x664,
 0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,
 0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,
 0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,
-0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x14fa,0x14fa,0x14fa,0x14fa,
-0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,
-0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0x14fa,0xbcf,0xbd3,0xbd3,0xbd3,0xbd3,0x1502,0x1502,0x1502,0xbdb,
+0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x664,0x14fb,0x14fb,0x14fb,0x14fb,
+0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,
+0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0x14fb,0xbd0,0xbd4,0xbd4,0xbd4,0xbd4,0x1503,0x1503,0x1503,0xbdc,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x1660,0x1660,0x1660,0x1660,
-0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0x1660,0xd6e,0x428,0x428,
+0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x1661,0x1661,0x1661,0x1661,
+0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0x1661,0xd6f,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0x428,0x16c0,0x16c0,0xe69,0xe6e,0xe76,0x428,0x428,0x428,0xd76,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0xd77,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
+0x428,0x428,0x428,0x428,0x16c1,0x16c1,0xe6a,0xe6f,0xe77,0x428,0x428,0x428,0xd77,0xd78,0xd78,0xd78,
+0xd78,0xd78,0xd78,0xd78,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
 0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,
-0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0xe0e,0xe16,0xe1e,0xe26,
-0xe2e,0xe36,0xe3d,0xe41,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0xece,0xe9e,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0xee6,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0x137b,0x137b,0x137b,
-0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0x137b,0xed6,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9f,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,
-0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9e,0xe9f,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0xede,0x16a8,0x16a8,0x16a8,0x16a8,0x16a8,0x16a8,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1218,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1220,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,
-0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1228,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,
-0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1373,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,
-0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x1646,0x407,0x407,0x407,
+0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0xe0f,0xe17,0xe1f,0xe27,
+0xe2f,0xe37,0xe3e,0xe42,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x428,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0xecf,0xe9f,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0xee7,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0x137c,0x137c,0x137c,
+0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0x137c,0xed7,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xea0,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,
+0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xe9f,0xea0,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0xedf,0x16a9,0x16a9,0x16a9,0x16a9,0x16a9,0x16a9,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1219,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1221,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,
+0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1229,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,
+0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1231,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,
+0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x407,0x407,0x407,
 0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f8,0x201,0x1fb,0x1fb,0x1fe,0x1f5,0x1f5,
 0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,
 0x6fc,0x6f6,0x6db,0x6c0,0x6cc,0x6c9,0x6c0,0x6d8,0x6c6,0x6d2,0x6c0,0x6ed,0x6e4,0x6d5,0x6f9,0x6cf,
@@ -1709,914 +1709,914 @@
 0x5f7,0x45f,0x45f,0x45f,0x45f,0x45f,0x465,0x477,0x465,0x471,0x46b,0x5a,0xca5,0xca5,0xca5,0xca5,
 0xca5,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x5a,0x5a,0x5a,0x480,0x480,0x480,0x480,
 0x480,0x480,0x480,0x47d,0x483,0x660,0x480,0x89a,0x8bb,0x9cf,0x9cf,0x9cf,0xaad,0xaad,0xca8,0xca8,
-0xca8,0xca8,0x1014,0x1017,0x1017,0x11bb,0x1329,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
-0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x489,0x9d2,0x9d2,0xab0,0xab6,0xab6,0xab3,
-0xab3,0xab3,0xab3,0xcab,0xdb6,0xdb6,0xdb6,0xdb6,0xeb5,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
-0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x4b9,0x4b9,0x4b9,0x9db,0xdbf,0xebb,0xebb,0xebb,
-0xebb,0x114c,0x63,0x63,0x63,0x63,0x63,0x63,0x624,0x624,0x624,0x624,0x624,0x624,0x624,0x624,
-0x624,0x624,0x4c5,0x4c5,0x4c2,0x4c2,0x4c2,0x4c2,0xdc5,0xdc5,0xdc5,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,
-0x101d,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11c1,0x11c1,0x11c1,0x11c1,0x66,0x66,0x66,0x66,
-0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x9e4,0x9e4,0x69,
-0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
-0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,
-0x4e6,0x4e6,0x4e6,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
-0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6f,0x50d,0x50d,0x50d,0x50d,0x11c7,0x507,0x507,
-0x50d,0x50d,0x11ca,0x11ca,0x50d,0x50d,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
+0xca8,0xca8,0x1014,0x1017,0x1017,0x11bb,0x1329,0x5d,0x5d,0x1332,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
+0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x489,0x489,0x489,0x489,
+0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x486,0x486,0x486,0x486,0x489,0x9d2,0x9d2,
+0xab0,0xab6,0xab6,0xab3,0xab3,0xab3,0xab3,0xcab,0xdb6,0xdb6,0xdb6,0xdb6,0xeb5,0x60,0x60,0x60,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x4b9,0x4b9,0x4b9,0x9db,
+0xdbf,0xebb,0xebb,0xebb,0xebb,0x114c,0x63,0x63,0x63,0x63,0x63,0x63,0x624,0x624,0x624,0x624,
+0x624,0x624,0x624,0x624,0x624,0x624,0x4c5,0x4c5,0x4c2,0x4c2,0x4c2,0x4c2,0xdc5,0xdc5,0xdc5,0xdc2,
+0xdc2,0xdc2,0xdc2,0xdc2,0x101d,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11c1,0x11c1,0x11c1,0x11c1,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x4e3,0x4e3,0x4e3,0x4e3,
+0x4e3,0x9e4,0x9e4,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x4e6,0x4e6,0x4e6,0x4e6,
+0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6f,0x50d,0x50d,0x50d,
+0x50d,0x11c7,0x507,0x507,0x50d,0x50d,0x11ca,0x11ca,0x50d,0x50d,0x507,0x507,0x507,0x507,0x507,0x507,
+0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x9ff,0x9ff,0x9ff,0x9ff,
 0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
-0x9ff,0x9ff,0x72,0x9ff,0x9ff,0x9ff,0x9ff,0xa02,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
-0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0xa02,0x72,0x72,0x72,0x72,
-0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,
-0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0x75,0x75,
-0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x7b,0x73e,0x738,0x73e,0x738,0x73e,0x738,0x73e,
-0x738,0x73e,0x738,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,
-0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x738,0x738,0x738,0x73e,0x738,0x73e,0x738,0x73e,
-0x738,0x738,0x738,0x738,0x738,0x738,0x73e,0x738,0x738,0x738,0x738,0x738,0x73b,0xb4c,0xb4c,0x7b,
-0x7b,0x849,0x849,0x819,0x819,0x741,0x744,0xb49,0x7e,0x7e,0x7e,0x7e,0x7e,0x756,0x756,0x756,
-0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
-0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0xfe7,0x7e,0x7e,0x81,0x759,0x759,0x759,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x81,
-0x822,0x822,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
-0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,
-0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0x1242,0x1242,0x1242,0x84,0x84,0x84,0x84,0x84,
-0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,
-0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0xc45,0xc45,0x87,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x87,
-0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x8a,0x8a,0x8a,
-0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
-0xa1d,0xb55,0xa1d,0xa1d,0xa1d,0xb55,0xa1d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
-0x8b5,0x8b5,0x8b5,0x8b5,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,
-0x525,0x525,0x525,0x525,0x525,0x525,0x525,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
-0x93,0x93,0x93,0x513,0x513,0x513,0x513,0x513,0x93,0x93,0x93,0x93,0x93,0x9f0,0x516,0x51c,
-0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x519,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,
-0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x93,0x51c,0x51c,0x51c,0x51c,0x51c,0x93,0x51c,0x93,
-0x51c,0x51c,0x93,0x51c,0x51c,0x93,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51f,
-0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
-0x11cd,0x11cd,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
-0x96,0x96,0x96,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x537,0x531,
-0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
-0x534,0x531,0x534,0x534,0x534,0x534,0x534,0x534,0x531,0x534,0x531,0x531,0x534,0x534,0x531,0x531,
-0x531,0x531,0x531,0x534,0x531,0x531,0x534,0x531,0x534,0x534,0x534,0x531,0x534,0x534,0x534,0x534,
-0x96,0x96,0x534,0x534,0x534,0x534,0x531,0x531,0x534,0x531,0x531,0x531,0x531,0x534,0x531,0x531,
-0x531,0x531,0x531,0x534,0x534,0x534,0x531,0x531,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
-0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,
-0x537,0x537,0x852,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x52e,0x52e,0xae6,0xc54,0x96,0x96,
-0x53d,0x53d,0x53d,0x53d,0xec4,0xec4,0xec4,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
-0x780,0x786,0x786,0x792,0x792,0x783,0x77a,0x783,0x77a,0x783,0x77a,0x783,0x77a,0x783,0x77a,0x783,
-0x77a,0x78c,0x789,0x78c,0x789,0xb6a,0xb6a,0xc51,0xc4e,0x77d,0x77d,0x77d,0x77d,0x78f,0x78f,0x78f,
-0x7a7,0x7aa,0x7b9,0x9c,0x7ad,0x7b0,0x7bc,0x7bc,0x7a4,0x79b,0x795,0x79b,0x795,0x79b,0x795,0x798,
-0x798,0x7b3,0x7b3,0x7b6,0x7b3,0x7b3,0x7b3,0x9c,0x7b3,0x7a1,0x79e,0x798,0x9c,0x9c,0x9c,0x9c,
-0x543,0x54f,0x543,0xae9,0x543,0x9f,0x543,0x54f,0x543,0x54f,0x543,0x54f,0x543,0x54f,0x543,0x54f,
-0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,
-0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x9f,0x9f,0x540,
-0x681,0x684,0x699,0x69c,0x67b,0x684,0x684,0xa5,0x663,0x666,0x666,0x666,0x666,0x663,0x663,0xa5,
-0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0x9f3,0x9f3,0x9f3,0x8b8,0x65d,0x552,0x552,
-0xa5,0x6ab,0x68a,0x67b,0x684,0x681,0x67b,0x68d,0x67e,0x678,0x67b,0x699,0x690,0x687,0x6a8,0x67b,
-0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x696,0x693,0x699,0x699,0x699,0x6ab,
-0x66c,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,
-0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0xa5,
-0xa5,0xa5,0x669,0x669,0x669,0x669,0x669,0x669,0xa5,0xa5,0x669,0x669,0x669,0x669,0x669,0x669,
-0xa5,0xa5,0x669,0x669,0x669,0x669,0x669,0x669,0xa5,0xa5,0x669,0x669,0x669,0xa5,0xa5,0xa5,
-0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
-0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa8,
-0xa3b,0xa3b,0xa3b,0xa3b,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
-0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
-0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
-0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xb1,0xb1,0xec7,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa59,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xb4,0xa6e,0xa6e,
-0xb4,0xb4,0xa6e,0xb4,0xb4,0xa6e,0xa6e,0xb4,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xb4,0xa6b,0xb4,0xa6b,0xa6b,0xa6b,
-0xa6b,0xbdc,0xa6b,0xa6b,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xb4,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xb4,0xb4,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xcbd,0xcbd,0xb4,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa65,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xdce,0xdcb,0xb4,0xb4,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
-0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xb7,0xa71,0xb7,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xaf8,0xaf8,0xaf8,0xaf8,
-0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xbd,0xaf8,0xaf8,0xaf8,0xaf8,0xaf2,0xaf2,
-0xaf5,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xb01,0xb01,0xb01,0xb01,
-0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xafb,0xafb,
-0xafe,0xb5e,0xb5e,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xb07,0xb07,0xb07,0xb07,
-0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb04,0xb04,
-0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xb0d,0xb0d,0xb0d,0xb0d,
-0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xc6,0xb0d,0xb0d,0xb0d,0xc6,0xb0a,0xb0a,
-0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xbee,0xbee,0xbee,0xbee,
-0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,
-0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xc9,0xc9,0xc9,0xbdf,0xbdf,0xbdf,0xbeb,
-0xbeb,0xbeb,0xbeb,0xbdf,0xbdf,0xbeb,0xbeb,0xbeb,0xc9,0xc9,0xc9,0xc9,0xbeb,0xbeb,0xbdf,0xbeb,
-0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbe2,0xbe2,0xbe2,0xc9,0xc9,0xc9,0xc9,0xbe5,0xc9,0xc9,0xc9,
-0xbf1,0xbf1,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbf4,0xbf4,0xbf4,0xbf4,
-0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xcc,0xcc,
-0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
-0xedc,0xedc,0xedc,0xedc,0xedc,0xed9,0xed9,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xcf,0xcf,0xcf,
-0xed9,0xed9,0xed9,0xed9,0xed9,0x115b,0x115b,0x115b,0x115b,0x115b,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
-0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
-0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xc18,0xc18,0xc18,0xc18,
-0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
-0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,
-0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
-0xc18,0xc18,0xc18,0xd2,0xc18,0xc18,0xd2,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
-0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xd2,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
-0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
-0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
-0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
-0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
-0xc1b,0xc1b,0xc1b,0xd5,0xd5,0xd5,0xd5,0xd5,0xc5a,0xc5a,0xc5a,0xd8,0xd8,0xd8,0xd8,0xc57,
-0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,
-0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xd8,0xd8,0xd8,0xc57,0xc57,0xc57,0xc57,0xc57,
-0xc57,0xc57,0xc57,0xc57,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,
-0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,
-0xc21,0xc21,0xdb,0xc1e,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,
-0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,
-0xc2a,0xc2a,0xde,0xde,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xe1,0xe1,0xc2d,0xe1,0xc2d,0xc2d,
-0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,
-0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xe1,0xc2d,0xc2d,0xe1,0xe1,0xe1,0xc2d,0xe1,0xe1,0xc2d,
-0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
-0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,
-0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xea,0xea,0xea,0xea,0xea,
-0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0x144,0x144,0x144,0x144,
-0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,
-0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xce1,0xce1,0xce7,0xce7,0xce1,0xed,0xed,0xce4,0xce4,
-0xfed,0xfed,0xfed,0xfed,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
-0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,
-0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
-0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0x11d9,0x1029,0xddd,0xddd,
-0xcfc,0xcf9,0xcfc,0xcf9,0xcf9,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0x1032,0x102f,0x1032,0x102f,0x102c,
-0x102c,0x102c,0x126c,0x1269,0xf6,0xf6,0xf6,0xf6,0xf6,0xcf6,0xcf3,0xcf3,0xcf3,0xcf0,0xcf6,0xcf3,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,
-0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,
-0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
-0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xff,0x126f,0xff,0xff,0xff,0xff,0xff,0x126f,0xff,0xff,
-0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
-0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0x102,
-0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,
-0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0x102,
-0xd20,0xd14,0xd14,0xd14,0x105,0xd14,0xd14,0x105,0x105,0x105,0x105,0x105,0xd14,0xd14,0xd14,0xd14,
-0xd20,0xd20,0xd20,0xd20,0x105,0xd20,0xd20,0xd20,0x105,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,
-0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,
-0x105,0x105,0x105,0x105,0xd11,0xd11,0xd11,0x105,0x105,0x105,0x105,0xd17,0xd1a,0xd1a,0xd1a,0xd1a,
-0xd1a,0xd1a,0xd1a,0xd1a,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0xd1d,0xd1d,0xd1d,0xd1d,
-0xd1d,0xd1d,0xd23,0xd23,0xd1a,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0x1038,0x1038,0x108,0x108,0x108,0x108,0xd2f,0xd2f,0xd2f,0xd2f,
-0xd2f,0xd32,0xd32,0xd32,0xd2f,0xd2f,0xd32,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd2f,0xd2f,0x108,0x108,0x108,0x108,0x108,0x108,0xd2c,0xd2c,0xd2c,0xd2c,
-0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0x1035,0x108,0x108,0x108,0xd29,0xd29,0xd3b,0xd3b,0xd3b,0xd3b,
-0x10b,0x10b,0x10b,0x10b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd38,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0xefa,0xefa,0xef7,0xef1,
-0xef7,0xef1,0xef7,0xef1,0xef7,0xef1,0xeee,0xeee,0xeee,0xeee,0xf03,0xf00,0xeee,0x103b,0x1272,0x1275,
-0x1275,0x1272,0x1272,0x1272,0x1272,0x1272,0x1278,0x1278,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,
-0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,
-0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0xd62,0xd62,0xd62,0xd5f,0xd5f,0xd56,0xd56,0xd5f,
-0xd5c,0xd5c,0xd5c,0xd5c,0x111,0x111,0x111,0x111,0x118b,0x118b,0x118b,0x118b,0x118b,0x118b,0x118b,0x118b,
-0x118e,0x118b,0x168,0x168,0x168,0x168,0x168,0x168,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0x127b,0x127b,
-0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xd68,0x11df,0x114,0x114,0x114,0x114,0x114,0x114,0x114,
-0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x11dc,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,
-0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xd8f,0xd80,0xd7a,0xd8c,0xd89,0xd83,0xd83,0xd92,
-0xd7d,0xd86,0x117,0x117,0x117,0x117,0x117,0x117,0xe10,0xe10,0xdfb,0xe10,0xe13,0xe16,0xe16,0xe16,
-0xe16,0xe16,0xe16,0xe16,0x11d,0x11d,0x11d,0x11d,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,
-0xe0a,0xe0a,0xe1c,0xe1c,0xe01,0xe07,0xe1c,0xe1c,0xe04,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,
-0xe01,0xe01,0xe01,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xe01,0xe01,0xe01,0xe01,
-0xe01,0xe01,0xe01,0xe01,0xe01,0x11d,0x11d,0x11d,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
-0xf15,0xf12,0xf12,0xf21,0xf18,0x11e5,0x11e2,0x120,0x11e5,0x11e2,0x1281,0x127e,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x11e5,0x11e2,0x11e5,0x11e2,0x11e5,0x11e2,0x11e5,0x11e2,
-0x11e5,0x11e2,0x1281,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0x1284,0x1284,0x11e2,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xe2b,0xe2b,0xe2b,0xe2b,
-0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,
-0xe28,0xe28,0xe2e,0xe2e,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0xe37,0xe37,0xe37,0xe37,
-0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,
-0xe37,0xe37,0xe31,0xe31,0xe31,0xe31,0x1041,0x1041,0x126,0x126,0x126,0xe34,0xe3a,0xe3a,0xe3a,0xe3a,
-0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0x129,0x129,0x129,0x129,0x129,
-0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
-0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0xe40,0xe40,0xe40,0x12c,
-0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0xe3d,0xe3d,0xe3d,0xe3d,
-0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0xe43,0xe43,0xe43,0xe43,
-0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x12f,0x12f,
-0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0xf45,0xf45,0xf45,0xf45,
-0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf42,0xf42,0xf39,0xf36,0x132,0x132,0x132,0xf48,0xf48,0xf3c,0xf3c,0xf3c,0xf3f,0xf3f,0xf3f,0xf3f,
-0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0x132,0x132,0x132,0xf45,0xf45,0xf45,0xf4b,0xf4b,0xf4b,0xf4b,
-0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf60,0xf60,0xf60,0xf60,
-0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf63,0xf63,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
-0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0xf7e,0xf78,0xf7e,0xf78,
-0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,
-0xf7e,0xf78,0xf7e,0xf78,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x1290,0xf8a,0xf8a,0xf8a,0xf8a,
-0xf84,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0xf90,0xf90,0xf87,0xf87,0xf87,0xf87,
-0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0xfb1,0xfb1,0xfb1,0xfb1,
-0xfb1,0xfb1,0xfb1,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfab,0xfae,
-0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0xfa8,0xfc0,0xfc0,0xfc0,0xfc0,
-0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfbd,0xfbd,0xfb4,0xfb4,0xfbd,
-0xfbd,0xfb4,0xfb4,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0xfc0,0xfc0,0xfc0,0xfb4,
-0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfb4,0xfbd,0x141,0x141,0xfba,0xfba,0xfba,0xfba,
-0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0x141,0x141,0xfb7,0xfc3,0xfc3,0xfc3,0x144,0x144,0x144,0x144,
-0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,
-0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0xfc9,0xfc9,0xfc9,0xfc9,
-0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,
-0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfcc,0x147,0x147,0xfcf,0xfcf,0xfcf,0xfcf,
-0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,
-0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0x14a,0x14a,0x14a,0xfd2,0xfd2,0xfd2,0xfd2,
-0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0x14d,0x14d,0x14d,
-0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0xfd8,0xfd8,0xfd8,0xfd8,
-0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,
-0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0x150,0x150,0x150,0x150,0x150,0xfd5,0xfdb,0xfdb,0xfdb,0xfdb,
-0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0x153,0x153,0x153,0x153,0xfde,0xfde,0xfde,0xfde,
-0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,
-0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x1047,0x1047,0x1047,0x1047,
-0x1050,0x1047,0x1047,0x1047,0x1050,0x1047,0x1047,0x1047,0x1047,0x1044,0x159,0x159,0x104d,0x104d,0x104d,0x104d,
-0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x159,0x1053,0x1053,0x1053,0x1053,
-0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,
-0x1053,0x1053,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x106e,0x106e,0x106e,0x106e,
-0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,
-0x106e,0x106b,0x1056,0x106b,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x15f,0x105f,0x1068,0x1056,0x1068,
-0x1068,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x1056,
-0x1056,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x15f,0x15f,0x1059,0x1065,0x1065,0x1065,0x1065,
-0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x1065,0x1065,0x1065,0x1065,
-0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x1194,0x1188,0x1194,0x1194,
-0x1194,0x1194,0x1194,0x1194,0x1194,0x107a,0x107a,0x107a,0x107a,0x1194,0x107a,0x107a,0x107a,0x107a,0x1185,0x1323,
-0x1326,0x1293,0x1293,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x108f,0x108f,0x108f,0x108f,
-0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x1086,0x1086,0x1089,0x1092,
-0x108c,0x108c,0x108c,0x1092,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x1095,0x1095,0x1095,0x1095,
-0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x109b,0x109b,
-0x109b,0x109b,0x109b,0x109b,0x1098,0x1098,0x1098,0x109b,0x16b,0x16b,0x16b,0x16b,0x1176,0x1176,0x1176,0x1176,
-0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,
-0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x16e,0x16e,0x16e,0x10b0,0x10a4,0x10a4,0x10a4,
-0x10a4,0x10a4,0x10a4,0x10a7,0x10b6,0x10b6,0x10a4,0x10a4,0x10a4,0x10a4,0x171,0x1191,0x10aa,0x10aa,0x10aa,0x10aa,
-0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x171,0x171,0x171,0x171,0x10a4,0x10a4,0x10bf,0x10bf,0x10bf,0x10bf,
-0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10c2,0x10bf,0x10bf,0x10bf,
-0x10bf,0x10bf,0x10bf,0x10b9,0x10b9,0x10b9,0x10bf,0x10bc,0x174,0x174,0x174,0x174,0x10d4,0x10c8,0x10d4,0x177,
-0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,
-0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x10d1,0x10d1,0x10d7,0x10cb,0x10ce,0x10ec,0x10ec,0x10ec,0x10e6,
-0x10e6,0x10dd,0x10e6,0x10e6,0x10dd,0x10e6,0x10e6,0x10ef,0x10e9,0x10e0,0x17a,0x17a,0x10e3,0x10e3,0x10e3,0x10e3,
-0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x10f5,0x10f5,0x10f5,0x10f5,
-0x10f5,0x10f5,0x10f5,0x17d,0x17d,0x17d,0x17d,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,
-0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,
-0x10f2,0x10f2,0x10f2,0x10f2,0x17d,0x17d,0x17d,0x17d,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,
-0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x180,0x10fb,
-0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
-0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x183,0x183,
-0x183,0x1107,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,
-0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x186,0x186,
-0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,
-0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x189,0x189,0x189,0x189,0x189,
-0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
-0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
-0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x18f,0x113d,0x113d,0x192,0x192,0x192,0x192,0x192,0x192,
-0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,
-0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x198,0x198,0x198,0x198,0x198,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,
-0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1164,0x1164,0x1164,0x1149,0x198,
-0x123f,0x1167,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x1167,0x123f,0x1167,
-0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x1296,0x1296,0x198,0x198,0x198,0x198,
-0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x123c,0x115e,0x115e,0x123c,0x123c,0x115e,
-0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x115e,0x115e,0x115e,0x123c,0x123c,
-0x1167,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x198,0x198,0x198,0x198,0x198,
-0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,
-0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x11ee,0x11ee,
-0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,
-0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x117f,0x1248,0x1248,0x19b,0x19b,0x19b,0x19b,0x19b,
-0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,
-0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
-0x1248,0x1248,0x1248,0x19b,0x19b,0x19b,0x19b,0x19b,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,
-0x1179,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x1245,0x1245,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
-0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
-0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x11f7,0x11f7,0x11f7,0x11f7,
-0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,
-0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f1,0x11f1,0x11f1,0x19e,0x19e,0x11f4,0x19e,0x1209,0x1209,0x1209,0x1209,
-0x1209,0x1209,0x11fa,0x1203,0x11fd,0x11fd,0x1203,0x1203,0x1203,0x11fd,0x1203,0x11fd,0x11fd,0x11fd,0x1206,0x1206,
-0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1200,0x1200,0x1200,0x1200,0x1a4,0x120c,0x120c,0x120c,
-0x120c,0x120c,0x120c,0x1a4,0x1a4,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1a4,0x1a4,0x120c,0x120c,0x120c,
-0x120c,0x120c,0x120c,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x120f,0x120f,0x120f,0x120f,
-0x120f,0x120f,0x1212,0x1224,0x1224,0x1218,0x1218,0x1218,0x1218,0x1218,0x1a7,0x1a7,0x1a7,0x1a7,0x1215,0x1215,
-0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x121b,0x121b,
-0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
-0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
-0x1227,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x124e,0x124b,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x122a,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,0x1b0,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,0x1b0,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,0x1b0,0x1b0,0x1b0,
-0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
-0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1230,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1b3,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x122d,0x122d,0x122d,0x122d,
-0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,
-0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1b3,0x1b3,0x1299,0x1299,0x1299,0x1299,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1239,0x1239,0x1239,0x1239,
-0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
-0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x12a5,0x1bf,0x12a5,0x12a5,
-0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x12a2,0x12a2,0x12a2,0x12a2,
-0x12a2,0x12a2,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,
-0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x1bf,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x1c2,0x12ab,
-0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,
-0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x12ab,
-0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x1c2,0x12ab,
-0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x1c2,0x12ab,
-0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,
-0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
-0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x12a8,0x12a8,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12ae,0x12ae,0x12ae,0x12ae,0x12ae,
-0x12bd,0x12ae,0x12b1,0x12b1,0x12ae,0x12ae,0x12ae,0x12b4,0x12b4,0x1c5,0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,
-0x12ba,0x12ba,0x12ba,0x12ba,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cc,
-0x12c6,0x12c6,0x12cc,0x12cc,0x12d5,0x12d5,0x12cf,0x12d2,0x12d2,0x12cc,0x12c9,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
-0x1c8,0x1c8,0x1c8,0x1c8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,
-0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x1cb,0x1cb,0x1cb,0x1cb,
-0x1cb,0x1cb,0x12d8,0x12d8,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
-0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
-0x1cb,0x1cb,0x1cb,0x1cb,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,
-0x1ce,0x1ce,0x1ce,0x1ce,0x12e4,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,
-0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,
-0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,
-0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x12de,0x12de,0x12de,0x12de,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,
-0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12f9,0x12fc,0x12fc,0x12fc,0x12fc,0x12ff,0x12ff,0x12ed,
-0x12f0,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,
-0x12f3,0x12f3,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,
-0x1305,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,
-0x1302,0x1302,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,0x1308,
-0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1194,0x1194,0x1194,0x1077,0x1194,0x1194,0x1194,0x1194,
-0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,
-0x131a,0x131a,0x131a,0x130b,0x1314,0x130b,0x1314,0x1314,0x130b,0x130b,0x130b,0x130b,0x130b,0x130b,0x1317,0x130e,
-0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,
-0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,
-0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x855,0x855,0xa14,0xa14,0xa14,0xa14,
-0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,
-0xa14,0xa14,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0xfea,0xfea,0xfea,0xfea,
-0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x131d,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
-0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
-0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0xb58,0xb58,0xb58,0xb58,
-0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0x1173,0x1173,0x1173,0x1e6,0x1e6,0xd77,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,
-0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,
-0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
-0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0x1e9,
-0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
-0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
-0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0x1ec,0x1ec,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
-0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1ef,0x1ef,0x1ef,
-0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
-0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
-0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1f2,0x1f2,0xff0,0x2f1,0x2f1,0x2fd,0xb9a,0x300,0x300,0x300,
-0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
-0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x2fd,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,
-0x2f1,0x2fd,0x2fd,0x2fd,0x2fd,0x2f7,0xff3,0x11a0,0x300,0x83d,0x83d,0x2f4,0x2f4,0xff0,0x119d,0x119d,
-0x303,0x303,0x303,0x303,0x303,0x303,0x303,0x303,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
-0x300,0x303,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x303,0x300,0x300,0x303,0x300,0x300,0x300,
-0x300,0x300,0x119d,0x11a0,0x2f4,0x300,0x2fd,0x2fd,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,
-0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0xa92,
-0xa92,0xc90,0xc90,0x3ea,0xc93,0x1260,0x1260,0x1260,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,
-0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,
-0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f6,0x3f6,0x3f6,0x100b,0x100b,0x100b,0x100b,0x100b,
-0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,
-0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,
-0x3f3,0x3f3,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x3f9,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
-0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
-0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x402,0x3fc,0x402,0x3fc,
-0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
-0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x3fc,0x3fc,
-0x3fc,0x3fc,0x3ff,0x897,0xeac,0xeac,0xeaf,0xeac,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
-0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
-0x402,0x3fc,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,
-0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,
-0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x5c7,0x5c7,0x5ca,0x42c,0x5d6,0x5d3,0x5d3,0x5d0,
-0x456,0x456,0x414,0x414,0x414,0x414,0x414,0x9c6,0x5d9,0x438,0x5f1,0x5f4,0x44d,0x5d9,0x43b,0x43b,
-0x42c,0x447,0x447,0x5c7,0x453,0x450,0x5cd,0x426,0x41d,0x41d,0x420,0x420,0x420,0x420,0x420,0x423,
-0x420,0x420,0x420,0x417,0x45c,0x45c,0x459,0x459,0x5e5,0x441,0x43e,0x5e2,0x5df,0x5dc,0x5ee,0x42f,
-0x5eb,0x5eb,0x444,0x447,0x5e8,0x5e8,0x444,0x447,0x429,0x42c,0x42c,0x42c,0x44a,0x435,0x432,0xaa7,
-0x9cc,0x9cc,0x9c9,0x9c9,0x9c9,0x9c9,0xa9e,0xa9e,0xa9e,0xa9e,0xaa4,0xbc7,0xbc4,0xc9f,0xca2,0xaa1,
-0xca2,0xca2,0xca2,0xca2,0xc9f,0xca2,0xca2,0xa9b,0x48f,0x48f,0x4a7,0x606,0x48c,0x600,0x48f,0x4a4,
-0x48c,0x606,0x49e,0x4a7,0x4a7,0x4a7,0x49e,0x49e,0x4a7,0x4a7,0x4a7,0x60c,0x48c,0x4a7,0x609,0x48c,
-0x49b,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x48c,0x48c,0x492,0x600,0x603,0x48c,0x4a7,0x48c,0x60f,0x48c,
-0x4a7,0x495,0x4ad,0x612,0x4a7,0x4a7,0x498,0x49e,0x4a7,0x4a7,0x4aa,0x4a7,0x49e,0x4a1,0x4a1,0x4a1,
-0x4a1,0x9d8,0x9d5,0xbca,0xcb1,0xac2,0xac5,0xac5,0xabf,0xabc,0xabc,0xabc,0xabc,0xac5,0xac2,0xac2,
-0xac2,0xac2,0xab9,0xabc,0xcae,0xdb9,0xdbc,0xeb8,0x101a,0x101a,0x101a,0x618,0x615,0x4b0,0x4b3,0x4b3,
-0x4b3,0x4b3,0x4b3,0x615,0x618,0x618,0x615,0x4b3,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,
-0x61e,0x61e,0x61e,0x61e,0x4bc,0x4bc,0x4bc,0x4bc,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,
-0x61b,0x61b,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,
-0x4bf,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c5,0x4bf,0x4c2,0x4c2,0x4bf,0x4bf,0x4bf,0x4bf,0x4c2,0x4c2,
-0x621,0x621,0x4bf,0x4bf,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,
-0x4c2,0x4c5,0x4c5,0x4c5,0x4c2,0x4c2,0x624,0x4c2,0x624,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,
-0x4bf,0x4c2,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4c2,0x4c2,0x4bf,0x621,0x4bf,0x4bf,0x4bf,0x9de,
-0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,
-0xac8,0xac8,0xac8,0xac8,0x627,0x4c8,0x627,0x627,0x4cb,0x4c8,0x4c8,0x627,0x627,0x4cb,0x4c8,0x627,
-0x4cb,0x4c8,0x4c8,0x627,0x4c8,0x627,0x4d4,0x4d1,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,
-0x4c8,0x627,0x627,0x627,0x627,0x4c8,0x4c8,0x627,0x4cb,0x627,0x4cb,0x627,0x627,0x627,0x627,0x627,
-0x62d,0x4ce,0x627,0x4ce,0x4ce,0x4c8,0x4c8,0x4c8,0x627,0x627,0x627,0x627,0x4c8,0x4c8,0x4c8,0x4c8,
-0x627,0x627,0x4c8,0x4c8,0x4c8,0x4cb,0x4c8,0x4c8,0x4cb,0x4c8,0x4c8,0x4cb,0x627,0x4cb,0x4c8,0x4c8,
-0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
-0x4c8,0x4c8,0x4c8,0x4c8,0x62a,0x627,0x4cb,0x4c8,0x627,0x627,0x627,0x627,0x4c8,0x4c8,0x627,0x627,
-0x4c8,0x4cb,0x62a,0x62a,0x4cb,0x4cb,0x4c8,0x4c8,0x4cb,0x4cb,0x4c8,0x4c8,0x4cb,0x4cb,0x4c8,0x4c8,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x627,0x627,0x4cb,0x4cb,0x627,0x627,0x4cb,0x4cb,0x4c8,0x4c8,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
-0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
-0x4cb,0x4cb,0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4c8,0x4c8,
-0x4c8,0x4c8,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,
-0x4d7,0x9e1,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4e0,0x4e0,0x4e0,0x4e0,0x4d7,0x4d7,0x4d7,0x4d7,
-0x4d7,0x4d7,0x630,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7,
-0x4dd,0x4dd,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x723,0x720,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,
-0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,
-0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x9e1,
-0xad1,0x9e1,0x9e1,0x9e1,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,
-0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,
-0x4e3,0x4e3,0x4e3,0x4e3,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x4e9,0xb2e,
-0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,
-0xb2e,0xb2e,0xb2e,0xc39,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
-0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x4ec,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
-0x4ef,0x4ef,0x4ef,0x4ef,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
-0x4ef,0x4ef,0x4ef,0x4ef,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
-0x63f,0x63f,0x63f,0x63f,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,
-0x642,0x642,0x642,0x642,0x4f2,0x4f2,0x642,0x642,0x642,0x642,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,
-0xad4,0xad4,0xad4,0xad4,0x648,0x648,0x4f5,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x4f5,0x4f5,
-0x4f5,0x4f5,0x4f8,0x4f8,0x4f8,0x4f8,0x648,0x648,0x4f8,0x4f8,0x648,0x648,0x4f5,0x4f5,0x4f5,0x4f5,
-0x648,0x648,0x4f8,0x4f8,0x648,0x648,0x4f5,0x4f5,0x4f5,0x4f5,0x648,0x648,0x645,0x4f5,0x4f8,0x648,
-0x4f5,0x4f5,0x645,0x648,0x648,0x648,0x4f8,0x4f8,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,
-0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x648,0x645,0x648,0x645,0x4f5,0x4f8,0x4f8,0x4f8,0x4f8,0x4f8,
-0x4f8,0x4f5,0x4f5,0x645,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0x4fe,0x4fe,0x4fe,0x4fe,0x4fb,0x651,0x651,0x4fb,0x4fb,0x64b,0x4fb,0x4fb,
-0x4fb,0x4fb,0x64b,0x64b,0x4fb,0x4fb,0x4fb,0x4fb,0xc3c,0xc3c,0xada,0xada,0xcba,0x9ea,0x4fe,0x4fe,
-0x64e,0x4fe,0x64e,0x4fe,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
-0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fe,0x4fe,0x4fe,
-0x4fb,0x4fb,0x4fb,0x4fb,0x651,0x4fb,0x651,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
-0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
-0x4fb,0x4fb,0x4fb,0x4fb,0x651,0x651,0x501,0x651,0x64b,0x64b,0x4fb,0x64b,0x64e,0x64b,0x64b,0x4fb,
-0x64b,0x651,0x501,0x651,0x9ea,0x9ea,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
-0xadd,0xadd,0xcb7,0xcba,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,
-0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x507,0x11c7,0x11c7,0x11c7,0x507,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x11c7,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x657,0x507,0x507,0x507,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,0x507,0x11c7,0x507,0x507,0x507,0x507,0x11c7,
-0x11c7,0x11c7,0x507,0x1155,0x507,0x507,0x507,0x510,0x510,0x510,0x510,0x11c7,0x11c7,0x507,0x50a,0x50a,
-0x507,0x507,0x507,0x507,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,
-0xae3,0xae0,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x507,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,0x507,0x507,0x507,
-0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,0x531,0x531,0x531,0x531,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x534,0x534,0x534,0x534,0x534,
-0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x531,0x537,0x52b,0x528,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x53a,0x537,0x531,
-0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
-0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x537,0x531,
-0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
-0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,
-0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,
-0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x537,0x531,0x537,0x531,0x537,0x531,0x534,0x53a,
-0x534,0x53a,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,
-0x534,0x537,0x531,0x534,0x537,0x531,0x534,0x53a,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,
-0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x531,0x534,0x531,0x534,0x531,0x531,
-0x534,0x531,0x531,0x534,0x531,0x534,0x531,0x531,0x534,0x531,0x534,0x534,0x531,0x531,0x531,0x534,
-0x531,0x531,0x531,0x531,0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
-0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x531,0x531,
-0x534,0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,
-0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,
-0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x53a,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,
-0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,
-0x53a,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x54c,0x54c,0x546,0x54c,
-0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,
-0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,
-0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
-0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
-0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,
-0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x633,0x633,0x633,0x633,
-0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,
-0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x63c,0x63c,
-0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
-0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,
-0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
-0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
-0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
-0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
-0xb34,0x7e3,0x7dd,0x7da,0x7e0,0x7d7,0x66f,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,
-0x7e9,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,
-0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,
-0x66f,0x66f,0x7e6,0x7e6,0x675,0x7f8,0x7fb,0x801,0x726,0x732,0x816,0x72f,0x7ef,0x7ec,0x7ef,0x7ec,
-0x7f5,0x7f2,0x7f5,0x7f2,0x7ef,0x7ec,0x72c,0x801,0x7ef,0x7ec,0x7ef,0x7ec,0x7ef,0x7ec,0x7ef,0x7ec,
-0x807,0x80d,0x80a,0x80a,0x67b,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,
-0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x67e,
-0x699,0x678,0x69f,0x6a2,0x69c,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,
-0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x67e,
-0x699,0x678,0x699,0xb37,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,
-0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,
-0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x116a,0x116a,0x116a,0x116a,0x116a,0x71d,0x72c,0x72f,0x72f,0x72f,
-0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x846,0x846,0x846,0x846,0x735,0x735,0x804,0x813,0x813,0x813,
-0x813,0x810,0x729,0x7fe,0xa0e,0xa0e,0xa0e,0xb46,0xb64,0xb61,0xa29,0x7d4,0x73b,0x738,0x73b,0x73e,
-0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x738,0x738,0x738,0x738,0x738,0x73b,0x73b,0x738,0x73b,
-0x73b,0x738,0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x738,0xb67,0x74d,0x747,0x74d,
-0x747,0x74d,0x747,0x74d,0x747,0x74d,0x747,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,
-0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x74d,
-0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x747,0x747,0x747,0x747,0x747,0x74a,0x74a,0x747,0x74a,
-0x74a,0x747,0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x747,0x747,0x747,0x747,0x74d,
-0x747,0x74d,0x747,0x74d,0x747,0x747,0x747,0x747,0x747,0x747,0x74d,0x747,0x747,0x747,0x747,0x747,
-0x74a,0x74d,0x74d,0x74a,0x74a,0x74a,0x74a,0x81c,0x81f,0x750,0x753,0xb4f,0x759,0x759,0x759,0x759,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x75c,0x759,0x759,0x759,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
-0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
-0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
-0x765,0x765,0x765,0x765,0xc48,0xc48,0xd71,0x75f,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
-0x828,0x828,0x828,0x828,0xc42,0xc42,0xc42,0xc42,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
-0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,
-0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0xc4b,
-0xc4b,0xc4b,0xc4b,0x831,0x831,0x831,0x831,0x831,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,
-0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,
-0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0xc4b,0xc4b,0x76e,0x76e,0x76e,0x76e,
-0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
-0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x82e,0x82e,0x82e,0x82e,
-0x82e,0x82e,0x82e,0x82e,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
-0x771,0x771,0x771,0x771,0x771,0x771,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,
-0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xfea,0xfea,0xfea,0xfea,
-0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,
-0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,
-0x774,0x774,0x777,0x777,0x774,0x777,0x774,0x777,0x777,0x774,0x774,0x774,0x774,0x774,0x774,0x774,
-0x774,0x774,0x774,0x777,0x774,0x777,0x774,0x777,0x777,0x774,0x774,0x777,0x777,0x777,0x774,0x774,
-0x774,0x774,0x1320,0x1320,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
-0xb58,0xb58,0xb58,0xb58,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
-0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
-0x828,0x828,0x828,0x828,0x116d,0x116d,0x116d,0x116d,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,0x1158,
-0xc42,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
-0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
-0x82b,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
-0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,
-0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0xc4b,
-0x891,0x873,0x873,0x873,0x873,0x86d,0x873,0x873,0x885,0x873,0x873,0x870,0x87c,0x882,0x882,0x882,
-0x882,0x882,0x885,0x86d,0x879,0x86d,0x86d,0x86d,0x864,0x864,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,
-0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,
-0x86d,0x86d,0x86d,0x86d,0x870,0x864,0x86d,0x864,0x86d,0x864,0x87f,0x876,0x87f,0x876,0x88e,0x88e,
-0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,
-0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,
-0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,
-0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,
-0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,
-0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,
-0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
-0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8a6,0x8a6,
-0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
-0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8a9,0x8a9,
-0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
-0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
-0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
-0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
-0x8b2,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,
-0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b2,0x8b5,0x8b5,0x8b5,
-0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,
-0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x942,0x942,0xea6,0x942,0x942,0x942,0x945,0x942,
-0xea6,0x942,0x942,0xe9d,0x93c,0x930,0x930,0x930,0x930,0x93f,0x930,0xe8b,0xe8b,0xe8b,0x930,0x933,
-0x93c,0x936,0xe91,0xea0,0xea0,0xe8b,0xe8b,0xea6,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,
-0xa2f,0xa2f,0x948,0x948,0x939,0x939,0x939,0x939,0x942,0x942,0x942,0x942,0x942,0x942,0x93f,0x93f,
-0x930,0x930,0xea6,0xea6,0xea6,0xea6,0xe8b,0xe8b,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
-0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
-0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0xc9c,
-0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0xc9c,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0x957,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
-0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
-0x95d,0x95d,0x95d,0x95d,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
-0x963,0x960,0x966,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x1011,0x1011,0x1011,0x1011,0x1011,
-0x1011,0x1011,0x1011,0x1011,0x100e,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
-0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
-0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x99c,0x99c,0x99c,0x99f,0x99f,0x99c,0x99c,0x99c,
-0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x984,0x984,0x999,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x999,0x999,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
-0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
-0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9bd,0x9ba,0x9ba,0x9ba,0x9ba,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,
-0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,
-0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,
-0x9e1,0x9e1,0x9e1,0xad1,0xad1,0xad1,0xad1,0xad1,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
-0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
-0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
-0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
-0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,
+0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x72,0x9ff,0x9ff,0x9ff,0x9ff,0xa02,0x9ff,0x9ff,0x9ff,0x9ff,
+0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0xa02,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0xa05,0xa05,0xa05,0xa05,
 0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,
-0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,
-0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,
-0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
-0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa1a,0xa17,0xa17,
-0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
-0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
-0xa1d,0xa1d,0xb55,0xb55,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
-0xa1d,0xa1d,0xa1d,0xa1d,0xb55,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
-0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xbd9,0xbd9,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
-0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
-0xa44,0xa44,0xbd6,0xbd6,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
-0xc24,0xc24,0xc24,0xc24,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,
-0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,
-0xa47,0xa47,0xa47,0xa47,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
-0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
-0xa4a,0xa4a,0xa4a,0xa4a,0xa59,0xa59,0xa59,0xa59,0xa59,0xa50,0xa5c,0xa62,0xa62,0xa62,0xa56,0xa56,
-0xa56,0xa5f,0xa53,0xa53,0xa53,0xa53,0xa53,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa62,
-0xa62,0xa62,0xa62,0xa62,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa05,0xa05,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x7b,0x73e,0x738,0x73e,
+0x738,0x73e,0x738,0x73e,0x738,0x73e,0x738,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,
+0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x738,0x738,0x738,0x73e,
+0x738,0x73e,0x738,0x73e,0x738,0x738,0x738,0x738,0x738,0x738,0x73e,0x738,0x738,0x738,0x738,0x738,
+0x73b,0xb4c,0xb4c,0x7b,0x7b,0x849,0x849,0x819,0x819,0x741,0x744,0xb49,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
+0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0xfe7,0x7e,0x7e,
+0x81,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
+0x759,0x759,0x759,0x81,0x822,0x822,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x825,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,
+0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0x1242,0x1242,0x1242,0x84,
+0x84,0x84,0x84,0x84,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,
+0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,0x762,
+0x762,0xc45,0xc45,0x87,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
+0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,
+0x768,0x768,0x768,0x87,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
+0xa17,0x8a,0x8a,0x8a,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xb55,0xa1d,0xa1d,0xa1d,0xb55,0xa1d,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x8d,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1080,0x1080,0x1080,0x1080,0x8b5,0x8b5,0x8b5,0x8b5,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,
+0x10f5,0x10f5,0x10f5,0x10f5,0x525,0x525,0x525,0x525,0x525,0x525,0x525,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x513,0x513,0x513,0x513,0x513,0x93,0x93,0x93,0x93,
+0x93,0x9f0,0x516,0x51c,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x522,0x519,0x51c,0x51c,
+0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,0x93,0x51c,0x51c,0x51c,0x51c,
+0x51c,0x93,0x51c,0x93,0x51c,0x51c,0x93,0x51c,0x51c,0x93,0x51c,0x51c,0x51c,0x51c,0x51c,0x51c,
+0x51c,0x51c,0x51c,0x51f,0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
+0x534,0x53a,0x537,0x531,0x11cd,0x11cd,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x537,
+0x531,0x537,0x537,0x531,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x534,0x531,0x534,0x534,0x534,0x534,0x534,0x534,0x531,0x534,0x531,0x531,
+0x534,0x534,0x531,0x531,0x531,0x531,0x531,0x534,0x531,0x531,0x534,0x531,0x534,0x534,0x534,0x531,
+0x534,0x534,0x534,0x534,0x96,0x96,0x534,0x534,0x534,0x534,0x531,0x531,0x534,0x531,0x531,0x531,
+0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x534,0x531,0x531,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,0xa38,
+0xa38,0xa38,0xa38,0xa38,0x537,0x537,0x852,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x52e,0x52e,
+0xae6,0xc54,0x96,0x96,0x53d,0x53d,0x53d,0x53d,0xec4,0xec4,0xec4,0x99,0x99,0x99,0x99,0x99,
+0x99,0x99,0x99,0x99,0x780,0x786,0x786,0x792,0x792,0x783,0x77a,0x783,0x77a,0x783,0x77a,0x783,
+0x77a,0x783,0x77a,0x783,0x77a,0x78c,0x789,0x78c,0x789,0xb6a,0xb6a,0xc51,0xc4e,0x77d,0x77d,0x77d,
+0x77d,0x78f,0x78f,0x78f,0x7a7,0x7aa,0x7b9,0x9c,0x7ad,0x7b0,0x7bc,0x7bc,0x7a4,0x79b,0x795,0x79b,
+0x795,0x79b,0x795,0x798,0x798,0x7b3,0x7b3,0x7b6,0x7b3,0x7b3,0x7b3,0x9c,0x7b3,0x7a1,0x79e,0x798,
+0x9c,0x9c,0x9c,0x9c,0x543,0x54f,0x543,0xae9,0x543,0x9f,0x543,0x54f,0x543,0x54f,0x543,0x54f,
+0x543,0x54f,0x543,0x54f,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
+0x54f,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,
+0x546,0x9f,0x9f,0x540,0x681,0x684,0x699,0x69c,0x67b,0x684,0x684,0xa5,0x663,0x666,0x666,0x666,
+0x666,0x663,0x663,0xa5,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0x9f3,0x9f3,0x9f3,
+0x8b8,0x65d,0x552,0x552,0xa5,0x6ab,0x68a,0x67b,0x684,0x681,0x67b,0x68d,0x67e,0x678,0x67b,0x699,
+0x690,0x687,0x6a8,0x67b,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x6a5,0x696,0x693,
+0x699,0x699,0x699,0x6ab,0x66c,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,
+0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,
+0x669,0x669,0x669,0xa5,0xa5,0xa5,0x669,0x669,0x669,0x669,0x669,0x669,0xa5,0xa5,0x669,0x669,
+0x669,0x669,0x669,0x669,0xa5,0xa5,0x669,0x669,0x669,0x669,0x669,0x669,0xa5,0xa5,0x669,0x669,
+0x669,0xa5,0xa5,0xa5,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0xa3e,0xa3e,0xa3e,0xa8,0xa3b,0xa3b,0xa3b,0xa3b,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+0xa8,0xa8,0xa8,0xa8,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,0xa41,
+0xa41,0xa41,0xa41,0xa41,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
+0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xae,0xae,0xae,0xae,0xae,0xae,
+0xae,0xae,0xae,0xae,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xb1,0xb1,0xec7,0xa56,0xa56,
 0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa59,0xa59,0xa62,0xa62,0xa62,0xa56,0xa56,0xa62,0xa62,0xa62,
-0xa62,0xa62,0xa62,0xa62,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa62,0xa62,0xa62,0xa62,0xa56,0xa56,
-0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa59,0xa59,0xa59,0xa59,0xa59,
-0xa6e,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa56,0xa56,0xa56,0xa56,0xa59,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
 0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa65,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
-0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
-0xa68,0xa68,0xa68,0xa68,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6e,0xb4,0xa6e,0xa6e,0xb4,0xb4,0xa6e,0xb4,0xb4,0xa6e,0xa6e,0xb4,0xb4,0xa6e,0xa6e,0xa6e,
+0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xb4,0xa6b,
+0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xbdc,0xa6b,0xa6b,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
 0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
-0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
-0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa71,0xa71,0xa71,0xa71,
-0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,
-0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa74,0xa74,0xa74,0xa74,
-0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
-0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa77,0xa77,0xa77,0xa77,
-0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
-0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xace,0xad1,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,
-0xace,0xace,0xace,0xbcd,0xbd0,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,
-0xdc5,0xdc5,0xdc5,0xdc5,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xbd3,0xbd3,
-0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,
-0xcb7,0xebe,0x114f,0x114f,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc6,0xcc3,0xdd7,0xdd7,0xdd7,0xdd7,0x1266,
-0xed0,0x1266,0x11d6,0x11d6,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb3d,0xb3a,0xb3d,0xb3a,0xb3d,0xb3a,0xfe4,0xfe1,0xed6,0xed3,
-0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
-0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,
-0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,
-0xb19,0xb19,0xb19,0xb1f,0xb1c,0xb43,0xb40,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,
-0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb1f,0xb1c,0xb1f,0xb1c,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb1f,0xb1c,0xb19,0xb19,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb28,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb28,0xb28,0xb28,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb25,0xb22,0xb22,0xb22,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
-0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
-0xb58,0xb58,0xb58,0xb58,0xbd3,0xbd3,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,
-0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xdc8,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,
-0xebe,0x1020,0x1152,0x1152,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfa,
-0xc0f,0xc0f,0xc0f,0xc09,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc09,
-0xc0f,0xc0f,0xc0f,0xc0f,0xc03,0xc03,0xc0c,0xc0c,0xc0c,0xc0c,0xc00,0xc00,0xc00,0xc00,0xc00,0xc06,
-0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xcc9,0xccc,0xccc,0xccc,
-0xccc,0xccc,0xccc,0xccc,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
-0xc0f,0xc0f,0xc09,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
-0xc0f,0xc03,0xc03,0xc03,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
-0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
-0xc06,0xc06,0xc06,0xc06,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
-0xc12,0xc12,0xccf,0xccf,0xccf,0xccf,0xccf,0xccf,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda,0xed9,
-0xed9,0xed9,0xed9,0xed9,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,
-0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,
-0xc15,0xc15,0xc15,0xc15,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,
+0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xb4,0xa6e,
+0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6e,0xb4,0xb4,0xb4,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xb4,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xcbd,0xcbd,0xb4,0xb4,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6b,0xa6b,0xa6b,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xdce,0xdcb,0xb4,0xb4,0xa68,0xa68,
+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
+0xb7,0xa71,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xbd,0xaf8,0xaf8,
+0xaf8,0xaf8,0xaf2,0xaf2,0xaf5,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,
+0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,
+0xb01,0xb01,0xafb,0xafb,0xafe,0xb5e,0xb5e,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
+0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,
+0xb07,0xb07,0xb04,0xb04,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
+0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xc6,0xb0d,0xb0d,
+0xb0d,0xc6,0xb0a,0xb0a,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,
+0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xc9,0xc9,0xc9,
+0xbdf,0xbdf,0xbdf,0xbeb,0xbeb,0xbeb,0xbeb,0xbdf,0xbdf,0xbeb,0xbeb,0xbeb,0xc9,0xc9,0xc9,0xc9,
+0xbeb,0xbeb,0xbdf,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbe2,0xbe2,0xbe2,0xc9,0xc9,0xc9,0xc9,
+0xbe5,0xc9,0xc9,0xc9,0xbf1,0xbf1,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
+0xbf4,0xbf4,0xcc,0xcc,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
+0xcc,0xcc,0xcc,0xcc,0xedc,0xedc,0xedc,0xedc,0xedc,0xed9,0xed9,0xedc,0xedc,0xedc,0xedc,0xedc,
+0xedc,0xcf,0xcf,0xcf,0xed9,0xed9,0xed9,0xed9,0xed9,0x115b,0x115b,0x115b,0x115b,0x115b,0xcf,0xcf,
+0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
+0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xd2,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xc18,0xc18,0xd2,0xc18,0xc18,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xd2,0xc18,0xc18,0xc18,0xc18,
+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
+0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
+0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xc1b,0xc1b,0xc1b,0xc1b,
 0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
-0xc1b,0xc1b,0xc1b,0xc1b,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
-0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
-0xc24,0xc24,0xc24,0xc24,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
-0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
-0xc30,0xc30,0xc30,0xc30,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,
-0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,
-0xc3f,0xc3f,0xc3f,0xc3f,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,
-0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,
-0xcd5,0xcd5,0xcd5,0xcd5,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
-0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,
-0xcd8,0xcd8,0xcd8,0xcd8,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
-0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
-0xcdb,0xcdb,0xcdb,0xcdb,0xd98,0xd98,0xced,0xced,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0xee5,
-0xee5,0xee5,0xee5,0xee5,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,
-0xee2,0xee2,0xee2,0xee2,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,
-0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,
-0xcfc,0xcf9,0xcfc,0xcf9,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
-0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
-0xd08,0xd08,0xd08,0xd08,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
-0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
-0xd0e,0xd0e,0xd0e,0xd0e,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,
-0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xde0,0xde0,0xde0,0xde0,0xee8,
-0xee8,0xee8,0xee8,0xee8,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
-0xd35,0xd35,0xd35,0xd35,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
-0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
-0xd44,0xd44,0xd44,0xd3e,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,
-0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd44,
-0xd44,0xd44,0xd44,0xd44,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,
-0xd4d,0xd4d,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd47,0xd50,0xef4,0xeee,0xefd,0xeeb,
-0xd4d,0xd4d,0xeeb,0xeeb,0xd62,0xd62,0xd53,0xd62,0xd62,0xd62,0xd59,0xd62,0xd62,0xd62,0xd62,0xd53,
-0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,
-0xd62,0xd62,0xd62,0xd62,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
-0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
-0xd65,0xd65,0xd65,0xd65,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
-0xd77,0xd77,0xd77,0xd77,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,
-0xd95,0xd95,0xd95,0xd95,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,
-0xfed,0xfed,0xfed,0xfed,0xdda,0xdda,0xdda,0xdda,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,
-0xed9,0xed9,0xed9,0xed9,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,
-0xedc,0xedc,0xedc,0xedc,0xdfb,0xdfb,0xdfb,0xdfb,0xe0d,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,
-0xe19,0xe16,0xe19,0xe16,0xe16,0xe16,0xe19,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,
-0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xdfe,0xe0d,0xdfb,0xdfb,
-0xdfb,0xdfb,0xdfb,0xe10,0xdfb,0xe10,0xe0d,0xe0d,0xe22,0xe1f,0xe22,0xe22,0xe22,0xe1f,0xe1f,0xe22,
-0xe1f,0xe22,0xe1f,0xe22,0xe1f,0xf0f,0xf0f,0xf0f,0x103e,0xf06,0xf0f,0xf06,0xe1f,0xe22,0xe1f,0xe1f,
-0xf06,0xf06,0xf06,0xf06,0xf09,0xf0c,0x103e,0x103e,0xe25,0xe25,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
-0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf18,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
-0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,
+0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xd5,0xd5,0xd5,0xd5,0xd5,0xc5a,0xc5a,0xc5a,0xd8,
+0xd8,0xd8,0xd8,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,
+0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xd8,0xd8,0xd8,0xc57,
+0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,
+0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,
+0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xdb,0xc1e,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,
+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,
+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xde,0xde,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xe1,0xe1,
+0xc2d,0xe1,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,
+0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xe1,0xc2d,0xc2d,0xe1,0xe1,0xe1,
+0xc2d,0xe1,0xe1,0xc2d,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
+0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xe4,0xe4,0xe4,0xe4,0xe4,
+0xe4,0xe4,0xe4,0xe4,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xea,
+0xea,0xea,0xea,0xea,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,
+0x144,0x144,0x144,0x144,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,
+0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xce1,0xce1,0xce7,0xce7,0xce1,
+0xed,0xed,0xce4,0xce4,0xfed,0xfed,0xfed,0xfed,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xf0,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,
+0xb5b,0xb5b,0xb5b,0xb5b,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xf3,0xf3,0xf3,0xf3,0xf3,
+0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
+0x11d9,0x1029,0xddd,0xddd,0xcfc,0xcf9,0xcfc,0xcf9,0xcf9,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0x1032,
+0x102f,0x1032,0x102f,0x102c,0x102c,0x102c,0x126c,0x1269,0xf6,0xf6,0xf6,0xf6,0xf6,0xcf6,0xcf3,0xcf3,
+0xcf3,0xcf0,0xcf6,0xcf3,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,
+0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf9,0xf9,0xf9,0xf9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xcff,0xcff,0xcff,0xcff,
+0xcff,0xcff,0xcff,0xf9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xf9,0xcff,0xcff,0xcff,0xcff,
+0xcff,0xcff,0xcff,0xf9,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,
+0xd05,0xd05,0xd05,0xd05,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xff,0x126f,0xff,0xff,0xff,0xff,
+0xff,0x126f,0xff,0xff,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
+0xd0e,0xd0e,0xd0e,0x102,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,
+0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,
+0xd0b,0xd0b,0xd0b,0x102,0xd20,0xd14,0xd14,0xd14,0x105,0xd14,0xd14,0x105,0x105,0x105,0x105,0x105,
+0xd14,0xd14,0xd14,0xd14,0xd20,0xd20,0xd20,0xd20,0x105,0xd20,0xd20,0xd20,0x105,0xd20,0xd20,0xd20,
+0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,
+0xd20,0xd20,0xd20,0xd20,0x105,0x105,0x105,0x105,0xd11,0xd11,0xd11,0x105,0x105,0x105,0x105,0xd17,
+0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,
+0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd23,0xd23,0xd1a,0x105,0x105,0x105,0x105,0x105,0x105,0x105,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0x1038,0x1038,0x108,0x108,0x108,0x108,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd32,0xd32,0xd32,0xd2f,0xd2f,0xd32,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd2f,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd2f,0xd2f,0x108,0x108,0x108,0x108,0x108,0x108,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0x1035,0x108,0x108,0x108,0xd29,0xd29,
+0xd3b,0xd3b,0xd3b,0xd3b,0x10b,0x10b,0x10b,0x10b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
+0xd38,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,
+0xefa,0xefa,0xef7,0xef1,0xef7,0xef1,0xef7,0xef1,0xef7,0xef1,0xeee,0xeee,0xeee,0xeee,0xf03,0xf00,
+0xeee,0x103b,0x1272,0x1275,0x1275,0x1272,0x1272,0x1272,0x1272,0x1272,0x1278,0x1278,0x10e,0x10e,0x10e,0x10e,
+0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,
+0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0xd62,0xd62,0xd62,0xd5f,
+0xd5f,0xd56,0xd56,0xd5f,0xd5c,0xd5c,0xd5c,0xd5c,0x111,0x111,0x111,0x111,0x118b,0x118b,0x118b,0x118b,
+0x118b,0x118b,0x118b,0x118b,0x118e,0x118b,0x168,0x168,0x168,0x168,0x168,0x168,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0x127b,0x127b,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xd68,0x11df,0x114,0x114,0x114,
+0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x11dc,0xb31,0xb31,0xb31,0xb31,
+0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xd8f,0xd80,0xd7a,0xd8c,
+0xd89,0xd83,0xd83,0xd92,0xd7d,0xd86,0x117,0x117,0x117,0x117,0x117,0x117,0xe10,0xe10,0xdfb,0xe10,
+0xe13,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0x11d,0x11d,0x11d,0x11d,0xe0a,0xe0a,0xe0a,0xe0a,
+0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe1c,0xe1c,0xe01,0xe07,0xe1c,0xe1c,0xe04,0xe01,0xe01,0xe01,
+0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,0xdfe,
+0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0xe01,0x11d,0x11d,0x11d,0xf21,0xf18,0xf21,0xf18,
+0xf21,0xf18,0xf21,0xf18,0xf15,0xf12,0xf12,0xf21,0xf18,0x11e5,0x11e2,0x120,0x11e5,0x11e2,0x1281,0x127e,
+0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x11e5,0x11e2,0x11e5,0x11e2,
+0x11e5,0x11e2,0x11e5,0x11e2,0x11e5,0x11e2,0x1281,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
+0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
+0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x1284,0x1284,0x11e2,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
 0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,
-0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,
-0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,
-0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
-0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
-0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe8b,0xea6,0xe9d,0xe9a,0xe9a,0xea6,0xea6,0xe9d,
-0xe9d,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xea6,0xea6,0xea6,0xe8b,0xe8b,0xe8b,0xe8b,0xea6,0xea6,0xea6,
-0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe8b,0xe9d,0xea0,0xe8b,0xe8b,0xea3,
-0xea3,0xea3,0xea3,0xea3,0xea3,0xe8e,0xea6,0xea3,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,
-0xe97,0xe97,0x1005,0x1005,0x1002,0xfff,0xe94,0xe94,0xec1,0xec1,0xec1,0xec1,0x1152,0x1152,0x1152,0x1152,
-0x1152,0x114f,0x114f,0x114f,0x114f,0x1152,0x11c4,0x1152,0x1152,0x1152,0x114f,0x1152,0x1152,0x114f,0x114f,0x114f,
-0x1152,0x1152,0x114f,0x114f,0x1152,0x114f,0x114f,0x1152,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
-0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
-0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf1b,0xf18,0xf18,0xf18,0xf18,0xf18,0xf18,0xf18,
-0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf21,0xf18,0xf24,0xf24,0xf2a,0xf30,0xf30,0xf30,0xf30,0xf30,
-0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,
-0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf2a,0xf24,0xf24,0xf24,0xf24,0xf2a,0xf2a,
-0xf24,0xf24,0xf2d,0x1287,0x128a,0x128a,0xf30,0xf30,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,
-0xf27,0xf27,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,
-0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,
-0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,
-0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,
-0xf51,0xf51,0xf51,0xf54,0xf51,0xf51,0xf57,0xf57,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,
-0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,
-0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
-0xf63,0xf63,0xf63,0xf63,0xf66,0xf5d,0xf6c,0xf69,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
-0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
-0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0x11eb,0x11e8,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,
-0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7b,0xf72,0xf6f,0xf6f,0xf6f,0xf75,0x1290,0x1290,0x1290,0x1290,
-0x1290,0x1290,0x1290,0x1290,0xf72,0xf72,0xf75,0xf81,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,
+0xe2b,0xe2b,0xe2b,0xe2b,0xe28,0xe28,0xe2e,0xe2e,0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x123,
+0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,
+0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe31,0xe31,0xe31,0xe31,0x1041,0x1041,0x126,0x126,0x126,0xe34,
+0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0x129,
+0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
+0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
+0xe40,0xe40,0xe40,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,
+0xe3d,0xe3d,0xe3d,0xe3d,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,
+0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,
+0xe43,0xe43,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,
+0xf45,0xf45,0xf45,0xf45,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf42,0xf33,0xf33,0xf33,0xf33,
+0xf33,0xf33,0xf33,0xf33,0xf42,0xf42,0xf39,0xf36,0x132,0x132,0x132,0xf48,0xf48,0xf3c,0xf3c,0xf3c,
+0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0x132,0x132,0x132,0xf45,0xf45,0xf45,
+0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,
+0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf63,0xf63,0x135,0x135,0x135,0x135,
+0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
 0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,
-0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf8a,0xf8a,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,
-0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,
-0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,
-0xf8a,0xf8a,0xf8a,0xf8a,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf93,0xf93,0xf93,0xf93,0xf93,0xf96,
-0xf96,0xf96,0xf99,0xfa2,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,
-0xfb1,0xfb1,0xfb1,0xfb1,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9f,0xf9f,
-0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,
-0xf9f,0xf9f,0xf9f,0xf9f,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,
-0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,
-0xfc0,0xfc0,0xfc0,0xfc0,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,
+0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x1290,
+0xf8a,0xf8a,0xf8a,0xf8a,0xf84,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0xf90,0xf90,
+0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,
+0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,
+0xfa5,0xfa5,0xfab,0xfae,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0xfa8,
+0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfbd,
+0xfbd,0xfb4,0xfb4,0xfbd,0xfbd,0xfb4,0xfb4,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,
+0xfc0,0xfc0,0xfc0,0xfb4,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfb4,0xfbd,0x141,0x141,
+0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0xfba,0x141,0x141,0xfb7,0xfc3,0xfc3,0xfc3,
+0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,
+0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,
+0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,
+0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfcc,0x147,0x147,
+0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,
+0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0x14a,0x14a,0x14a,
 0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,
-0xfd2,0xfd2,0xfd2,0xfd2,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,
-0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,
-0xfdb,0xfdb,0xfdb,0xfdb,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,
+0xfd2,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,
+0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,
+0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0x150,0x150,0x150,0x150,0x150,0xfd5,
+0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0x153,0x153,0x153,0x153,
 0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,
-0xfde,0xfde,0xfde,0xfde,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
-0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1047,0x1047,0x104a,0x104a,0x1050,0x1047,
-0x1047,0x1047,0x1047,0x1047,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,
+0xfde,0xfde,0xfde,0xfde,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,
+0x1047,0x1047,0x1047,0x1047,0x1050,0x1047,0x1047,0x1047,0x1050,0x1047,0x1047,0x1047,0x1047,0x1044,0x159,0x159,
+0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x159,
 0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,
-0x1053,0x1053,0x1053,0x1053,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,
+0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,
 0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,
-0x106e,0x106e,0x106e,0x106e,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
-0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
-0x1080,0x1080,0x107d,0x1083,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,
+0x106e,0x106e,0x106e,0x106e,0x106e,0x106b,0x1056,0x106b,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x15f,
+0x105f,0x1068,0x1056,0x1068,0x1068,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x106b,0x106b,0x106b,
+0x106b,0x106b,0x106b,0x1056,0x1056,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x15f,0x15f,0x1059,
+0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,
+0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x1065,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,
+0x1194,0x1188,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x107a,0x107a,0x107a,0x107a,0x1194,0x107a,0x107a,
+0x107a,0x107a,0x1185,0x1323,0x1326,0x1293,0x1293,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,0x162,
 0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,
-0x108f,0x108f,0x108f,0x108f,0x109e,0x109e,0x109e,0x10ad,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,
-0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,
-0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10a1,0x10ad,0x10ad,0x109e,0x109e,0x109e,0x109e,0x10ad,0x10ad,
-0x109e,0x10ad,0x10ad,0x10ad,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10c5,0x10d1,0x10c5,0x10c5,0x10c5,0x10da,0x10da,0x10c5,0x10c5,0x10da,0x10d1,0x10da,
-0x10da,0x10d1,0x10c5,0x10c8,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
-0x10d1,0x10d1,0x10d1,0x10d1,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,
-0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,
-0x10ec,0x10ec,0x10ec,0x10ec,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,
-0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,
-0x1104,0x1101,0x1101,0x1101,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
+0x1086,0x1086,0x1089,0x1092,0x108c,0x108c,0x108c,0x1092,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,
+0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,
+0x1095,0x1095,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x1098,0x1098,0x1098,0x109b,0x16b,0x16b,0x16b,0x16b,
+0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,
+0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x16e,0x16e,0x16e,
+0x10b0,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a7,0x10b6,0x10b6,0x10a4,0x10a4,0x10a4,0x10a4,0x171,0x1191,
+0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x171,0x171,0x171,0x171,0x10a4,0x10a4,
+0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,
+0x10c2,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10b9,0x10b9,0x10b9,0x10bf,0x10bc,0x174,0x174,0x174,0x174,
+0x10d4,0x10c8,0x10d4,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,
+0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x10d1,0x10d1,0x10d7,0x10cb,0x10ce,
+0x10ec,0x10ec,0x10ec,0x10e6,0x10e6,0x10dd,0x10e6,0x10e6,0x10dd,0x10e6,0x10e6,0x10ef,0x10e9,0x10e0,0x17a,0x17a,
+0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,
+0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x17d,0x17d,0x17d,0x17d,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,
+0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,
+0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x17d,0x17d,0x17d,0x17d,0x10fe,0x10fe,0x10fe,0x10fe,
+0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,0x10fe,
+0x10fe,0x10fe,0x180,0x10fb,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x110d,0x110d,0x110d,0x110d,
 0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
-0x110d,0x110d,0x110d,0x110d,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
-0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
-0x111c,0x111c,0x111c,0x111c,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x113a,
-0x1137,0x1137,0x1137,0x1137,0x1134,0x1134,0x1134,0x1128,0x1128,0x1128,0x1128,0x1134,0x1134,0x112e,0x112b,0x1131,
-0x1131,0x1122,0x113d,0x113d,0x1125,0x1125,0x1134,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,
-0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x113a,0x1137,
-0x113a,0x1137,0x1137,0x1137,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
-0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
-0x1140,0x1140,0x1140,0x1140,0x1146,0x1146,0x1146,0x1143,0x1143,0x1143,0x1140,0x1140,0x1140,0x1140,0x1143,0x1140,
-0x1140,0x1140,0x1146,0x1143,0x1146,0x1143,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
-0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
-0x1140,0x1146,0x1143,0x1143,0x1140,0x1140,0x1140,0x1140,0x1152,0x1152,0x11c4,0x114f,0x11c4,0x11c4,0x11c4,0x11c4,
-0x114f,0x114f,0x1152,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f,0x1152,0x1152,0x1152,0x1152,0x1152,0x114f,0x1152,
-0x1152,0x1152,0x1152,0x114f,0x114f,0x1152,0x1152,0x1152,0x123f,0x123f,0x1167,0x123f,0x123f,0x123f,0x1167,0x123f,
-0x123f,0x123f,0x1167,0x1167,0x1167,0x1167,0x1167,0x123f,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,
-0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
+0x110d,0x110d,0x183,0x183,0x183,0x1107,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x1113,0x1113,0x1113,0x1113,
+0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,
+0x1113,0x1113,0x186,0x186,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1119,0x1119,0x1119,0x1119,
+0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x189,
+0x189,0x189,0x189,0x189,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x1116,0x111f,0x111f,0x111f,0x111f,
+0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
+0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x18f,0x113d,0x113d,0x192,0x192,
+0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x1305,0x1305,0x1305,0x1305,
+0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1305,0x1161,0x1161,0x1161,0x1161,
+0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x198,0x198,0x198,0x198,0x198,0x1161,0x1161,0x1161,0x1161,
+0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1164,
+0x1164,0x1164,0x1149,0x198,0x123f,0x1167,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,
+0x123f,0x1167,0x123f,0x1167,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x1296,0x1296,
+0x198,0x198,0x198,0x198,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x123c,0x115e,
+0x115e,0x123c,0x123c,0x115e,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x115e,
+0x115e,0x115e,0x123c,0x123c,0x1167,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x198,
+0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,
+0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,
+0x198,0x198,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,
+0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x117f,0x1248,0x1248,0x19b,
+0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x117c,0x117c,0x117c,0x117c,
+0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x1248,0x1248,
+0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x19b,0x19b,0x19b,0x19b,0x19b,0x1179,0x1179,0x1179,0x1179,
+0x1179,0x1179,0x1179,0x1179,0x1179,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x1245,0x1245,0x19b,0x19b,
+0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
+0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
+0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,
+0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f1,0x11f1,0x11f1,0x19e,0x19e,0x11f4,0x19e,
+0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x11fa,0x1203,0x11fd,0x11fd,0x1203,0x1203,0x1203,0x11fd,0x1203,0x11fd,
+0x11fd,0x11fd,0x1206,0x1206,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1200,0x1200,0x1200,0x1200,
+0x1a4,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1a4,0x1a4,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1a4,
+0x1a4,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
+0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x1212,0x1224,0x1224,0x1218,0x1218,0x1218,0x1218,0x1218,0x1a7,0x1a7,
+0x1a7,0x1a7,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,
+0x1215,0x1215,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x1a7,0x1a7,0x1a7,0x1a7,
+0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1227,0x1227,0x1227,0x1227,
+0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
+0x1227,0x1227,0x1227,0x1227,0x1227,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x124e,0x124b,0x1ad,0x1ad,
+0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
+0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
+0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,
+0x1b0,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x1b0,
+0x1b0,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,
+0x1b0,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,
+0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
+0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
+0x1230,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1b3,0x1b3,0x1b3,
+0x122d,0x122d,0x122d,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1b3,0x1b3,
+0x1299,0x1299,0x1299,0x1299,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
+0x1b3,0x1b3,0x1b3,0x1230,0x1230,0x1230,0x1230,0x1230,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1b9,0x1b9,
+0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
+0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
+0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
+0x1239,0x1239,0x1239,0x1239,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,
+0x12a5,0x1bf,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x1bf,0x1bf,0x1bf,
+0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
+0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x12a2,0x12a2,0x12a2,0x12a2,
+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x1bf,0x12ab,0x12ab,0x12ab,0x12ab,
+0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
+0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,
+0x12ab,0x1c2,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,
+0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12ab,0x1c2,
+0x1c2,0x1c2,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,
+0x12ab,0x1c2,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x1c2,
+0x12ab,0x1c2,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,
+0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,
+0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
+0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12ab,0x12ab,0x12ab,
+0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,
+0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
+0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
+0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12a8,0x12a8,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
+0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12ae,
+0x12ae,0x12ae,0x12ae,0x12ae,0x12bd,0x12ae,0x12b1,0x12b1,0x12ae,0x12ae,0x12ae,0x12b4,0x12b4,0x1c5,0x12ba,0x12ba,
+0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,0x12ba,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,0x12cf,
+0x12cf,0x12cf,0x12cf,0x12cc,0x12c6,0x12c6,0x12cc,0x12cc,0x12d5,0x12d5,0x12cf,0x12d2,0x12d2,0x12cc,0x12c9,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,
+0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,
+0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x12d8,0x12d8,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
+0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,
+0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x1ce,0x1ce,0x1ce,
+0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x12e4,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,
+0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,
+0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,
+0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x12de,0x12de,0x12de,0x12de,0x12e7,
+0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12e7,0x12f9,0x12fc,0x12fc,0x12fc,
+0x12fc,0x12ff,0x12ff,0x12ed,0x12f0,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x12f3,0x12f3,0x12f3,0x12f3,
+0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1305,0x1305,0x1305,0x1305,
+0x1305,0x1305,0x1305,0x1305,0x1305,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1302,0x1302,0x1302,0x1302,
+0x1302,0x1302,0x1302,0x1302,0x1302,0x1302,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1308,0x1308,0x1308,0x1308,
+0x1308,0x1308,0x1308,0x1308,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1194,0x1194,0x1194,0x1077,
+0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x1194,0x131a,0x131a,0x131a,0x131a,
+0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x130b,0x1314,0x130b,0x1314,0x1314,0x130b,0x130b,0x130b,0x130b,
+0x130b,0x130b,0x1317,0x130e,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1dd,0x1dd,0x1dd,0x1dd,
+0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,
+0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x855,0x855,
+0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,
+0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,
+0xfea,0xfea,0xfea,0xfea,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x1170,0x131d,0x1e3,0x1e3,0x1e3,
+0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
+0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0x1173,0x1173,0x1173,0x1e6,0x1e6,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,
+0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,
+0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0xa74,0xa74,0xa74,0xa74,
+0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
+0xa74,0xa74,0xa74,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0x1ec,0x1ec,0x1182,0x1182,0x1182,0x1182,
 0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
-0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,
+0x1182,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1251,0x1251,0x1251,0x1251,
+0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
+0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1f2,0x1f2,0xff0,0x2f1,0x2f1,0x2fd,
+0xb9a,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x2fd,0x2f1,0x2f1,0x2f1,
+0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2fd,0x2fd,0x2fd,0x2fd,0x2f7,0xff3,0x11a0,0x300,0x83d,0x83d,0x2f4,
+0x2f4,0xff0,0x119d,0x119d,0x303,0x303,0x303,0x303,0x303,0x303,0x303,0x303,0x300,0x300,0x300,0x300,
+0x300,0x300,0x300,0x300,0x300,0x303,0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x303,0x300,0x300,
+0x303,0x300,0x300,0x300,0x300,0x300,0x119d,0x11a0,0x2f4,0x300,0x2fd,0x2fd,0x3ed,0x3ed,0x3ed,0x3ed,
+0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,
+0x3ed,0x3ed,0x3ed,0xa92,0xa92,0xc90,0xc90,0x3ea,0xc93,0x1260,0x1260,0x1260,0x3f0,0x3f0,0x3f0,0x3f0,
+0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,
+0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f6,0x3f6,0x3f6,0x100b,
+0x100b,0x100b,0x100b,0x100b,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,
+0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,
+0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x1008,0x1008,0x1008,0x1008,0x1008,0x1008,0x3f9,0x3f6,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
+0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
+0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
+0x402,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3ff,0x897,0xeac,0xeac,0xeaf,0xeac,0x402,0x3fc,0x402,0x3fc,
+0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,
+0x402,0x3fc,0x402,0x3fc,0x402,0x3fc,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0x40e,0x40e,0x40e,0x40e,
+0x40e,0x40e,0x40e,0x40e,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x40e,0x40e,0x40e,0x40e,
+0x40e,0x40e,0x40e,0x40e,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x5c7,0x5c7,0x5ca,0x42c,
+0x5d6,0x5d3,0x5d3,0x5d0,0x456,0x456,0x414,0x414,0x414,0x414,0x414,0x9c6,0x5d9,0x438,0x5f1,0x5f4,
+0x44d,0x5d9,0x43b,0x43b,0x42c,0x447,0x447,0x5c7,0x453,0x450,0x5cd,0x426,0x41d,0x41d,0x420,0x420,
+0x420,0x420,0x420,0x423,0x420,0x420,0x420,0x417,0x45c,0x45c,0x459,0x459,0x5e5,0x441,0x43e,0x5e2,
+0x5df,0x5dc,0x5ee,0x42f,0x5eb,0x5eb,0x444,0x447,0x5e8,0x5e8,0x444,0x447,0x429,0x42c,0x42c,0x42c,
+0x44a,0x435,0x432,0xaa7,0x9cc,0x9cc,0x9c9,0x9c9,0x9c9,0x9c9,0xa9e,0xa9e,0xa9e,0xa9e,0xaa4,0xbc7,
+0xbc4,0xc9f,0xca2,0xaa1,0xca2,0xca2,0xca2,0xca2,0xc9f,0xca2,0xca2,0xa9b,0x48f,0x48f,0x4a7,0x606,
+0x48c,0x600,0x48f,0x4a4,0x48c,0x606,0x49e,0x4a7,0x4a7,0x4a7,0x49e,0x49e,0x4a7,0x4a7,0x4a7,0x60c,
+0x48c,0x4a7,0x609,0x48c,0x49b,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x48c,0x48c,0x492,0x600,0x603,0x48c,
+0x4a7,0x48c,0x60f,0x48c,0x4a7,0x495,0x4ad,0x612,0x4a7,0x4a7,0x498,0x49e,0x4a7,0x4a7,0x4aa,0x4a7,
+0x49e,0x4a1,0x4a1,0x4a1,0x4a1,0x9d8,0x9d5,0xbca,0xcb1,0xac2,0xac5,0xac5,0xabf,0xabc,0xabc,0xabc,
+0xabc,0xac5,0xac2,0xac2,0xac2,0xac2,0xab9,0xabc,0xcae,0xdb9,0xdbc,0xeb8,0x101a,0x101a,0x101a,0x618,
+0x615,0x4b0,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x615,0x618,0x618,0x615,0x4b3,0x61e,0x61e,0x61e,0x61e,
+0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x4bc,0x4bc,0x4bc,0x4bc,0x61b,0x61b,0x61b,0x61b,
+0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4c2,0x4c2,0x4c2,0x4c2,
+0x4c2,0x4c2,0x4c2,0x4c2,0x4bf,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c5,0x4bf,0x4c2,0x4c2,0x4bf,0x4bf,
+0x4bf,0x4bf,0x4c2,0x4c2,0x621,0x621,0x4bf,0x4bf,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,
+0x4c2,0x4c2,0x4c2,0x4c2,0x4c2,0x4c5,0x4c5,0x4c5,0x4c2,0x4c2,0x624,0x4c2,0x624,0x4c2,0x4c2,0x4c2,
+0x4c2,0x4c2,0x4c2,0x4c2,0x4bf,0x4c2,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4c2,0x4c2,0x4bf,0x621,
+0x4bf,0x4bf,0x4bf,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0xac8,0xac8,0xac8,0xac8,
+0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0x627,0x4c8,0x627,0x627,0x4cb,0x4c8,0x4c8,0x627,
+0x627,0x4cb,0x4c8,0x627,0x4cb,0x4c8,0x4c8,0x627,0x4c8,0x627,0x4d4,0x4d1,0x4c8,0x627,0x4c8,0x4c8,
+0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x627,0x627,0x627,0x627,0x4c8,0x4c8,0x627,0x4cb,0x627,0x4cb,0x627,
+0x627,0x627,0x627,0x627,0x62d,0x4ce,0x627,0x4ce,0x4ce,0x4c8,0x4c8,0x4c8,0x627,0x627,0x627,0x627,
+0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x627,0x4c8,0x4c8,0x4c8,0x4cb,0x4c8,0x4c8,0x4cb,0x4c8,0x4c8,0x4cb,
+0x627,0x4cb,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x62a,0x627,0x4cb,0x4c8,0x627,0x627,0x627,0x627,
+0x4c8,0x4c8,0x627,0x627,0x4c8,0x4cb,0x62a,0x62a,0x4cb,0x4cb,0x4c8,0x4c8,0x4cb,0x4cb,0x4c8,0x4c8,
+0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x627,0x627,0x4cb,0x4cb,0x627,0x627,
+0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,
+0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
+0x4cb,0x4cb,0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
+0x4c8,0x4c8,0x4c8,0x627,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,
+0x4cb,0x4cb,0x4c8,0x4c8,0x4c8,0x4c8,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,
+0xacb,0xacb,0xacb,0xacb,0x4d7,0x9e1,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4e0,0x4e0,0x4e0,0x4e0,
+0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x630,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,
+0x4d7,0x4d7,0x4d7,0x4d7,0x4dd,0x4dd,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x723,0x720,0x4d7,
+0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,
+0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,
+0x4d7,0x4d7,0x4d7,0x9e1,0xad1,0x9e1,0x9e1,0x9e1,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,
+0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,
+0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,
+0x639,0x639,0x4e9,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,
+0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xc39,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
+0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x4ec,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
+0x63f,0x63f,0x63f,0x63f,0x4ef,0x4ef,0x4ef,0x4ef,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
+0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,
+0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x642,0x4f2,0x4f2,0x642,0x642,0x642,0x642,0xad4,0xad4,
+0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0x648,0x648,0x4f5,0x645,0x645,0x645,0x645,0x645,
+0x645,0x645,0x4f5,0x4f5,0x4f5,0x4f5,0x4f8,0x4f8,0x4f8,0x4f8,0x648,0x648,0x4f8,0x4f8,0x648,0x648,
+0x4f5,0x4f5,0x4f5,0x4f5,0x648,0x648,0x4f8,0x4f8,0x648,0x648,0x4f5,0x4f5,0x4f5,0x4f5,0x648,0x648,
+0x645,0x4f5,0x4f8,0x648,0x4f5,0x4f5,0x645,0x648,0x648,0x648,0x4f8,0x4f8,0x4f5,0x4f5,0x4f5,0x4f5,
+0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x648,0x645,0x648,0x645,0x4f5,0x4f8,
+0x4f8,0x4f8,0x4f8,0x4f8,0x4f8,0x4f5,0x4f5,0x645,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,
+0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0x4fe,0x4fe,0x4fe,0x4fe,0x4fb,0x651,0x651,0x4fb,
+0x4fb,0x64b,0x4fb,0x4fb,0x4fb,0x4fb,0x64b,0x64b,0x4fb,0x4fb,0x4fb,0x4fb,0xc3c,0xc3c,0xada,0xada,
+0xcba,0x9ea,0x4fe,0x4fe,0x64e,0x4fe,0x64e,0x4fe,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
+0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
+0x4fb,0x4fe,0x4fe,0x4fe,0x4fb,0x4fb,0x4fb,0x4fb,0x651,0x4fb,0x651,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
+0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,
+0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x4fb,0x651,0x651,0x501,0x651,0x64b,0x64b,0x4fb,0x64b,
+0x64e,0x64b,0x64b,0x4fb,0x64b,0x651,0x501,0x651,0x9ea,0x9ea,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xcb7,0xcba,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,
+0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x504,0x507,0x11c7,0x11c7,0x11c7,
+0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,0x507,0x507,0x507,0x507,0x507,0x507,0x507,
+0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x657,0x507,0x507,
+0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,0x507,0x11c7,0x507,
+0x507,0x507,0x507,0x11c7,0x11c7,0x11c7,0x507,0x1155,0x507,0x507,0x507,0x510,0x510,0x510,0x510,0x11c7,
+0x11c7,0x507,0x50a,0x50a,0x507,0x507,0x507,0x507,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,
+0xae3,0xae0,0xae3,0xae0,0xae3,0xae0,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,0x654,
+0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,
+0x11c7,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x507,0x11c7,
+0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x534,
+0x534,0x534,0x534,0x534,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x531,0x537,0x52b,0x528,
+0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
+0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x52e,0x52e,
+0x52e,0x52e,0x52e,0x52e,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
+0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
+0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
+0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,
+0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,
+0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x534,0x53a,
+0x537,0x531,0x537,0x531,0x534,0x53a,0x537,0x531,0x534,0x53a,0x537,0x531,0x537,0x531,0x11cd,0x11cd,
+0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x11cd,0x537,0x531,0x537,0x531,
+0x537,0x531,0x534,0x53a,0x534,0x53a,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,0x537,0x531,
+0x537,0x531,0x537,0x531,0x534,0x537,0x531,0x534,0x537,0x531,0x534,0x53a,0x531,0x531,0x531,0x531,
+0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
+0x531,0x531,0x531,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x537,0x537,0x537,0x537,
+0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x531,0x531,0x531,
+0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x531,0x534,
+0x531,0x534,0x531,0x531,0x534,0x531,0x531,0x534,0x531,0x534,0x531,0x531,0x534,0x531,0x534,0x534,
+0x531,0x531,0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x531,
+0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
+0x534,0x534,0x531,0x531,0x534,0x531,0x534,0x531,0x531,0x531,0x531,0x531,0x534,0x534,0x534,0x534,
+0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,
+0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x534,0x53a,
+0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
+0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
+0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,
+0x53a,0x53a,0x53a,0x53a,0x53a,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
+0x54c,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x54c,
+0x546,0x549,0x54f,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
+0x54f,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
+0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,
+0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x54f,0x54c,0x546,0x549,0x636,0x636,0x636,0x636,
+0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,0x636,
+0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,
+0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,
+0x633,0x633,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
+0x63c,0x63c,0x63c,0x63c,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,0x639,
+0x639,0x639,0x639,0x639,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
+0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,0x63f,
+0x63f,0x63f,0x63f,0x63f,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0xb34,0x7e3,0x7dd,0x7da,0x7e0,0x7d7,0x66f,0x672,0x672,0x672,0x672,0x672,
+0x672,0x672,0x672,0x672,0x7e9,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,
+0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,
+0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x7e6,0x7e6,0x675,0x7f8,0x7fb,0x801,0x726,0x732,0x816,0x72f,
+0x7ef,0x7ec,0x7ef,0x7ec,0x7f5,0x7f2,0x7f5,0x7f2,0x7ef,0x7ec,0x72c,0x801,0x7ef,0x7ec,0x7ef,0x7ec,
+0x7ef,0x7ec,0x7ef,0x7ec,0x807,0x80d,0x80a,0x80a,0x67b,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b1,
+0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,0x6b1,
+0x6b1,0x6b1,0x6b1,0x67e,0x699,0x678,0x69f,0x6a2,0x69c,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6b4,0x6ae,
+0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,
+0x6ae,0x6ae,0x6ae,0x67e,0x699,0x678,0x699,0xb37,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,
+0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,
+0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x116a,0x116a,0x116a,0x116a,0x116a,0x71d,
+0x72c,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x846,0x846,0x846,0x846,0x735,0x735,
+0x804,0x813,0x813,0x813,0x813,0x810,0x729,0x7fe,0xa0e,0xa0e,0xa0e,0xb46,0xb64,0xb61,0xa29,0x7d4,
+0x73b,0x738,0x73b,0x73e,0x738,0x73b,0x738,0x73b,0x738,0x73b,0x738,0x738,0x738,0x738,0x738,0x738,
+0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x73b,0x73b,0x738,0x738,
+0xb67,0x74d,0x747,0x74d,0x747,0x74d,0x747,0x74d,0x747,0x74d,0x747,0x747,0x74a,0x747,0x74a,0x747,
+0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,
+0x74a,0x747,0x74a,0x74d,0x747,0x74a,0x747,0x74a,0x747,0x74a,0x747,0x747,0x747,0x747,0x747,0x747,
+0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x74a,0x74a,0x747,0x747,
+0x747,0x747,0x747,0x74d,0x747,0x74d,0x747,0x74d,0x747,0x747,0x747,0x747,0x747,0x747,0x74d,0x747,
+0x747,0x747,0x747,0x747,0x74a,0x74d,0x74d,0x74a,0x74a,0x74a,0x74a,0x81c,0x81f,0x750,0x753,0xb4f,
+0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
+0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
+0x75c,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,
+0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x765,0x765,0x765,0x765,
+0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
+0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0xc48,0xc48,0xd71,0x75f,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0xc42,0xc42,0xc42,0xc42,0x768,0x768,0x768,0x768,
+0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x768,0x82e,0x82e,0x82e,0x82e,
+0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x76b,0x76b,0x76b,
+0x76b,0x76b,0x76b,0xc4b,0xc4b,0xc4b,0xc4b,0x831,0x831,0x831,0x831,0x831,0x76b,0x76b,0x76b,0x76b,
+0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,
+0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0xc4b,0xc4b,
+0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,
+0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,
+0xfea,0xfea,0xfea,0xfea,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,
+0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,
+0x774,0x774,0x774,0x774,0x774,0x774,0x777,0x777,0x774,0x777,0x774,0x777,0x777,0x774,0x774,0x774,
+0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x777,0x774,0x777,0x774,0x777,0x777,0x774,0x774,0x777,
+0x777,0x777,0x774,0x774,0x774,0x774,0x1320,0x1320,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x116d,0x116d,0x116d,0x116d,0x1158,0x1158,0x1158,0x1158,
+0x1158,0x1158,0x1158,0x1158,0xc42,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
+0xb52,0xb52,0xb52,0xb52,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
+0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,
+0x82b,0x82b,0x82b,0x82b,0x82b,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,
+0xb52,0xb52,0xb52,0xb52,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,
+0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,
+0x82e,0x82e,0x82e,0xc4b,0x891,0x873,0x873,0x873,0x873,0x86d,0x873,0x873,0x885,0x873,0x873,0x870,
+0x87c,0x882,0x882,0x882,0x882,0x882,0x885,0x86d,0x879,0x86d,0x86d,0x86d,0x864,0x864,0x86d,0x86d,
+0x86d,0x86d,0x86d,0x86d,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x888,0x86d,0x86d,
+0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x870,0x864,0x86d,0x864,0x86d,0x864,0x87f,0x876,
+0x87f,0x876,0x88e,0x88e,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,
+0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,
+0x89d,0x89d,0x89d,0x89d,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,
+0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,
+0x8a0,0x8a0,0x8a0,0x8a0,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,
+0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,
+0x8a3,0x8a3,0x8a3,0x8a3,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
+0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
+0x8ac,0x8ac,0x8a6,0x8a6,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
+0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
+0x8af,0x8af,0x8a9,0x8a9,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
+0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,
+0x8ac,0x8ac,0x8ac,0x8ac,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
+0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,0x8af,
+0x8af,0x8af,0x8af,0x8af,0x8b2,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,
+0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,
+0x8b2,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,
+0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x8b5,0x942,0x942,0xea6,0x942,
+0x942,0x942,0x945,0x942,0xea6,0x942,0x942,0xe9d,0x93c,0x930,0x930,0x930,0x930,0x93f,0x930,0xe8b,
+0xe8b,0xe8b,0x930,0x933,0x93c,0x936,0xe91,0xea0,0xea0,0xe8b,0xe8b,0xea6,0xa2f,0xa2f,0xa2f,0xa2f,
+0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0x948,0x948,0x939,0x939,0x939,0x939,0x942,0x942,0x942,0x942,
+0x942,0x942,0x93f,0x93f,0x930,0x930,0xea6,0xea6,0xea6,0xea6,0xe8b,0xe8b,0x942,0x942,0x942,0x942,
+0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
+0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0xc9c,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0x957,0x957,0x957,0x957,0xc9c,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
+0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
+0x963,0x963,0x963,0x963,0x963,0x960,0x966,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x1011,
+0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x1011,0x100e,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
+0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,
+0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x99c,0x99c,0x99c,0x99f,
+0x99f,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
+0x984,0x984,0x999,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x999,0x999,0x99c,0x99c,0x99c,0x99c,
+0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,
+0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x9ba,0x9ba,0x9ba,0x9ba,
+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,
+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9bd,
+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,
+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9e1,0x9e1,0x9e1,0x9e1,
+0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,
+0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0xad1,0xad1,0xad1,0xad1,0xad1,0x9ed,0x9ed,0x9ed,0x9ed,
+0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
+0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ff,0x9ff,0x9ff,0x9ff,
+0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,
+0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0xa05,0xa05,0xa05,0xa05,
+0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,
+0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa14,0xa14,0xa14,0xa14,
+0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,
+0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa17,0xa17,0xa17,0xa17,
+0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
+0xa17,0xa1a,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
+0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,
+0xa17,0xa17,0xa17,0xa17,0xa1d,0xa1d,0xb55,0xb55,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xb55,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,
+0xa1d,0xa1d,0xa1d,0xa1d,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xbd9,0xbd9,0xa44,0xa44,0xa44,0xa44,
+0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
+0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xbd6,0xbd6,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
+0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,
+0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,
+0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
+0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,
+0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa59,0xa59,0xa59,0xa59,0xa59,0xa50,0xa5c,0xa62,
+0xa62,0xa62,0xa56,0xa56,0xa56,0xa5f,0xa53,0xa53,0xa53,0xa53,0xa53,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,
+0xa4d,0xa4d,0xa4d,0xa62,0xa62,0xa62,0xa62,0xa62,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa59,0xa59,0xa62,0xa62,0xa62,0xa56,
+0xa56,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,
+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa62,0xa62,
+0xa62,0xa62,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa59,
+0xa59,0xa59,0xa59,0xa59,0xa6e,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa65,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa65,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa65,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa6e,0xa6e,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,
+0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6e,0xa6e,0xa6e,0xa6e,
+0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,
+0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,
+0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
+0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
+0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xace,0xad1,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,
+0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xbcd,0xbd0,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,
+0xcb4,0xcb4,0xcb4,0xcb4,0xdc5,0xdc5,0xdc5,0xdc5,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,
+0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xebe,0x114f,0x114f,0xcc0,0xcc0,0xcc0,0xcc0,0xcc0,0xcc6,0xcc3,0xdd7,
+0xdd7,0xdd7,0xdd7,0x1266,0xed0,0x1266,0x11d6,0x11d6,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
+0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb3d,0xb3a,0xb3d,0xb3a,0xb3d,0xb3a,
+0xfe4,0xfe1,0xed6,0xed3,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
+0xb13,0xb13,0xb13,0xb13,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,
+0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,
+0xb16,0xb16,0xb16,0xb16,0xb19,0xb19,0xb19,0xb1f,0xb1c,0xb43,0xb40,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,
+0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb1f,0xb1c,0xb19,0xb19,0xb19,
+0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
+0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
+0xb1f,0xb1c,0xb1f,0xb1c,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
+0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
+0xb1f,0xb1c,0xb19,0xb19,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb28,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0xb22,0xb22,0xb22,0xb28,0xb28,0xb28,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb22,0xb22,0xb22,0xb22,0xb25,0xb22,0xb22,0xb22,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,
+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xbd3,0xbd3,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,
+0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xcb7,0xdc8,0xebe,0xebe,0xebe,0xebe,0xebe,
+0xebe,0xebe,0xebe,0xebe,0xebe,0x1020,0x1152,0x1152,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
+0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
+0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xbfd,0xbfd,
+0xbfd,0xbfd,0xbfd,0xbfa,0xc0f,0xc0f,0xc0f,0xc09,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
+0xc0f,0xc0f,0xc0f,0xc09,0xc0f,0xc0f,0xc0f,0xc0f,0xc03,0xc03,0xc0c,0xc0c,0xc0c,0xc0c,0xc00,0xc00,
+0xc00,0xc00,0xc00,0xc06,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,
+0xcc9,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
+0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc09,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
+0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc03,0xc03,0xc03,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
+0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
+0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,
+0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xccf,0xccf,0xccf,0xccf,0xccf,0xccf,0xdda,0xdda,0xdda,0xdda,
+0xdda,0xdda,0xdda,0xed9,0xed9,0xed9,0xed9,0xed9,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,
+0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,
+0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
+0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,
+0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc1b,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
+0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,
+0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
+0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,
+0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,
+0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,
+0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,
+0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,
+0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
+0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcd8,0xcd8,0xcd8,
+0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
+0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
+0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xd98,0xd98,0xced,0xced,0xddd,0xddd,0xddd,0xddd,
+0xddd,0xddd,0xddd,0xee5,0xee5,0xee5,0xee5,0xee5,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,
+0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,
+0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,
+0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xcfc,0xcf9,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
+0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
+0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
+0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
+0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,
+0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xde0,
+0xde0,0xde0,0xde0,0xee8,0xee8,0xee8,0xee8,0xee8,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
+0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
+0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,
+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd3e,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,
+0xd41,0xd41,0xd41,0xd44,0xd44,0xd44,0xd44,0xd44,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,
+0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd47,0xd50,
+0xef4,0xeee,0xefd,0xeeb,0xd4d,0xd4d,0xeeb,0xeeb,0xd62,0xd62,0xd53,0xd62,0xd62,0xd62,0xd59,0xd62,
+0xd62,0xd62,0xd62,0xd53,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,
+0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,
+0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,
+0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xdda,0xdda,0xdda,0xdda,0xed9,0xed9,0xed9,0xed9,
+0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xed9,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,
+0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xdfb,0xdfb,0xdfb,0xdfb,0xe0d,0xe16,0xe19,0xe16,
+0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe16,0xe16,0xe19,0xe16,0xe16,0xe16,0xe16,0xe16,
+0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,
+0xdfe,0xe0d,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xe10,0xdfb,0xe10,0xe0d,0xe0d,0xe22,0xe1f,0xe22,0xe22,
+0xe22,0xe1f,0xe1f,0xe22,0xe1f,0xe22,0xe1f,0xe22,0xe1f,0xf0f,0xf0f,0xf0f,0x103e,0xf06,0xf0f,0xf06,
+0xe1f,0xe22,0xe1f,0xe1f,0xf06,0xf06,0xf06,0xf06,0xf09,0xf0c,0x103e,0x103e,0xe25,0xe25,0xf21,0xf18,
+0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf18,0xf18,0xf21,0xf18,
+0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xe2b,0xe2b,0xe2b,0xe2b,
+0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,
+0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe3a,0xe3a,0xe3a,0xe3a,
+0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,
+0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe40,0xe40,0xe40,0xe40,
+0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,
+0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe40,0xe8b,0xea6,0xe9d,0xe9a,
+0xe9a,0xea6,0xea6,0xe9d,0xe9d,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xea6,0xea6,0xea6,0xe8b,0xe8b,0xe8b,
+0xe8b,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe8b,0xe9d,
+0xea0,0xe8b,0xe8b,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xe8e,0xea6,0xea3,0xe97,0xe97,0xe97,0xe97,
+0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0x1005,0x1005,0x1002,0xfff,0xe94,0xe94,0xec1,0xec1,0xec1,0xec1,
+0x1152,0x1152,0x1152,0x1152,0x1152,0x114f,0x114f,0x114f,0x114f,0x1152,0x11c4,0x1152,0x1152,0x1152,0x114f,0x1152,
+0x1152,0x114f,0x114f,0x114f,0x1152,0x1152,0x114f,0x114f,0x1152,0x114f,0x114f,0x1152,0xf21,0xf18,0xf21,0xf18,
+0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,
+0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf18,0xf1b,0xf18,0xf18,0xf18,
+0xf18,0xf18,0xf18,0xf18,0xf18,0xf21,0xf18,0xf21,0xf18,0xf21,0xf21,0xf18,0xf24,0xf24,0xf2a,0xf30,
+0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,
+0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf30,0xf2a,0xf24,0xf24,
+0xf24,0xf24,0xf2a,0xf2a,0xf24,0xf24,0xf2d,0x1287,0x128a,0x128a,0xf30,0xf30,0xf27,0xf27,0xf27,0xf27,
+0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0xf45,0xf45,0xf45,0xf45,
+0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,
+0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf45,0xf4e,0xf4e,0xf4e,0xf4e,
+0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,
+0xf4e,0xf4e,0xf4e,0xf4e,0xf51,0xf51,0xf51,0xf54,0xf51,0xf51,0xf57,0xf57,0xf5a,0xf5a,0xf5a,0xf5a,
+0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,
+0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf66,0xf5d,0xf6c,0xf69,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,
+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0x11eb,0x11e8,0xf7e,0xf78,
+0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7b,0xf72,0xf6f,0xf6f,0xf6f,0xf75,
+0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0x1290,0xf72,0xf72,0xf75,0xf81,0xf7e,0xf78,0xf7e,0xf78,
+0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,
+0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf7e,0xf78,0xf8a,0xf8a,0xf8d,0xf8d,
+0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,
+0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8a,0xf8a,0xf8a,0xf8a,
+0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf93,0xf93,
+0xf93,0xf93,0xf93,0xf96,0xf96,0xf96,0xf99,0xfa2,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,
+0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,0xf9c,
+0xf9c,0xf9c,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,
+0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,
+0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,
+0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,
+0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,
+0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,
+0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,
+0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfdb,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,
+0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,
+0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
+0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1047,0x1047,
+0x104a,0x104a,0x1050,0x1047,0x1047,0x1047,0x1047,0x1047,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,
+0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,
+0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,
+0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,
+0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x106e,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,
+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x107d,0x1083,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,
+0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,
+0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x109e,0x109e,0x109e,0x10ad,0x10b3,0x10b3,0x10b3,0x10b3,
+0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,
+0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10a1,0x10ad,0x10ad,0x109e,0x109e,
+0x109e,0x109e,0x10ad,0x10ad,0x109e,0x10ad,0x10ad,0x10ad,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
+0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10c5,0x10d1,0x10c5,0x10c5,0x10c5,0x10da,0x10da,0x10c5,
+0x10c5,0x10da,0x10d1,0x10da,0x10da,0x10d1,0x10c5,0x10c8,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
+0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
+0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,
+0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,
+0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,
+0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,
+0x1104,0x1104,0x1104,0x1104,0x1104,0x1101,0x1101,0x1101,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
+0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,
+0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
+0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
+0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,
+0x1137,0x1137,0x1137,0x113a,0x1137,0x1137,0x1137,0x1137,0x1134,0x1134,0x1134,0x1128,0x1128,0x1128,0x1128,0x1134,
+0x1134,0x112e,0x112b,0x1131,0x1131,0x1122,0x113d,0x113d,0x1125,0x1125,0x1134,0x1137,0x1137,0x1137,0x1137,0x1137,
+0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,
+0x1137,0x1137,0x113a,0x1137,0x113a,0x1137,0x1137,0x1137,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
+0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
+0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1146,0x1146,0x1146,0x1143,0x1143,0x1143,0x1140,0x1140,
+0x1140,0x1140,0x1143,0x1140,0x1140,0x1140,0x1146,0x1143,0x1146,0x1143,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
+0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,0x1140,
+0x1140,0x1140,0x1140,0x1140,0x1140,0x1146,0x1143,0x1143,0x1140,0x1140,0x1140,0x1140,0x1152,0x1152,0x11c4,0x114f,
+0x11c4,0x11c4,0x11c4,0x11c4,0x114f,0x114f,0x1152,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f,0x1152,0x1152,0x1152,
+0x1152,0x1152,0x114f,0x1152,0x1152,0x1152,0x1152,0x114f,0x114f,0x1152,0x1152,0x1152,0x123f,0x123f,0x1167,0x123f,
+0x123f,0x123f,0x1167,0x123f,0x123f,0x123f,0x1167,0x1167,0x1167,0x1167,0x1167,0x123f,0x123c,0x123c,0x123c,0x123c,
+0x123c,0x123c,0x123c,0x115e,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x115e,0x1182,0x1182,0x1182,0x1182,
+0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
+0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1209,0x1209,0x1209,0x1209,
 0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,
-0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x121e,0x120f,0x121e,0x1221,0x1221,0x1221,0x1221,0x1221,
+0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x121e,0x120f,0x121e,0x1221,
 0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,
-0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,
+0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x1221,0x120f,0x120f,0x120f,0x120f,
+0x120f,0x120f,0x120f,0x120f,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
 0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
-0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,0x1227,
+0x1227,0x1227,0x1227,0x1227,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x122d,0x1230,0x1230,0x1230,0x122d,0x1230,0x122d,0x1230,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x122d,0x1230,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,
+0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,0x122d,0x122d,0x122d,
+0x122d,0x122d,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
 0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x1230,0x1230,0x1230,
-0x122d,0x1230,0x122d,0x1230,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,
-0x1230,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,
-0x129c,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x129c,0x1233,0x1233,0x1233,0x129c,0x1233,0x129c,0x1233,0x129c,0x1233,0x129c,0x1233,0x1233,0x1233,0x129c,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x129c,0x129c,0x1233,0x1233,0x1233,0x1233,0x129c,0x1233,0x129c,0x129c,
-0x1233,0x1233,0x1233,0x1233,0x129c,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
+0x1230,0x1230,0x1230,0x1230,0x129c,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
+0x1233,0x1233,0x1233,0x1233,0x1233,0x129c,0x1233,0x1233,0x1233,0x129c,0x1233,0x129c,0x1233,0x129c,0x1233,0x129c,
+0x1233,0x1233,0x1233,0x129c,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x129c,0x129c,0x1233,0x1233,0x1233,0x1233,
+0x129c,0x1233,0x129c,0x129c,0x1233,0x1233,0x1233,0x1233,0x129c,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
+0x1233,0x1233,0x1233,0x1233,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,
 0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,
-0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,
+0x1236,0x1236,0x1236,0x1236,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
 0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
-0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,
+0x1239,0x1239,0x1239,0x1239,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
 0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
-0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,
-0x12ae,0x12ae,0x12ae,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,
+0x1251,0x1251,0x1251,0x1251,0x12ae,0x12ae,0x12ae,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,
 0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,0x12c0,
+0x12c0,0x12c0,0x12c0,0x12c0,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,
 0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,
-0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,
+0x12db,0x12db,0x12db,0x12db,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
 0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
-0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
-0x12ea,0x12ea,0x12f6,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,
+0x12e4,0x12e4,0x12e4,0x12e4,0x12ea,0x12ea,0x12f6,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,
 0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,
-0x12fc,0x12fc,0x12fc,0x12f6,0x12f6,0x12f6,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12f6,
+0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12f6,0x12f6,0x12f6,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,
+0x12ea,0x12ea,0x12ea,0x12f6,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,
 0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,
-0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,0x131a,
-0,0,0,0
+0x131a,0x131a,0x131a,0x131a,0,0,0,0
 };
 
 static const UTrie2 propsVectorsTrie={
@@ -2624,17 +2624,17 @@
     propsVectorsTrie_index+4128,
     NULL,
     4128,
-    19284,
+    19288,
     0xa40,
     0x10a0,
     0x0,
     0x0,
     0x110000,
-    0x5b70,
+    0x5b74,
     NULL, 0, FALSE, FALSE, 0, NULL
 };
 
-static const uint32_t propsVectors[4914]={
+static const uint32_t propsVectors[4917]={
 0x67,0,0,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,0,0,0xc67,
 0,0,0xd67,0,0,0xe67,0,0,0xf67,0,0,0x1067,0,0,0x1167,0,
 0,0x1267,0,0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,
@@ -2942,9 +2942,9 @@
 0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,
 0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,
 0x610a4f11,0x7c00300,0xe30001,0x6140af2d,0x6800100,0x962540,0x6180af2d,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63002800,0x80000,0x918820,0x63c00c09,
-0x80000,0x918820};
+0x80000,0x918820,0x70002a00,0x4000000,0x1600000};
 
-static const int32_t countPropsVectors=4914;
+static const int32_t countPropsVectors=4917;
 static const int32_t propsVectorsColumns=3;
 static const uint16_t scriptExtensions[74]={
 0x800e,0x8019,8,0x8019,3,0x800c,2,0x22,0x8025,2,6,2,0x22,0x8054,2,0x8022,
@@ -2953,5 +2953,5 @@
 0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x11,0x14,0x8016,5,0x8011,0xa,0xf,
 0x10,0x78,0x8099,0x37,0x804e,2,0x10,0x2f,0x8031,0};
 
-static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2318,0x2318,0x2318,0x2318,0x50d6,3,0x6408,0x642d,0x642d,0x642d,0xadca0,0x2774191,0,0,0,0};
+static const int32_t indexes[UPROPS_INDEX_COUNT]={0x231a,0x231a,0x231a,0x231a,0x50da,3,0x640f,0x6434,0x6434,0x6434,0xadca0,0x2774191,0,0,0,0};
 
diff --git a/common/ucnv2022.cpp b/common/ucnv2022.cpp
index 96ec698..8d00736 100644
--- a/common/ucnv2022.cpp
+++ b/common/ucnv2022.cpp
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 2000-2012, International Business Machines
+*   Copyright (C) 2000-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv2022.cpp
@@ -776,7 +776,7 @@
 
     while (hi != low)  /*binary search*/{
 
-        register int32_t mid = (hi+low) >> 1; /*Finds median*/
+        int32_t mid = (hi+low) >> 1; /*Finds median*/
 
         if (mid == oldmid)
             break;
diff --git a/common/ucol_swp.cpp b/common/ucol_swp.cpp
index b33268c..13e4673 100644
--- a/common/ucol_swp.cpp
+++ b/common/ucol_swp.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2003-2012, International Business Machines
+*   Copyright (C) 2003-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -18,6 +18,7 @@
 
 #include "unicode/udata.h" /* UDataInfo */
 #include "utrie.h"
+#include "utrie2.h"
 #include "udataswp.h"
 #include "cmemory.h"
 #include "ucol_data.h"
@@ -102,18 +103,28 @@
 
 #if !UCONFIG_NO_COLLATION
 
-/* Modified copy of the beginning of ucol_swapBinary(). */
 U_CAPI UBool U_EXPORT2
 ucol_looksLikeCollationBinary(const UDataSwapper *ds,
                               const void *inData, int32_t length) {
-    const UCATableHeader *inHeader;
-    UCATableHeader header;
-
     if(ds==NULL || inData==NULL || length<-1) {
         return FALSE;
     }
 
-    inHeader=(const UCATableHeader *)inData;
+    // First check for format version 4+ which has a standard data header.
+    UErrorCode errorCode=U_ZERO_ERROR;
+    (void)udata_swapDataHeader(ds, inData, -1, NULL, &errorCode);
+    if(U_SUCCESS(errorCode)) {
+        const UDataInfo &info=*(const UDataInfo *)((const char *)inData+4);
+        if(info.dataFormat[0]==0x55 &&   // dataFormat="UCol"
+                info.dataFormat[1]==0x43 &&
+                info.dataFormat[2]==0x6f &&
+                info.dataFormat[3]==0x6c) {
+            return TRUE;
+        }
+    }
+
+    // Else check for format version 3.
+    const UCATableHeader *inHeader=(const UCATableHeader *)inData;
 
     /*
      * The collation binary must contain at least the UCATableHeader,
@@ -121,6 +132,7 @@
      * sizeof(UCATableHeader)==42*4 in ICU 2.8
      * check the length against the header size before reading the size field
      */
+    UCATableHeader header;
     uprv_memset(&header, 0, sizeof(header));
     if(length<0) {
         header.size=udata_readInt32(ds, inHeader->size);
@@ -144,11 +156,13 @@
     return TRUE;
 }
 
-/* swap a header-less collation binary, inside a resource bundle or ucadata.icu */
-U_CAPI int32_t U_EXPORT2
-ucol_swapBinary(const UDataSwapper *ds,
-                const void *inData, int32_t length, void *outData,
-                UErrorCode *pErrorCode) {
+namespace {
+
+/* swap a header-less collation formatVersion=3 binary, inside a resource bundle or ucadata.icu */
+int32_t
+swapFormatVersion3(const UDataSwapper *ds,
+                   const void *inData, int32_t length, void *outData,
+                   UErrorCode *pErrorCode) {
     const uint8_t *inBytes;
     uint8_t *outBytes;
 
@@ -159,7 +173,7 @@
     uint32_t count;
 
     /* argument checking in case we were not called from ucol_swap() */
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+    if(U_FAILURE(*pErrorCode)) {
         return 0;
     }
     if(ds==NULL || inData==NULL || length<-1 || (length>0 && outData==NULL)) {
@@ -183,7 +197,7 @@
     if(length<0) {
         header.size=udata_readInt32(ds, inHeader->size);
     } else if((length<(42*4) || length<(header.size=udata_readInt32(ds, inHeader->size)))) {
-        udata_printError(ds, "ucol_swapBinary(): too few bytes (%d after header) for collation data\n",
+        udata_printError(ds, "ucol_swap(formatVersion=3): too few bytes (%d after header) for collation data\n",
                          length);
         *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
         return 0;
@@ -195,7 +209,7 @@
         inHeader->formatVersion[0]==3 /*&&
         inHeader->formatVersion[1]>=0*/
     )) {
-        udata_printError(ds, "ucol_swapBinary(): magic 0x%08x or format version %02x.%02x is not a collation binary\n",
+        udata_printError(ds, "ucol_swap(formatVersion=3): magic 0x%08x or format version %02x.%02x is not a collation binary\n",
                          header.magic,
                          inHeader->formatVersion[0], inHeader->formatVersion[1]);
         *pErrorCode=U_UNSUPPORTED_ERROR;
@@ -203,7 +217,7 @@
     }
 
     if(inHeader->isBigEndian!=ds->inIsBigEndian || inHeader->charSetFamily!=ds->inCharset) {
-        udata_printError(ds, "ucol_swapBinary(): endianness %d or charset %d does not match the swapper\n",
+        udata_printError(ds, "ucol_swap(formatVersion=3): endianness %d or charset %d does not match the swapper\n",
                          inHeader->isBigEndian, inHeader->charSetFamily);
         *pErrorCode=U_INVALID_FORMAT_ERROR;
         return 0;
@@ -327,44 +341,252 @@
     return header.size;
 }
 
+// swap formatVersion 4 ---------------------------------------------------- ***
+
+// The following are copied from CollationDataReader, trading an awkward copy of constants
+// for an awkward relocation of the i18n collationdatareader.h file into the common library.
+// Keep them in sync!
+
+enum {
+    IX_INDEXES_LENGTH,  // 0
+    IX_OPTIONS,
+    IX_RESERVED2,
+    IX_RESERVED3,
+
+    IX_JAMO_CE32S_START,  // 4
+    IX_REORDER_CODES_OFFSET,
+    IX_REORDER_TABLE_OFFSET,
+    IX_TRIE_OFFSET,
+
+    IX_RESERVED8_OFFSET,  // 8
+    IX_CES_OFFSET,
+    IX_RESERVED10_OFFSET,
+    IX_CE32S_OFFSET,
+
+    IX_ROOT_ELEMENTS_OFFSET,  // 12
+    IX_CONTEXTS_OFFSET,
+    IX_UNSAFE_BWD_OFFSET,
+    IX_FAST_LATIN_TABLE_OFFSET,
+
+    IX_SCRIPTS_OFFSET,  // 16
+    IX_COMPRESSIBLE_BYTES_OFFSET,
+    IX_RESERVED18_OFFSET,
+    IX_TOTAL_SIZE
+};
+
+int32_t
+swapFormatVersion4(const UDataSwapper *ds,
+                   const void *inData, int32_t length, void *outData,
+                   UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) { return 0; }
+
+    const uint8_t *inBytes=(const uint8_t *)inData;
+    uint8_t *outBytes=(uint8_t *)outData;
+
+    const int32_t *inIndexes=(const int32_t *)inBytes;
+    int32_t indexes[IX_TOTAL_SIZE+1];
+
+    // Need at least IX_INDEXES_LENGTH and IX_OPTIONS.
+    if(0<=length && length<8) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): too few bytes "
+                         "(%d after header) for collation data\n",
+                         length);
+        errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    int32_t indexesLength=indexes[0]=udata_readInt32(ds, inIndexes[0]);
+    if(0<=length && length<(indexesLength*4)) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): too few bytes "
+                         "(%d after header) for collation data\n",
+                         length);
+        errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    for(int32_t i=1; i<=IX_TOTAL_SIZE && i<indexesLength; ++i) {
+        indexes[i]=udata_readInt32(ds, inIndexes[i]);
+    }
+    for(int32_t i=indexesLength; i<=IX_TOTAL_SIZE; ++i) {
+        indexes[i]=-1;
+    }
+    inIndexes=NULL;  // Make sure we do not accidentally use these instead of indexes[].
+
+    // Get the total length of the data.
+    int32_t size;
+    if(indexesLength>IX_TOTAL_SIZE) {
+        size=indexes[IX_TOTAL_SIZE];
+    } else if(indexesLength>IX_REORDER_CODES_OFFSET) {
+        size=indexes[indexesLength-1];
+    } else {
+        size=indexesLength*4;
+    }
+    if(length<0) { return size; }
+
+    if(length<size) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): too few bytes "
+                         "(%d after header) for collation data\n",
+                         length);
+        errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    // Copy the data for inaccessible bytes and arrays of bytes.
+    if(inBytes!=outBytes) {
+        uprv_memcpy(outBytes, inBytes, size);
+    }
+
+    // Swap the int32_t indexes[].
+    ds->swapArray32(ds, inBytes, indexesLength * 4, outBytes, &errorCode);
+
+    // The following is a modified version of CollationDataReader::read().
+    // Here we use indexes[] not inIndexes[] because
+    // the inIndexes[] may not be in this machine's endianness.
+    int32_t index;  // one of the indexes[] slots
+    int32_t offset;  // byte offset for the index part
+    // int32_t length;  // number of bytes in the index part
+
+    index = IX_REORDER_CODES_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray32(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    // Skip the IX_REORDER_TABLE_OFFSET byte array.
+
+    index = IX_TRIE_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        utrie2_swap(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_RESERVED8_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): unknown data at IX_RESERVED8_OFFSET\n", length);
+        errorCode = U_UNSUPPORTED_ERROR;
+        return 0;
+    }
+
+    index = IX_CES_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray64(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_RESERVED10_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): unknown data at IX_RESERVED10_OFFSET\n", length);
+        errorCode = U_UNSUPPORTED_ERROR;
+        return 0;
+    }
+
+    index = IX_CE32S_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray32(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_ROOT_ELEMENTS_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray32(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_CONTEXTS_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray16(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_UNSAFE_BWD_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray16(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_FAST_LATIN_TABLE_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray16(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    index = IX_SCRIPTS_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        ds->swapArray16(ds, inBytes + offset, length, outBytes + offset, &errorCode);
+    }
+
+    // Skip the  IX_COMPRESSIBLE_BYTES_OFFSET byte array.
+
+    index = IX_RESERVED18_OFFSET;
+    offset = indexes[index];
+    length = indexes[index + 1] - offset;
+    if(length > 0) {
+        udata_printError(ds, "ucol_swap(formatVersion=4): unknown data at IX_RESERVED18_OFFSET\n", length);
+        errorCode = U_UNSUPPORTED_ERROR;
+        return 0;
+    }
+
+    return size;
+}
+
+}  // namespace
+
 /* swap ICU collation data like ucadata.icu */
 U_CAPI int32_t U_EXPORT2
 ucol_swap(const UDataSwapper *ds,
           const void *inData, int32_t length, void *outData,
           UErrorCode *pErrorCode) {
-          
-    const UDataInfo *pInfo;
-    int32_t headerSize, collationSize;
+    if(U_FAILURE(*pErrorCode)) { return 0; }
 
     /* udata_swapDataHeader checks the arguments */
-    headerSize=udata_swapDataHeader(ds, inData, length, outData, pErrorCode);
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        return 0;
+    int32_t headerSize=udata_swapDataHeader(ds, inData, length, outData, pErrorCode);
+    if(U_FAILURE(*pErrorCode)) {
+        // Try to swap the old format version which did not have a standard data header.
+        *pErrorCode=U_ZERO_ERROR;
+        return swapFormatVersion3(ds, inData, length, outData, pErrorCode);
     }
 
     /* check data format and format version */
-    pInfo=(const UDataInfo *)((const char *)inData+4);
+    const UDataInfo &info=*(const UDataInfo *)((const char *)inData+4);
     if(!(
-        pInfo->dataFormat[0]==0x55 &&   /* dataFormat="UCol" */
-        pInfo->dataFormat[1]==0x43 &&
-        pInfo->dataFormat[2]==0x6f &&
-        pInfo->dataFormat[3]==0x6c &&
-        pInfo->formatVersion[0]==3 /*&&
-        pInfo->formatVersion[1]>=0*/
+        info.dataFormat[0]==0x55 &&   // dataFormat="UCol"
+        info.dataFormat[1]==0x43 &&
+        info.dataFormat[2]==0x6f &&
+        info.dataFormat[3]==0x6c &&
+        (info.formatVersion[0]==3 || info.formatVersion[0]==4)
     )) {
-        udata_printError(ds, "ucol_swap(): data format %02x.%02x.%02x.%02x (format version %02x.%02x) is not a collation file\n",
-                         pInfo->dataFormat[0], pInfo->dataFormat[1],
-                         pInfo->dataFormat[2], pInfo->dataFormat[3],
-                         pInfo->formatVersion[0], pInfo->formatVersion[1]);
+        udata_printError(ds, "ucol_swap(): data format %02x.%02x.%02x.%02x "
+                         "(format version %02x.%02x) is not recognized as collation data\n",
+                         info.dataFormat[0], info.dataFormat[1],
+                         info.dataFormat[2], info.dataFormat[3],
+                         info.formatVersion[0], info.formatVersion[1]);
         *pErrorCode=U_UNSUPPORTED_ERROR;
         return 0;
     }
 
-    collationSize=ucol_swapBinary(ds,
-                        (const char *)inData+headerSize,
-                        length>=0 ? length-headerSize : -1,
-                        (char *)outData+headerSize,
-                        pErrorCode);
+    inData=(const char *)inData+headerSize;
+    if(length>=0) { length-=headerSize; }
+    outData=(char *)outData+headerSize;
+    int32_t collationSize;
+    if(info.formatVersion[0]>=4) {
+        collationSize=swapFormatVersion4(ds, inData, length, outData, *pErrorCode);
+    } else {
+        collationSize=swapFormatVersion3(ds, inData, length, outData, pErrorCode);
+    }
     if(U_SUCCESS(*pErrorCode)) {
         return headerSize+collationSize;
     } else {
diff --git a/common/ucol_swp.h b/common/ucol_swp.h
index cb5ef15..855b404 100644
--- a/common/ucol_swp.h
+++ b/common/ucol_swp.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2003-2009, International Business Machines
+*   Copyright (C) 2003-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -34,16 +34,6 @@
                               const void *inData, int32_t length);
 
 /**
- * Swap a header-less collation binary, inside a resource bundle or ucadata.icu.
- * See udataswp.h.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-ucol_swapBinary(const UDataSwapper *ds,
-                const void *inData, int32_t length, void *outData,
-                UErrorCode *pErrorCode);
-
-/**
  * Swap ICU collation data like ucadata.icu. See udataswp.h.
  * @internal
  */
diff --git a/common/udataswp.c b/common/udataswp.c
index cacf716..06fe85b 100644
--- a/common/udataswp.c
+++ b/common/udataswp.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2003, International Business Machines
+*   Copyright (C) 2003-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -123,6 +123,55 @@
     return length;
 }
 
+static int32_t U_CALLCONV
+uprv_swapArray64(const UDataSwapper *ds,
+                 const void *inData, int32_t length, void *outData,
+                 UErrorCode *pErrorCode) {
+    const uint64_t *p;
+    uint64_t *q;
+    int32_t count;
+
+    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || length<0 || (length&7)!=0 || outData==NULL) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    p=(const uint64_t *)inData;
+    q=(uint64_t *)outData;
+    count=length/8;
+    while(count>0) {
+        uint64_t x=*p++;
+        x=(x<<56)|((x&0xff00)<<40)|((x&0xff0000)<<24)|((x&0xff000000)<<8)|
+            ((x>>8)&0xff000000)|((x>>24)&0xff0000)|((x>>40)&0xff00)|(x>>56);
+        *q++=x;
+        --count;
+    }
+
+    return length;
+}
+
+static int32_t U_CALLCONV
+uprv_copyArray64(const UDataSwapper *ds,
+                 const void *inData, int32_t length, void *outData,
+                 UErrorCode *pErrorCode) {
+    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || length<0 || (length&7)!=0 || outData==NULL) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    if(length>0 && inData!=outData) {
+        uprv_memcpy(outData, inData, length);
+    }
+    return length;
+}
+
 static uint16_t U_CALLCONV
 uprv_readSwapUInt16(uint16_t x) {
     return (uint16_t)((x<<8)|(x>>8));
@@ -344,8 +393,15 @@
 
     swapper->compareInvChars= outCharset==U_ASCII_FAMILY ? uprv_compareInvAscii : uprv_compareInvEbcdic;
 
-    swapper->swapArray16= inIsBigEndian==outIsBigEndian ? uprv_copyArray16 : uprv_swapArray16;
-    swapper->swapArray32= inIsBigEndian==outIsBigEndian ? uprv_copyArray32 : uprv_swapArray32;
+    if(inIsBigEndian==outIsBigEndian) {
+        swapper->swapArray16=uprv_copyArray16;
+        swapper->swapArray32=uprv_copyArray32;
+        swapper->swapArray64=uprv_copyArray64;
+    } else {
+        swapper->swapArray16=uprv_swapArray16;
+        swapper->swapArray32=uprv_swapArray32;
+        swapper->swapArray64=uprv_swapArray64;
+    }
 
     if(inCharset==U_ASCII_FAMILY) {
         swapper->swapInvChars= outCharset==U_ASCII_FAMILY ? uprv_copyAscii : uprv_ebcdicFromAscii;
diff --git a/common/udataswp.h b/common/udataswp.h
index 52b99aa..66c8495 100644
--- a/common/udataswp.h
+++ b/common/udataswp.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2003-2005, International Business Machines
+*   Copyright (C) 2003-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -178,6 +178,8 @@
     UDataSwapFn *swapArray16;
     /** Transform an array of 32-bit integers. @internal ICU 2.8 */
     UDataSwapFn *swapArray32;
+    /** Transform an array of 64-bit integers. @internal ICU 53 */
+    UDataSwapFn *swapArray64;
     /** Transform an invariant-character string. @internal ICU 2.8 */
     UDataSwapFn *swapInvChars;
 
diff --git a/common/uinit.cpp b/common/uinit.cpp
index e97869b..323dab4 100644
--- a/common/uinit.cpp
+++ b/common/uinit.cpp
@@ -55,6 +55,10 @@
     ucln_common_registerCleanup(UCLN_COMMON_UINIT, uinit_cleanup);
 }
 
+U_NAMESPACE_END
+
+U_NAMESPACE_USE
+
 /*
  * ICU Initialization Function. Need not be called.
  */
@@ -64,5 +68,3 @@
     umtx_initOnce(gICUInitOnce, &initData, *status);
     UTRACE_EXIT_STATUS(*status);
 }
-
-U_NAMESPACE_END
diff --git a/common/umutex.h b/common/umutex.h
index 4f2c615..6c56492 100644
--- a/common/umutex.h
+++ b/common/umutex.h
@@ -318,7 +318,7 @@
 
 
 typedef struct UMutex {
-    UInitOnce         fInitOnce;
+    icu::UInitOnce    fInitOnce;
     CRITICAL_SECTION  fCS;
 } UMutex;
 
diff --git a/common/unames.cpp b/common/unames.cpp
index 6a3e81c..c8f5969 100644
--- a/common/unames.cpp
+++ b/common/unames.cpp
@@ -1440,13 +1440,17 @@
     return TRUE;
 }
 
+U_NAMESPACE_END
+
 /* public API --------------------------------------------------------------- */
 
+U_NAMESPACE_USE
+
 U_CAPI int32_t U_EXPORT2
 u_charName(UChar32 code, UCharNameChoice nameChoice,
            char *buffer, int32_t bufferLength,
            UErrorCode *pErrorCode) {
-    AlgorithmicRange *algRange;
+     AlgorithmicRange *algRange;
     uint32_t *p;
     uint32_t i;
     int32_t length;
@@ -2086,8 +2090,6 @@
     return headerSize+(int32_t)offset;
 }
 
-U_NAMESPACE_END
-
 /*
  * Hey, Emacs, please set the following:
  *
diff --git a/common/unicode/brkiter.h b/common/unicode/brkiter.h
index 4e601ba..6fc9fef 100644
--- a/common/unicode/brkiter.h
+++ b/common/unicode/brkiter.h
@@ -1,6 +1,6 @@
 /*
 ********************************************************************************
-*   Copyright (C) 1997-2013, International Business Machines
+*   Copyright (C) 1997-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 ********************************************************************************
 *
@@ -526,6 +526,9 @@
      * The break iterator will be adopted.  Clones of the iterator will be returned
      * if a request for a break iterator of the given kind matches or falls back to
      * this locale.
+     * Because ICU may choose to cache BreakIterators internally, this must
+     * be called at application startup, prior to any calls to
+     * BreakIterator::createXXXInstance to avoid undefined behavior.
      * @param toAdopt the BreakIterator instance to be adopted
      * @param locale the Locale for which this instance is to be registered
      * @param kind the type of iterator for which this instance is to be registered
@@ -542,6 +545,9 @@
      * Unregister a previously-registered BreakIterator using the key returned from the
      * register call.  Key becomes invalid after a successful call and should not be used again.
      * The BreakIterator corresponding to the key will be deleted.
+     * Because ICU may choose to cache BreakIterators internally, this should
+     * be called during application shutdown, after all calls to
+     * BreakIterator::createXXXInstance to avoid undefined behavior.
      * @param key the registry key returned by a previous call to registerInstance
      * @param status the in/out status code, no special meanings are assigned
      * @return TRUE if the iterator for the key was successfully unregistered
@@ -617,7 +623,8 @@
     BreakIterator();
     /** @internal */
     BreakIterator (const BreakIterator &other) : UObject(other) {}
-
+    /** @internal */
+    BreakIterator (const Locale& valid, const Locale& actual);
 private:
 
     /** @internal */
diff --git a/common/unicode/enumset.h b/common/unicode/enumset.h
index a7a2416..5106c37 100644
--- a/common/unicode/enumset.h
+++ b/common/unicode/enumset.h
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 2012, International Business Machines
+*   Copyright (C) 2012,2014 International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -21,9 +21,10 @@
 
 U_NAMESPACE_BEGIN
 
+/* Can't use #ifndef U_HIDE_INTERNAL_API for the entire EnumSet class, needed in .h file declarations */
 /**
  * enum bitset for boolean fields. Similar to Java EnumSet<>. 
- * Needs to range check.
+ * Needs to range check. Used for private instance variables.
  * @internal
  */
 template<typename T, uint32_t minValue, uint32_t limitValue>
@@ -32,6 +33,7 @@
     inline EnumSet() : fBools(0) {}
     inline EnumSet(const EnumSet<T,minValue,limitValue>& other) : fBools(other.fBools) {}
     inline ~EnumSet() {}
+#ifndef U_HIDE_INTERNAL_API
     inline void clear() { fBools=0; }
     inline void add(T toAdd) { set(toAdd, 1); }
     inline void remove(T toRemove) { set(toRemove, 0); }
@@ -48,6 +50,7 @@
     inline uint32_t getAll() const {
         return fBools; 
     }
+#endif /* U_HIDE_INTERNAL_API */
 
 private:
     inline uint32_t flag(T toCheck) const { return (1<<(toCheck-minValue)); }
diff --git a/common/unicode/listformatter.h b/common/unicode/listformatter.h
index 6728660..1b32195 100644
--- a/common/unicode/listformatter.h
+++ b/common/unicode/listformatter.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2012-2013, International Business Machines
+*   Copyright (C) 2012-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -19,8 +19,6 @@
 
 #include "unicode/utypes.h"
 
-#ifndef U_HIDE_DRAFT_API
-
 #include "unicode/unistr.h"
 #include "unicode/locid.h"
 
@@ -29,7 +27,10 @@
 /** @internal */
 class Hashtable;
 
-#ifndef U_HIDE_INTERNAL_API
+/** @internal */
+struct ListFormatInternal;
+
+/* The following can't be #ifndef U_HIDE_INTERNAL_API, needed for other .h file declarations */
 /** @internal */
 struct ListFormatData : public UMemory {
     UnicodeString twoPattern;
@@ -40,7 +41,6 @@
   ListFormatData(const UnicodeString& two, const UnicodeString& start, const UnicodeString& middle, const UnicodeString& end) :
       twoPattern(two), startPattern(start), middlePattern(middle), endPattern(end) {}
 };
-#endif  /* U_HIDE_INTERNAL_API */
 
 
 /**
@@ -57,7 +57,7 @@
  * as "Alice, Bob, Charlie and Delta" in English.
  *
  * The ListFormatter class is not intended for public subclassing.
- * @draft ICU 50
+ * @stable ICU 50
  */
 class U_COMMON_API ListFormatter : public UObject{
 
@@ -81,7 +81,7 @@
      * @param errorCode ICU error code, set if no data available for default locale.
      * @return Pointer to a ListFormatter object for the default locale,
      *     created from internal data derived from CLDR data.
-     * @draft ICU 50
+     * @stable ICU 50
      */
     static ListFormatter* createInstance(UErrorCode& errorCode);
 
@@ -92,7 +92,7 @@
      * @param errorCode ICU error code, set if no data available for the given locale.
      * @return A ListFormatter object created from internal data derived from
      *     CLDR data.
-     * @draft ICU 50
+     * @stable ICU 50
      */
     static ListFormatter* createInstance(const Locale& locale, UErrorCode& errorCode);
 
@@ -113,7 +113,7 @@
     /**
      * Destructor.
      *
-     * @draft ICU 50
+     * @stable ICU 50
      */
     virtual ~ListFormatter();
 
@@ -126,30 +126,42 @@
      * @param appendTo The string to which the result should be appended to.
      * @param errorCode ICU error code, set if there is an error.
      * @return Formatted string combining the elements of items, appended to appendTo.
-     * @draft ICU 50
+     * @stable ICU 50
      */
     UnicodeString& format(const UnicodeString items[], int32_t n_items,
         UnicodeString& appendTo, UErrorCode& errorCode) const;
 
 #ifndef U_HIDE_INTERNAL_API
     /**
+      @internal for MeasureFormat
+    */
+    UnicodeString& format(
+            const UnicodeString items[],
+            int32_t n_items,
+            UnicodeString& appendTo,
+            int32_t index,
+            int32_t &offset,
+            UErrorCode& errorCode) const;
+    /**
      * @internal constructor made public for testing.
      */
-    ListFormatter(const ListFormatData* listFormatterData);
+    ListFormatter(const ListFormatData &data);
+    /**
+     * @internal constructor made public for testing.
+     */
+    ListFormatter(const ListFormatInternal* listFormatterInternal);
 #endif  /* U_HIDE_INTERNAL_API */
 
   private:
     static void initializeHash(UErrorCode& errorCode);
-    static const ListFormatData* getListFormatData(const Locale& locale, const char *style, UErrorCode& errorCode);
+    static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
 
     ListFormatter();
-    void addNewString(const UnicodeString& pattern, UnicodeString& originalString,
-                      const UnicodeString& newString, UErrorCode& errorCode) const;
 
-    const ListFormatData* data;
+    ListFormatInternal* owned;
+    const ListFormatInternal* data;
 };
 
 U_NAMESPACE_END
 
-#endif /* U_HIDE_DRAFT_API */
 #endif
diff --git a/common/unicode/locid.h b/common/unicode/locid.h
index 0faea9b..09ab561 100644
--- a/common/unicode/locid.h
+++ b/common/unicode/locid.h
@@ -748,7 +748,7 @@
     /**
      * @internal
      */
-    friend void locale_available_init();
+    friend void U_CALLCONV locale_available_init();
 };
 
 inline UBool
diff --git a/common/unicode/std_string.h b/common/unicode/std_string.h
index 67b1d6c..05955c5 100644
--- a/common/unicode/std_string.h
+++ b/common/unicode/std_string.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2009-2011, International Business Machines
+*   Copyright (C) 2009-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -18,7 +18,7 @@
 #define __STD_STRING_H__
 
 /**
- * \file 
+ * \file
  * \brief C++ API: Central ICU header for including the C++ standard &lt;string&gt;
  *                 header and for related definitions.
  */
@@ -27,6 +27,9 @@
 
 #if U_HAVE_STD_STRING
 
+#if !defined(_MSC_VER)
+namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+#endif
 #include <string>
 
 #endif  // U_HAVE_STD_STRING
diff --git a/common/unicode/stringtriebuilder.h b/common/unicode/stringtriebuilder.h
index 05fa6e7..04447e5 100644
--- a/common/unicode/stringtriebuilder.h
+++ b/common/unicode/stringtriebuilder.h
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-*   Copyright (C) 2010-2012, International Business Machines
+*   Copyright (C) 2010-2012,2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  stringtriebuilder.h
@@ -162,6 +162,7 @@
      * @internal
      */
     Node *registerFinalValue(int32_t value, UErrorCode &errorCode);
+#endif  /* U_HIDE_INTERNAL_API */
 
     /*
      * C++ note:
@@ -183,6 +184,7 @@
     /** @internal */
     UHashtable *nodes;
 
+#ifndef U_HIDE_INTERNAL_API
     /** @internal */
     class Node : public UObject {
     public:
diff --git a/common/unicode/uchar.h b/common/unicode/uchar.h
index 1a5b71b..e50fdcb 100644
--- a/common/unicode/uchar.h
+++ b/common/unicode/uchar.h
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 1997-2013, International Business Machines
+*   Copyright (C) 1997-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *
@@ -2740,7 +2740,7 @@
  *
  * @deprecated ICU 49
  */
-U_STABLE int32_t U_EXPORT2
+U_DEPRECATED int32_t U_EXPORT2
 u_getISOComment(UChar32 c,
                 char *dest, int32_t destCapacity,
                 UErrorCode *pErrorCode);
diff --git a/common/unicode/uconfig.h b/common/unicode/uconfig.h
index ef4ba94..c22c211 100644
--- a/common/unicode/uconfig.h
+++ b/common/unicode/uconfig.h
@@ -1,6 +1,6 @@
 /*  
 **********************************************************************
-*   Copyright (C) 2002-2013, International Business Machines
+*   Copyright (C) 2002-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  uconfig.h
@@ -185,7 +185,8 @@
 #ifdef U_LIB_SUFFIX_C_NAME_STRING
     /* Use the predefined value. */
 #elif defined(U_LIB_SUFFIX_C_NAME)
-#   define U_LIB_SUFFIX_C_NAME_STRING #U_LIB_SUFFIX_C_NAME
+#   define CONVERT_TO_STRING(s) #s
+#   define U_LIB_SUFFIX_C_NAME_STRING CONVERT_TO_STRING(U_LIB_SUFFIX_C_NAME)
 #else
 #   define U_LIB_SUFFIX_C_NAME_STRING ""
 #endif
@@ -409,4 +410,14 @@
 #   define UCONFIG_FORMAT_FASTPATHS_49 1
 #endif
 
+/**
+ * \def UCONFIG_NO_FILTERED_BREAK_ITERATION
+ * This switch turns off filtered break iteration code.
+ *
+ * @internal
+ */
+#ifndef UCONFIG_NO_FILTERED_BREAK_ITERATION
+#   define UCONFIG_NO_FILTERED_BREAK_ITERATION 1
+#endif
+
 #endif
diff --git a/common/unicode/uniset.h b/common/unicode/uniset.h
index a959fb9..fa7cc7c 100644
--- a/common/unicode/uniset.h
+++ b/common/unicode/uniset.h
@@ -23,7 +23,7 @@
 U_NAMESPACE_BEGIN
 
 // Forward Declarations.
-void UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal */
+void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal */
 
 class BMPSet;
 class ParsePosition;
@@ -1589,7 +1589,7 @@
                               UnicodeString& rebuiltPat,
                               UErrorCode& ec);
 
-    friend void UnicodeSet_initInclusion(int32_t src, UErrorCode &status);
+    friend void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status);
     static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status);
 
     /**
diff --git a/common/unicode/urename.h b/common/unicode/urename.h
index 6b1f490..4a79d83 100644
--- a/common/unicode/urename.h
+++ b/common/unicode/urename.h
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-*   Copyright (C) 2002-2013, International Business Machines
+*   Copyright (C) 2002-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *
@@ -413,9 +413,7 @@
 #define u_vsprintf_u U_ICU_ENTRY_POINT_RENAME(u_vsprintf_u)
 #define u_vsscanf U_ICU_ENTRY_POINT_RENAME(u_vsscanf)
 #define u_vsscanf_u U_ICU_ENTRY_POINT_RENAME(u_vsscanf_u)
-#define u_writeDiff U_ICU_ENTRY_POINT_RENAME(u_writeDiff)
 #define u_writeIdenticalLevelRun U_ICU_ENTRY_POINT_RENAME(u_writeIdenticalLevelRun)
-#define u_writeIdenticalLevelRunTwoChars U_ICU_ENTRY_POINT_RENAME(u_writeIdenticalLevelRunTwoChars)
 #define ubidi_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(ubidi_addPropertyStarts)
 #define ubidi_close U_ICU_ENTRY_POINT_RENAME(ubidi_close)
 #define ubidi_countParagraphs U_ICU_ENTRY_POINT_RENAME(ubidi_countParagraphs)
@@ -690,47 +688,29 @@
 #define ucnvsel_selectForString U_ICU_ENTRY_POINT_RENAME(ucnvsel_selectForString)
 #define ucnvsel_selectForUTF8 U_ICU_ENTRY_POINT_RENAME(ucnvsel_selectForUTF8)
 #define ucnvsel_serialize U_ICU_ENTRY_POINT_RENAME(ucnvsel_serialize)
-#define ucol_allocWeights U_ICU_ENTRY_POINT_RENAME(ucol_allocWeights)
-#define ucol_assembleTailoringTable U_ICU_ENTRY_POINT_RENAME(ucol_assembleTailoringTable)
-#define ucol_buildPermutationTable U_ICU_ENTRY_POINT_RENAME(ucol_buildPermutationTable)
-#define ucol_calcSortKey U_ICU_ENTRY_POINT_RENAME(ucol_calcSortKey)
-#define ucol_calcSortKeySimpleTertiary U_ICU_ENTRY_POINT_RENAME(ucol_calcSortKeySimpleTertiary)
 #define ucol_cloneBinary U_ICU_ENTRY_POINT_RENAME(ucol_cloneBinary)
 #define ucol_close U_ICU_ENTRY_POINT_RENAME(ucol_close)
 #define ucol_closeElements U_ICU_ENTRY_POINT_RENAME(ucol_closeElements)
 #define ucol_countAvailable U_ICU_ENTRY_POINT_RENAME(ucol_countAvailable)
-#define ucol_createElements U_ICU_ENTRY_POINT_RENAME(ucol_createElements)
-#define ucol_doCE U_ICU_ENTRY_POINT_RENAME(ucol_doCE)
 #define ucol_equal U_ICU_ENTRY_POINT_RENAME(ucol_equal)
 #define ucol_equals U_ICU_ENTRY_POINT_RENAME(ucol_equals)
-#define ucol_findReorderingEntry U_ICU_ENTRY_POINT_RENAME(ucol_findReorderingEntry)
-#define ucol_forceHanImplicit U_ICU_ENTRY_POINT_RENAME(ucol_forceHanImplicit)
-#define ucol_forgetUCA U_ICU_ENTRY_POINT_RENAME(ucol_forgetUCA)
-#define ucol_freeOffsetBuffer U_ICU_ENTRY_POINT_RENAME(ucol_freeOffsetBuffer)
 #define ucol_getAttribute U_ICU_ENTRY_POINT_RENAME(ucol_getAttribute)
-#define ucol_getAttributeOrDefault U_ICU_ENTRY_POINT_RENAME(ucol_getAttributeOrDefault)
 #define ucol_getAvailable U_ICU_ENTRY_POINT_RENAME(ucol_getAvailable)
 #define ucol_getBound U_ICU_ENTRY_POINT_RENAME(ucol_getBound)
-#define ucol_getCEStrengthDifference U_ICU_ENTRY_POINT_RENAME(ucol_getCEStrengthDifference)
-#define ucol_getCollationKey U_ICU_ENTRY_POINT_RENAME(ucol_getCollationKey)
 #define ucol_getContractions U_ICU_ENTRY_POINT_RENAME(ucol_getContractions)
 #define ucol_getContractionsAndExpansions U_ICU_ENTRY_POINT_RENAME(ucol_getContractionsAndExpansions)
 #define ucol_getDisplayName U_ICU_ENTRY_POINT_RENAME(ucol_getDisplayName)
 #define ucol_getEquivalentReorderCodes U_ICU_ENTRY_POINT_RENAME(ucol_getEquivalentReorderCodes)
-#define ucol_getFirstCE U_ICU_ENTRY_POINT_RENAME(ucol_getFirstCE)
 #define ucol_getFunctionalEquivalent U_ICU_ENTRY_POINT_RENAME(ucol_getFunctionalEquivalent)
 #define ucol_getKeywordValues U_ICU_ENTRY_POINT_RENAME(ucol_getKeywordValues)
 #define ucol_getKeywordValuesForLocale U_ICU_ENTRY_POINT_RENAME(ucol_getKeywordValuesForLocale)
 #define ucol_getKeywords U_ICU_ENTRY_POINT_RENAME(ucol_getKeywords)
-#define ucol_getLeadBytesForReorderCode U_ICU_ENTRY_POINT_RENAME(ucol_getLeadBytesForReorderCode)
 #define ucol_getLocale U_ICU_ENTRY_POINT_RENAME(ucol_getLocale)
 #define ucol_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ucol_getLocaleByType)
 #define ucol_getMaxExpansion U_ICU_ENTRY_POINT_RENAME(ucol_getMaxExpansion)
-#define ucol_getNextCE U_ICU_ENTRY_POINT_RENAME(ucol_getNextCE)
+#define ucol_getMaxVariable U_ICU_ENTRY_POINT_RENAME(ucol_getMaxVariable)
 #define ucol_getOffset U_ICU_ENTRY_POINT_RENAME(ucol_getOffset)
-#define ucol_getPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_getPrevCE)
 #define ucol_getReorderCodes U_ICU_ENTRY_POINT_RENAME(ucol_getReorderCodes)
-#define ucol_getReorderCodesForLeadByte U_ICU_ENTRY_POINT_RENAME(ucol_getReorderCodesForLeadByte)
 #define ucol_getRules U_ICU_ENTRY_POINT_RENAME(ucol_getRules)
 #define ucol_getRulesEx U_ICU_ENTRY_POINT_RENAME(ucol_getRulesEx)
 #define ucol_getShortDefinitionString U_ICU_ENTRY_POINT_RENAME(ucol_getShortDefinitionString)
@@ -743,20 +723,11 @@
 #define ucol_getVersion U_ICU_ENTRY_POINT_RENAME(ucol_getVersion)
 #define ucol_greater U_ICU_ENTRY_POINT_RENAME(ucol_greater)
 #define ucol_greaterOrEqual U_ICU_ENTRY_POINT_RENAME(ucol_greaterOrEqual)
-#define ucol_initBuffers U_ICU_ENTRY_POINT_RENAME(ucol_initBuffers)
-#define ucol_initCollator U_ICU_ENTRY_POINT_RENAME(ucol_initCollator)
-#define ucol_initInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_initInverseUCA)
-#define ucol_initUCA U_ICU_ENTRY_POINT_RENAME(ucol_initUCA)
-#define ucol_inv_getNextCE U_ICU_ENTRY_POINT_RENAME(ucol_inv_getNextCE)
-#define ucol_inv_getPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_inv_getPrevCE)
-#define ucol_isTailored U_ICU_ENTRY_POINT_RENAME(ucol_isTailored)
 #define ucol_keyHashCode U_ICU_ENTRY_POINT_RENAME(ucol_keyHashCode)
 #define ucol_looksLikeCollationBinary U_ICU_ENTRY_POINT_RENAME(ucol_looksLikeCollationBinary)
 #define ucol_mergeSortkeys U_ICU_ENTRY_POINT_RENAME(ucol_mergeSortkeys)
 #define ucol_next U_ICU_ENTRY_POINT_RENAME(ucol_next)
-#define ucol_nextProcessed U_ICU_ENTRY_POINT_RENAME(ucol_nextProcessed)
 #define ucol_nextSortKeyPart U_ICU_ENTRY_POINT_RENAME(ucol_nextSortKeyPart)
-#define ucol_nextWeight U_ICU_ENTRY_POINT_RENAME(ucol_nextWeight)
 #define ucol_normalizeShortDefinitionString U_ICU_ENTRY_POINT_RENAME(ucol_normalizeShortDefinitionString)
 #define ucol_open U_ICU_ENTRY_POINT_RENAME(ucol_open)
 #define ucol_openAvailableLocales U_ICU_ENTRY_POINT_RENAME(ucol_openAvailableLocales)
@@ -764,23 +735,17 @@
 #define ucol_openElements U_ICU_ENTRY_POINT_RENAME(ucol_openElements)
 #define ucol_openFromShortString U_ICU_ENTRY_POINT_RENAME(ucol_openFromShortString)
 #define ucol_openRules U_ICU_ENTRY_POINT_RENAME(ucol_openRules)
-#define ucol_openRulesForImport U_ICU_ENTRY_POINT_RENAME(ucol_openRulesForImport)
-#define ucol_open_internal U_ICU_ENTRY_POINT_RENAME(ucol_open_internal)
 #define ucol_prepareShortStringOpen U_ICU_ENTRY_POINT_RENAME(ucol_prepareShortStringOpen)
 #define ucol_previous U_ICU_ENTRY_POINT_RENAME(ucol_previous)
-#define ucol_previousProcessed U_ICU_ENTRY_POINT_RENAME(ucol_previousProcessed)
 #define ucol_primaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_primaryOrder)
-#define ucol_prv_getSpecialCE U_ICU_ENTRY_POINT_RENAME(ucol_prv_getSpecialCE)
-#define ucol_prv_getSpecialPrevCE U_ICU_ENTRY_POINT_RENAME(ucol_prv_getSpecialPrevCE)
 #define ucol_reset U_ICU_ENTRY_POINT_RENAME(ucol_reset)
 #define ucol_restoreVariableTop U_ICU_ENTRY_POINT_RENAME(ucol_restoreVariableTop)
 #define ucol_safeClone U_ICU_ENTRY_POINT_RENAME(ucol_safeClone)
 #define ucol_secondaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_secondaryOrder)
 #define ucol_setAttribute U_ICU_ENTRY_POINT_RENAME(ucol_setAttribute)
+#define ucol_setMaxVariable U_ICU_ENTRY_POINT_RENAME(ucol_setMaxVariable)
 #define ucol_setOffset U_ICU_ENTRY_POINT_RENAME(ucol_setOffset)
-#define ucol_setOptionsFromHeader U_ICU_ENTRY_POINT_RENAME(ucol_setOptionsFromHeader)
 #define ucol_setReorderCodes U_ICU_ENTRY_POINT_RENAME(ucol_setReorderCodes)
-#define ucol_setReqValidLocales U_ICU_ENTRY_POINT_RENAME(ucol_setReqValidLocales)
 #define ucol_setStrength U_ICU_ENTRY_POINT_RENAME(ucol_setStrength)
 #define ucol_setText U_ICU_ENTRY_POINT_RENAME(ucol_setText)
 #define ucol_setVariableTop U_ICU_ENTRY_POINT_RENAME(ucol_setVariableTop)
@@ -788,16 +753,8 @@
 #define ucol_strcollIter U_ICU_ENTRY_POINT_RENAME(ucol_strcollIter)
 #define ucol_strcollUTF8 U_ICU_ENTRY_POINT_RENAME(ucol_strcollUTF8)
 #define ucol_swap U_ICU_ENTRY_POINT_RENAME(ucol_swap)
-#define ucol_swapBinary U_ICU_ENTRY_POINT_RENAME(ucol_swapBinary)
 #define ucol_swapInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_swapInverseUCA)
 #define ucol_tertiaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_tertiaryOrder)
-#define ucol_tok_assembleTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_assembleTokenList)
-#define ucol_tok_closeTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_closeTokenList)
-#define ucol_tok_getNextArgument U_ICU_ENTRY_POINT_RENAME(ucol_tok_getNextArgument)
-#define ucol_tok_getRulesFromBundle U_ICU_ENTRY_POINT_RENAME(ucol_tok_getRulesFromBundle)
-#define ucol_tok_initTokenList U_ICU_ENTRY_POINT_RENAME(ucol_tok_initTokenList)
-#define ucol_tok_parseNextToken U_ICU_ENTRY_POINT_RENAME(ucol_tok_parseNextToken)
-#define ucol_updateInternalState U_ICU_ENTRY_POINT_RENAME(ucol_updateInternalState)
 #define ucsdet_close U_ICU_ENTRY_POINT_RENAME(ucsdet_close)
 #define ucsdet_detect U_ICU_ENTRY_POINT_RENAME(ucsdet_detect)
 #define ucsdet_detectAll U_ICU_ENTRY_POINT_RENAME(ucsdet_detectAll)
@@ -1130,7 +1087,6 @@
 #define unorm2_quickCheck U_ICU_ENTRY_POINT_RENAME(unorm2_quickCheck)
 #define unorm2_spanQuickCheckYes U_ICU_ENTRY_POINT_RENAME(unorm2_spanQuickCheckYes)
 #define unorm2_swap U_ICU_ENTRY_POINT_RENAME(unorm2_swap)
-#define unorm_closeIter U_ICU_ENTRY_POINT_RENAME(unorm_closeIter)
 #define unorm_compare U_ICU_ENTRY_POINT_RENAME(unorm_compare)
 #define unorm_concatenate U_ICU_ENTRY_POINT_RENAME(unorm_concatenate)
 #define unorm_getFCD16 U_ICU_ENTRY_POINT_RENAME(unorm_getFCD16)
@@ -1139,11 +1095,9 @@
 #define unorm_isNormalizedWithOptions U_ICU_ENTRY_POINT_RENAME(unorm_isNormalizedWithOptions)
 #define unorm_next U_ICU_ENTRY_POINT_RENAME(unorm_next)
 #define unorm_normalize U_ICU_ENTRY_POINT_RENAME(unorm_normalize)
-#define unorm_openIter U_ICU_ENTRY_POINT_RENAME(unorm_openIter)
 #define unorm_previous U_ICU_ENTRY_POINT_RENAME(unorm_previous)
 #define unorm_quickCheck U_ICU_ENTRY_POINT_RENAME(unorm_quickCheck)
 #define unorm_quickCheckWithOptions U_ICU_ENTRY_POINT_RENAME(unorm_quickCheckWithOptions)
-#define unorm_setIter U_ICU_ENTRY_POINT_RENAME(unorm_setIter)
 #define unum_applyPattern U_ICU_ENTRY_POINT_RENAME(unum_applyPattern)
 #define unum_clone U_ICU_ENTRY_POINT_RENAME(unum_clone)
 #define unum_close U_ICU_ENTRY_POINT_RENAME(unum_close)
@@ -1156,6 +1110,7 @@
 #define unum_formatUFormattable U_ICU_ENTRY_POINT_RENAME(unum_formatUFormattable)
 #define unum_getAttribute U_ICU_ENTRY_POINT_RENAME(unum_getAttribute)
 #define unum_getAvailable U_ICU_ENTRY_POINT_RENAME(unum_getAvailable)
+#define unum_getContext U_ICU_ENTRY_POINT_RENAME(unum_getContext)
 #define unum_getDoubleAttribute U_ICU_ENTRY_POINT_RENAME(unum_getDoubleAttribute)
 #define unum_getLocaleByType U_ICU_ENTRY_POINT_RENAME(unum_getLocaleByType)
 #define unum_getSymbol U_ICU_ENTRY_POINT_RENAME(unum_getSymbol)
@@ -1168,6 +1123,7 @@
 #define unum_parseInt64 U_ICU_ENTRY_POINT_RENAME(unum_parseInt64)
 #define unum_parseToUFormattable U_ICU_ENTRY_POINT_RENAME(unum_parseToUFormattable)
 #define unum_setAttribute U_ICU_ENTRY_POINT_RENAME(unum_setAttribute)
+#define unum_setContext U_ICU_ENTRY_POINT_RENAME(unum_setContext)
 #define unum_setDoubleAttribute U_ICU_ENTRY_POINT_RENAME(unum_setDoubleAttribute)
 #define unum_setSymbol U_ICU_ENTRY_POINT_RENAME(unum_setSymbol)
 #define unum_setTextAttribute U_ICU_ENTRY_POINT_RENAME(unum_setTextAttribute)
@@ -1214,20 +1170,6 @@
 #define uprv_asciitolower U_ICU_ENTRY_POINT_RENAME(uprv_asciitolower)
 #define uprv_calloc U_ICU_ENTRY_POINT_RENAME(uprv_calloc)
 #define uprv_ceil U_ICU_ENTRY_POINT_RENAME(uprv_ceil)
-#define uprv_cnttab_addContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_addContraction)
-#define uprv_cnttab_changeContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_changeContraction)
-#define uprv_cnttab_changeLastCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_changeLastCE)
-#define uprv_cnttab_clone U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_clone)
-#define uprv_cnttab_close U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_close)
-#define uprv_cnttab_constructTable U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_constructTable)
-#define uprv_cnttab_findCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_findCE)
-#define uprv_cnttab_findCP U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_findCP)
-#define uprv_cnttab_getCE U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_getCE)
-#define uprv_cnttab_insertContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_insertContraction)
-#define uprv_cnttab_isTailored U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_isTailored)
-#define uprv_cnttab_open U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_open)
-#define uprv_cnttab_setContraction U_ICU_ENTRY_POINT_RENAME(uprv_cnttab_setContraction)
-#define uprv_collIterateAtEnd U_ICU_ENTRY_POINT_RENAME(uprv_collIterateAtEnd)
 #define uprv_compareASCIIPropertyNames U_ICU_ENTRY_POINT_RENAME(uprv_compareASCIIPropertyNames)
 #define uprv_compareEBCDICPropertyNames U_ICU_ENTRY_POINT_RENAME(uprv_compareEBCDICPropertyNames)
 #define uprv_compareInvAscii U_ICU_ENTRY_POINT_RENAME(uprv_compareInvAscii)
@@ -1314,8 +1256,8 @@
 #define uprv_decNumberVersion U_ICU_ENTRY_POINT_RENAME(uprv_decNumberVersion)
 #define uprv_decNumberXor U_ICU_ENTRY_POINT_RENAME(uprv_decNumberXor)
 #define uprv_decNumberZero U_ICU_ENTRY_POINT_RENAME(uprv_decNumberZero)
+#define uprv_deleteConditionalCE32 U_ICU_ENTRY_POINT_RENAME(uprv_deleteConditionalCE32)
 #define uprv_deleteUObject U_ICU_ENTRY_POINT_RENAME(uprv_deleteUObject)
-#define uprv_delete_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_delete_collIterate)
 #define uprv_dl_close U_ICU_ENTRY_POINT_RENAME(uprv_dl_close)
 #define uprv_dl_open U_ICU_ENTRY_POINT_RENAME(uprv_dl_open)
 #define uprv_dlsym_func U_ICU_ENTRY_POINT_RENAME(uprv_dlsym_func)
@@ -1340,8 +1282,6 @@
 #define uprv_getStaticCurrencyName U_ICU_ENTRY_POINT_RENAME(uprv_getStaticCurrencyName)
 #define uprv_getUTCtime U_ICU_ENTRY_POINT_RENAME(uprv_getUTCtime)
 #define uprv_haveProperties U_ICU_ENTRY_POINT_RENAME(uprv_haveProperties)
-#define uprv_init_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_init_collIterate)
-#define uprv_init_pce U_ICU_ENTRY_POINT_RENAME(uprv_init_pce)
 #define uprv_int32Comparator U_ICU_ENTRY_POINT_RENAME(uprv_int32Comparator)
 #define uprv_isASCIILetter U_ICU_ENTRY_POINT_RENAME(uprv_isASCIILetter)
 #define uprv_isInfinite U_ICU_ENTRY_POINT_RENAME(uprv_isInfinite)
@@ -1359,7 +1299,6 @@
 #define uprv_maximumPtr U_ICU_ENTRY_POINT_RENAME(uprv_maximumPtr)
 #define uprv_min U_ICU_ENTRY_POINT_RENAME(uprv_min)
 #define uprv_modf U_ICU_ENTRY_POINT_RENAME(uprv_modf)
-#define uprv_new_collIterate U_ICU_ENTRY_POINT_RENAME(uprv_new_collIterate)
 #define uprv_parseCurrency U_ICU_ENTRY_POINT_RENAME(uprv_parseCurrency)
 #define uprv_pathIsAbsolute U_ICU_ENTRY_POINT_RENAME(uprv_pathIsAbsolute)
 #define uprv_pow U_ICU_ENTRY_POINT_RENAME(uprv_pow)
@@ -1379,16 +1318,6 @@
 #define uprv_trunc U_ICU_ENTRY_POINT_RENAME(uprv_trunc)
 #define uprv_tzname U_ICU_ENTRY_POINT_RENAME(uprv_tzname)
 #define uprv_tzset U_ICU_ENTRY_POINT_RENAME(uprv_tzset)
-#define uprv_uca_addAnElement U_ICU_ENTRY_POINT_RENAME(uprv_uca_addAnElement)
-#define uprv_uca_assembleTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_assembleTable)
-#define uprv_uca_canonicalClosure U_ICU_ENTRY_POINT_RENAME(uprv_uca_canonicalClosure)
-#define uprv_uca_closeTempTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_closeTempTable)
-#define uprv_uca_getCodePointFromRaw U_ICU_ENTRY_POINT_RENAME(uprv_uca_getCodePointFromRaw)
-#define uprv_uca_getImplicitFromRaw U_ICU_ENTRY_POINT_RENAME(uprv_uca_getImplicitFromRaw)
-#define uprv_uca_getRawFromCodePoint U_ICU_ENTRY_POINT_RENAME(uprv_uca_getRawFromCodePoint)
-#define uprv_uca_getRawFromImplicit U_ICU_ENTRY_POINT_RENAME(uprv_uca_getRawFromImplicit)
-#define uprv_uca_initImplicitConstants U_ICU_ENTRY_POINT_RENAME(uprv_uca_initImplicitConstants)
-#define uprv_uca_initTempTable U_ICU_ENTRY_POINT_RENAME(uprv_uca_initTempTable)
 #define uprv_uint16Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint16Comparator)
 #define uprv_uint32Comparator U_ICU_ENTRY_POINT_RENAME(uprv_uint32Comparator)
 #define uprv_unmapFile U_ICU_ENTRY_POINT_RENAME(uprv_unmapFile)
@@ -1722,6 +1651,7 @@
 #define utrans_countAvailableIDs U_ICU_ENTRY_POINT_RENAME(utrans_countAvailableIDs)
 #define utrans_getAvailableID U_ICU_ENTRY_POINT_RENAME(utrans_getAvailableID)
 #define utrans_getID U_ICU_ENTRY_POINT_RENAME(utrans_getID)
+#define utrans_getSourceSet U_ICU_ENTRY_POINT_RENAME(utrans_getSourceSet)
 #define utrans_getUnicodeID U_ICU_ENTRY_POINT_RENAME(utrans_getUnicodeID)
 #define utrans_open U_ICU_ENTRY_POINT_RENAME(utrans_open)
 #define utrans_openIDs U_ICU_ENTRY_POINT_RENAME(utrans_openIDs)
@@ -1731,6 +1661,7 @@
 #define utrans_rep_caseContextIterator U_ICU_ENTRY_POINT_RENAME(utrans_rep_caseContextIterator)
 #define utrans_setFilter U_ICU_ENTRY_POINT_RENAME(utrans_setFilter)
 #define utrans_stripRules U_ICU_ENTRY_POINT_RENAME(utrans_stripRules)
+#define utrans_toRules U_ICU_ENTRY_POINT_RENAME(utrans_toRules)
 #define utrans_trans U_ICU_ENTRY_POINT_RENAME(utrans_trans)
 #define utrans_transIncremental U_ICU_ENTRY_POINT_RENAME(utrans_transIncremental)
 #define utrans_transIncrementalUChars U_ICU_ENTRY_POINT_RENAME(utrans_transIncrementalUChars)
diff --git a/common/unicode/ures.h b/common/unicode/ures.h
index 587e85d..c91f030 100644
--- a/common/unicode/ures.h
+++ b/common/unicode/ures.h
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 1997-2012, International Business Machines
+*   Copyright (C) 1997-2012,2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *
@@ -230,6 +230,7 @@
                      const char* resourceKey,
                      UErrorCode* err);
 #endif  /* U_HIDE_DEPRECATED_API */
+
 /**
  * Close a resource bundle, all pointers returned from the various ures_getXXX calls
  * on this particular bundle should be considered invalid henceforth.
diff --git a/common/unicode/uscript.h b/common/unicode/uscript.h
index 57255c4..8b213e0 100644
--- a/common/unicode/uscript.h
+++ b/common/unicode/uscript.h
@@ -1,6 +1,6 @@
 /*
  **********************************************************************
- *   Copyright (C) 1997-2013, International Business Machines
+ *   Copyright (C) 1997-2014, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  **********************************************************************
  *
@@ -517,27 +517,25 @@
                             UScriptCode *scripts, int32_t capacity,
                             UErrorCode *errorCode);
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Script usage constants.
  * See UAX #31 Unicode Identifier and Pattern Syntax.
  * http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers
  *
- * @draft ICU 51
+ * @stable ICU 51
  */
 typedef enum UScriptUsage {
-    /** Not encoded in Unicode. @draft ICU 51 */
+    /** Not encoded in Unicode. @stable ICU 51 */
     USCRIPT_USAGE_NOT_ENCODED,
-    /** Unknown script usage. @draft ICU 51 */
+    /** Unknown script usage. @stable ICU 51 */
     USCRIPT_USAGE_UNKNOWN,
-    /** Candidate for Exclusion from Identifiers. @draft ICU 51 */
+    /** Candidate for Exclusion from Identifiers. @stable ICU 51 */
     USCRIPT_USAGE_EXCLUDED,
-    /** Limited Use script. @draft ICU 51 */
+    /** Limited Use script. @stable ICU 51 */
     USCRIPT_USAGE_LIMITED_USE,
-    /** Aspirational Use script. @draft ICU 51 */
+    /** Aspirational Use script. @stable ICU 51 */
     USCRIPT_USAGE_ASPIRATIONAL,
-    /** Recommended script. @draft ICU 51 */
+    /** Recommended script. @stable ICU 51 */
     USCRIPT_USAGE_RECOMMENDED
 } UScriptUsage;
 
@@ -551,9 +549,9 @@
  * @param capacity number of UChars in the dest array
  * @param pErrorCode standard ICU in/out error code, must pass U_SUCCESS() on input
  * @return the string length, even if U_BUFFER_OVERFLOW_ERROR
- * @draft ICU 51
+ * @stable ICU 51
  */
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
 uscript_getSampleString(UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode);
 
 #if U_SHOW_CPLUSPLUS_API
@@ -569,7 +567,7 @@
  *
  * @param script script code
  * @return the sample character string
- * @draft ICU 51
+ * @stable ICU 51
  */
 U_COMMON_API icu::UnicodeString U_EXPORT2
 uscript_getSampleUnicodeString(UScriptCode script);
@@ -583,9 +581,9 @@
  * @param script script code
  * @return script usage
  * @see UScriptUsage
- * @draft ICU 51
+ * @stable ICU 51
  */
-U_DRAFT UScriptUsage U_EXPORT2
+U_STABLE UScriptUsage U_EXPORT2
 uscript_getUsage(UScriptCode script);
 
 /**
@@ -594,9 +592,9 @@
  *
  * @param script script code
  * @return TRUE if the script is right-to-left
- * @draft ICU 51
+ * @stable ICU 51
  */
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
 uscript_isRightToLeft(UScriptCode script);
 
 /**
@@ -606,9 +604,9 @@
  *
  * @param script script code
  * @return TRUE if the script allows line breaks between letters
- * @draft ICU 51
+ * @stable ICU 51
  */
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
 uscript_breaksBetweenLetters(UScriptCode script);
 
 /**
@@ -617,11 +615,9 @@
  *
  * @param script script code
  * @return TRUE if the script is cased
- * @draft ICU 51
+ * @stable ICU 51
  */
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
 uscript_isCased(UScriptCode script);
 
-#endif  /* U_HIDE_DRAFT_API */
-
 #endif
diff --git a/common/unicode/utf8.h b/common/unicode/utf8.h
index 21e5f3d..7bd0b0e 100644
--- a/common/unicode/utf8.h
+++ b/common/unicode/utf8.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 1999-2013, International Business Machines
+*   Copyright (C) 1999-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -78,9 +78,9 @@
  * @internal
  */
 #define U8_COUNT_TRAIL_BYTES(leadByte) \
-    ((leadByte)<0xf0 ? \
-        ((leadByte)>=0xc0)+((leadByte)>=0xe0) : \
-        (leadByte)<0xfe ? 3+((leadByte)>=0xf8)+((leadByte)>=0xfc) : 0)
+    ((uint8_t)(leadByte)<0xf0 ? \
+        ((uint8_t)(leadByte)>=0xc0)+((uint8_t)(leadByte)>=0xe0) : \
+        (uint8_t)(leadByte)<0xfe ? 3+((uint8_t)(leadByte)>=0xf8)+((uint8_t)(leadByte)>=0xfc) : 0)
 
 /**
  * Counts the trail bytes for a UTF-8 lead byte of a valid UTF-8 sequence.
@@ -253,7 +253,6 @@
     U8_NEXT(s, _u8_get_index, length, c); \
 }
 
-#ifndef U_HIDE_DRAFT_API
 /**
  * Get a code point from a string at a random-access offset,
  * without changing the offset.
@@ -277,14 +276,13 @@
  * @param length int32_t string length
  * @param c output UChar32 variable, set to U+FFFD in case of an error
  * @see U8_GET
- * @draft ICU 51
+ * @stable ICU 51
  */
 #define U8_GET_OR_FFFD(s, start, i, length, c) { \
     int32_t _u8_get_index=(i); \
     U8_SET_CP_START(s, start, _u8_get_index); \
     U8_NEXT_OR_FFFD(s, _u8_get_index, length, c); \
 }
-#endif /* U_HIDE_DRAFT_API */
 
 /* definitions with forward iteration --------------------------------------- */
 
@@ -368,7 +366,6 @@
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
 /**
  * Get a code point from a string at a code point boundary offset,
  * and advance the offset to the next code point boundary.
@@ -391,7 +388,7 @@
  * @param length int32_t string length
  * @param c output UChar32 variable, set to U+FFFD in case of an error
  * @see U8_NEXT
- * @draft ICU 51
+ * @stable ICU 51
  */
 #define U8_NEXT_OR_FFFD(s, i, length, c) { \
     (c)=(uint8_t)(s)[(i)++]; \
@@ -419,7 +416,6 @@
         } \
     } \
 }
-#endif /* U_HIDE_DRAFT_API */
 
 /**
  * Append a code point to a string, overwriting 1 to 4 bytes.
@@ -676,7 +672,6 @@
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
 /**
  * Move the string offset from one code point boundary to the previous one
  * and get the code point between them.
@@ -699,7 +694,7 @@
  * @param i int32_t string offset, must be start<i
  * @param c output UChar32 variable, set to U+FFFD in case of an error
  * @see U8_PREV
- * @draft ICU 51
+ * @stable ICU 51
  */
 #define U8_PREV_OR_FFFD(s, start, i, c) { \
     (c)=(uint8_t)(s)[--(i)]; \
@@ -707,7 +702,6 @@
         (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -3); \
     } \
 }
-#endif /* U_HIDE_DRAFT_API */
 
 /**
  * Move the string offset from one code point boundary to the previous one.
diff --git a/common/unicode/uvernum.h b/common/unicode/uvernum.h
index deef1d7..d6fb07a 100644
--- a/common/unicode/uvernum.h
+++ b/common/unicode/uvernum.h
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-*   Copyright (C) 2000-2013, International Business Machines
+*   Copyright (C) 2000-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *
@@ -51,13 +51,13 @@
  *  @stable ICU 2.4
  */
 #define U_COPYRIGHT_STRING \
-  " Copyright (C) 2013, International Business Machines Corporation and others. All Rights Reserved. "
+  " Copyright (C) 2014, International Business Machines Corporation and others. All Rights Reserved. "
 
 /** The current ICU major version as an integer.
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION_MAJOR_NUM 52
+#define U_ICU_VERSION_MAJOR_NUM 53
 
 /** The current ICU minor version as an integer.
  *  This value will change in the subsequent releases of ICU
@@ -85,7 +85,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SUFFIX _52
+#define U_ICU_VERSION_SUFFIX _53
 
 /**
  * \def U_DEF2_ICU_ENTRY_POINT_RENAME
@@ -120,22 +120,23 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
+
 /* TODO FIX THIS WHEN BUILD level is updated */
 /* BEGIN Android patch */
-#define U_ICU_VERSION "52.2.0.1"
+#define U_ICU_VERSION "53.1.0.1"
 /* END Android patch */
 
 /** The current ICU library major/minor version as a string without dots, for library name suffixes.
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SHORT "52"
+#define U_ICU_VERSION_SHORT "53"
 
 #ifndef U_HIDE_INTERNAL_API
 /** Data version in ICU4C.
  * @internal ICU 4.4 Internal Use Only
  **/
-#define U_ICU_DATA_VERSION "52.1"
+#define U_ICU_DATA_VERSION "53.1"
 #endif  /* U_HIDE_INTERNAL_API */
 
 /*===========================================================================
@@ -151,7 +152,7 @@
  * This value may change in subsequent releases of ICU.
  * @stable ICU 2.4
  */
-#define UCOL_RUNTIME_VERSION 7
+#define UCOL_RUNTIME_VERSION 8
 
 /**
  * Collation builder code version.
@@ -160,7 +161,7 @@
  * This value may change in subsequent releases of ICU.
  * @stable ICU 2.4
  */
-#define UCOL_BUILDER_VERSION 8
+#define UCOL_BUILDER_VERSION 9
 
 /**
  * This is the version of collation tailorings.
diff --git a/common/unorm_it.c b/common/unorm_it.c
deleted file mode 100644
index 3adb1ce..0000000
--- a/common/unorm_it.c
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2003-2011, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  unorm_it.c
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2003jan21
-*   created by: Markus W. Scherer
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_COLLATION && !UCONFIG_NO_NORMALIZATION
-
-#include "unicode/uiter.h"
-#include "unicode/unorm.h"
-#include "unicode/utf.h"
-#include "unorm_it.h"
-#include "cmemory.h"
-
-/* UNormIterator ------------------------------------------------------------ */
-
-enum {
-    INITIAL_CAPACITY=100
-};
-
-struct UNormIterator {
-    UCharIterator api;
-    UCharIterator *iter;
-
-    /*
-     * chars and states either use the static buffers
-     * or are allocated in the same memory block
-     *
-     * They are parallel arrays with states[] holding the getState() values
-     * from normalization boundaries, and UITER_NO_STATE in between.
-     */
-    UChar *chars;
-    uint32_t *states;
-
-    /*
-     * api.start: first valid character & state in the arrays
-     * api.index: current position
-     * api.limit: one past the last valid character in chars[], but states[limit] is valid
-     * capacity: length of allocated arrays
-     */
-    int32_t capacity;
-
-    /* the current iter->getState(), saved to avoid unnecessary setState() calls; may not correspond to api->index! */
-    uint32_t state;
-
-    /* there are UChars available before start or after limit? */
-    UBool hasPrevious, hasNext, isStackAllocated;
-
-    UNormalizationMode mode;
-
-    UChar charsBuffer[INITIAL_CAPACITY];
-    uint32_t statesBuffer[INITIAL_CAPACITY+1]; /* one more than charsBuffer[]! */
-};
-
-static void
-initIndexes(UNormIterator *uni, UCharIterator *iter) {
-    /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
-    UCharIterator *api=&uni->api;
-
-    if(!iter->hasPrevious(iter)) {
-        /* set indexes to the beginning of the arrays */
-        api->start=api->index=api->limit=0;
-        uni->hasPrevious=FALSE;
-        uni->hasNext=iter->hasNext(iter);
-    } else if(!iter->hasNext(iter)) {
-        /* set indexes to the end of the arrays */
-        api->start=api->index=api->limit=uni->capacity;
-        uni->hasNext=FALSE;
-        uni->hasPrevious=iter->hasPrevious(iter);
-    } else {
-        /* set indexes into the middle of the arrays */
-        api->start=api->index=api->limit=uni->capacity/2;
-        uni->hasPrevious=uni->hasNext=TRUE;
-    }
-}
-
-static UBool
-reallocArrays(UNormIterator *uni, int32_t capacity, UBool addAtStart) {
-    /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
-    UCharIterator *api=&uni->api;
-
-    uint32_t *states;
-    UChar *chars;
-    int32_t start, limit;
-
-    states=(uint32_t *)uprv_malloc((capacity+1)*4+capacity*2);
-    if(states==NULL) {
-        return FALSE;
-    }
-
-    chars=(UChar *)(states+(capacity+1));
-    uni->capacity=capacity;
-
-    start=api->start;
-    limit=api->limit;
-
-    if(addAtStart) {
-        /* copy old contents to the end of the new arrays */
-        int32_t delta;
-
-        delta=capacity-uni->capacity;
-        uprv_memcpy(states+delta+start, uni->states+start, (limit-start+1)*4);
-        uprv_memcpy(chars+delta+start, uni->chars+start, (limit-start)*4);
-
-        api->start=start+delta;
-        api->index+=delta;
-        api->limit=limit+delta;
-    } else {
-        /* copy old contents to the beginning of the new arrays */
-        uprv_memcpy(states+start, uni->states+start, (limit-start+1)*4);
-        uprv_memcpy(chars+start, uni->chars+start, (limit-start)*4);
-    }
-
-    uni->chars=chars;
-    uni->states=states;
-
-    return TRUE;
-}
-
-static void
-moveContentsTowardStart(UCharIterator *api, UChar chars[], uint32_t states[], int32_t delta) {
-    /* move array contents up to make room */
-    int32_t srcIndex, destIndex, limit;
-
-    limit=api->limit;
-    srcIndex=delta;
-    if(srcIndex>api->start) {
-        /* look for a position in the arrays with a known state */
-        while(srcIndex<limit && states[srcIndex]==UITER_NO_STATE) {
-            ++srcIndex;
-        }
-    }
-
-    /* now actually move the array contents */
-    api->start=destIndex=0;
-    while(srcIndex<limit) {
-        chars[destIndex]=chars[srcIndex];
-        states[destIndex++]=states[srcIndex++];
-    }
-
-    /* copy states[limit] as well! */
-    states[destIndex]=states[srcIndex];
-
-    api->limit=destIndex;
-}
-
-static void
-moveContentsTowardEnd(UCharIterator *api, UChar chars[], uint32_t states[], int32_t delta) {
-    /* move array contents up to make room */
-    int32_t srcIndex, destIndex, start;
-
-    start=api->start;
-    destIndex=((UNormIterator *)api)->capacity;
-    srcIndex=destIndex-delta;
-    if(srcIndex<api->limit) {
-        /* look for a position in the arrays with a known state */
-        while(srcIndex>start && states[srcIndex]==UITER_NO_STATE) {
-            --srcIndex;
-        }
-    }
-
-    /* now actually move the array contents */
-    api->limit=destIndex;
-
-    /* copy states[limit] as well! */
-    states[destIndex]=states[srcIndex];
-
-    while(srcIndex>start) {
-        chars[--destIndex]=chars[--srcIndex];
-        states[destIndex]=states[srcIndex];
-    }
-
-    api->start=destIndex;
-}
-
-/* normalize forward from the limit, assume hasNext is true */
-static UBool
-readNext(UNormIterator *uni, UCharIterator *iter) {
-    /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
-    UCharIterator *api=&uni->api;
-
-    /* make capacity/4 room at the end of the arrays */
-    int32_t limit, capacity, room;
-    UErrorCode errorCode;
-
-    limit=api->limit;
-    capacity=uni->capacity;
-    room=capacity/4;
-    if(room>(capacity-limit)) {
-        /* move array contents to make room */
-        moveContentsTowardStart(api, uni->chars, uni->states, room);
-        api->index=limit=api->limit;
-        uni->hasPrevious=TRUE;
-    }
-
-    /* normalize starting from the limit position */
-    errorCode=U_ZERO_ERROR;
-    if(uni->state!=uni->states[limit]) {
-        uiter_setState(iter, uni->states[limit], &errorCode);
-        if(U_FAILURE(errorCode)) {
-            uni->state=UITER_NO_STATE;
-            uni->hasNext=FALSE;
-            return FALSE;
-        }
-    }
-
-    room=unorm_next(iter, uni->chars+limit, capacity-limit, uni->mode, 0, TRUE, NULL, &errorCode);
-    if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
-        if(room<=capacity) {
-            /* empty and re-use the arrays */
-            uni->states[0]=uni->states[limit];
-            api->start=api->index=api->limit=limit=0;
-            uni->hasPrevious=TRUE;
-        } else {
-            capacity+=room+100;
-            if(!reallocArrays(uni, capacity, FALSE)) {
-                uni->state=UITER_NO_STATE;
-                uni->hasNext=FALSE;
-                return FALSE;
-            }
-            limit=api->limit;
-        }
-
-        errorCode=U_ZERO_ERROR;
-        uiter_setState(iter, uni->states[limit], &errorCode);
-        room=unorm_next(iter, uni->chars+limit, capacity-limit, uni->mode, 0, TRUE, NULL, &errorCode);
-    }
-    if(U_FAILURE(errorCode) || room==0) {
-        uni->state=UITER_NO_STATE;
-        uni->hasNext=FALSE;
-        return FALSE;
-    }
-
-    /* room>0 */
-    ++limit; /* leave the known states[limit] alone */
-    for(--room; room>0; --room) {
-        /* set unknown states for all but the normalization boundaries */
-        uni->states[limit++]=UITER_NO_STATE;
-    }
-    uni->states[limit]=uni->state=uiter_getState(iter);
-    uni->hasNext=iter->hasNext(iter);
-    api->limit=limit;
-    return TRUE;
-}
-
-/* normalize backward from the start, assume hasPrevious is true */
-static UBool
-readPrevious(UNormIterator *uni, UCharIterator *iter) {
-    /* do not pass api so that the compiler knows it's an alias pointer to uni itself */
-    UCharIterator *api=&uni->api;
-
-    /* make capacity/4 room at the start of the arrays */
-    int32_t start, capacity, room;
-    UErrorCode errorCode;
-
-    start=api->start;
-    capacity=uni->capacity;
-    room=capacity/4;
-    if(room>start) {
-        /* move array contents to make room */
-        moveContentsTowardEnd(api, uni->chars, uni->states, room);
-        api->index=start=api->start;
-        uni->hasNext=TRUE;
-    }
-
-    /* normalize ending at the start position */
-    errorCode=U_ZERO_ERROR;
-    if(uni->state!=uni->states[start]) {
-        uiter_setState(iter, uni->states[start], &errorCode);
-        if(U_FAILURE(errorCode)) {
-            uni->state=UITER_NO_STATE;
-            uni->hasPrevious=FALSE;
-            return FALSE;
-        }
-    }
-
-    room=unorm_previous(iter, uni->chars, start, uni->mode, 0, TRUE, NULL, &errorCode);
-    if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
-        if(room<=capacity) {
-            /* empty and re-use the arrays */
-            uni->states[capacity]=uni->states[start];
-            api->start=api->index=api->limit=start=capacity;
-            uni->hasNext=TRUE;
-        } else {
-            capacity+=room+100;
-            if(!reallocArrays(uni, capacity, TRUE)) {
-                uni->state=UITER_NO_STATE;
-                uni->hasPrevious=FALSE;
-                return FALSE;
-            }
-            start=api->start;
-        }
-
-        errorCode=U_ZERO_ERROR;
-        uiter_setState(iter, uni->states[start], &errorCode);
-        room=unorm_previous(iter, uni->chars, start, uni->mode, 0, TRUE, NULL, &errorCode);
-    }
-    if(U_FAILURE(errorCode) || room==0) {
-        uni->state=UITER_NO_STATE;
-        uni->hasPrevious=FALSE;
-        return FALSE;
-    }
-
-    /* room>0 */
-    do {
-        /* copy the UChars from chars[0..room[ to chars[(start-room)..start[ */
-        uni->chars[--start]=uni->chars[--room];
-        /* set unknown states for all but the normalization boundaries */
-        uni->states[start]=UITER_NO_STATE;
-    } while(room>0);
-    uni->states[start]=uni->state=uiter_getState(iter);
-    uni->hasPrevious=iter->hasPrevious(iter);
-    api->start=start;
-    return TRUE;
-}
-
-/* Iterator runtime API functions ------------------------------------------- */
-
-static int32_t U_CALLCONV
-unormIteratorGetIndex(UCharIterator *api, UCharIteratorOrigin origin) {
-    switch(origin) {
-    case UITER_ZERO:
-    case UITER_START:
-        return 0;
-    case UITER_CURRENT:
-    case UITER_LIMIT:
-    case UITER_LENGTH:
-        return UITER_UNKNOWN_INDEX;
-    default:
-        /* not a valid origin */
-        /* Should never get here! */
-        return -1;
-    }
-}
-
-static int32_t U_CALLCONV
-unormIteratorMove(UCharIterator *api, int32_t delta, UCharIteratorOrigin origin) {
-    UNormIterator *uni=(UNormIterator *)api;
-    UCharIterator *iter=uni->iter;
-    int32_t pos;
-
-    switch(origin) {
-    case UITER_ZERO:
-    case UITER_START:
-        /* restart from the beginning */
-        if(uni->hasPrevious) {
-            iter->move(iter, 0, UITER_START);
-            api->start=api->index=api->limit=0;
-            uni->states[api->limit]=uni->state=uiter_getState(iter);
-            uni->hasPrevious=FALSE;
-            uni->hasNext=iter->hasNext(iter);
-        } else {
-            /* we already have the beginning of the normalized text */
-            api->index=api->start;
-        }
-        break;
-    case UITER_CURRENT:
-        break;
-    case UITER_LIMIT:
-    case UITER_LENGTH:
-        /* restart from the end */
-        if(uni->hasNext) {
-            iter->move(iter, 0, UITER_LIMIT);
-            api->start=api->index=api->limit=uni->capacity;
-            uni->states[api->limit]=uni->state=uiter_getState(iter);
-            uni->hasPrevious=iter->hasPrevious(iter);
-            uni->hasNext=FALSE;
-        } else {
-            /* we already have the end of the normalized text */
-            api->index=api->limit;
-        }
-        break;
-    default:
-        return -1;  /* Error */
-    }
-
-    /* move relative to the current position by delta normalized UChars */
-    if(delta==0) {
-        /* nothing to do */
-    } else if(delta>0) {
-        /* go forward until the requested position is in the buffer */
-        for(;;) {
-            pos=api->index+delta;   /* requested position */
-            delta=pos-api->limit;   /* remainder beyond buffered text */
-            if(delta<=0) {
-                api->index=pos;     /* position reached */
-                break;
-            }
-
-            /* go to end of buffer and normalize further */
-            api->index=api->limit;
-            if(!uni->hasNext || !readNext(uni, iter)) {
-                break;              /* reached end of text */
-            }
-        }
-    } else /* delta<0 */ {
-        /* go backward until the requested position is in the buffer */
-        for(;;) {
-            pos=api->index+delta;   /* requested position */
-            delta=pos-api->start;   /* remainder beyond buffered text */
-            if(delta>=0) {
-                api->index=pos;     /* position reached */
-                break;
-            }
-
-            /* go to start of buffer and normalize further */
-            api->index=api->start;
-            if(!uni->hasPrevious || !readPrevious(uni, iter)) {
-                break;              /* reached start of text */
-            }
-        }
-    }
-
-    if(api->index==api->start && !uni->hasPrevious) {
-        return 0;
-    } else {
-        return UITER_UNKNOWN_INDEX;
-    }
-}
-
-static UBool U_CALLCONV
-unormIteratorHasNext(UCharIterator *api) {
-    return api->index<api->limit || ((UNormIterator *)api)->hasNext;
-}
-
-static UBool U_CALLCONV
-unormIteratorHasPrevious(UCharIterator *api) {
-    return api->index>api->start || ((UNormIterator *)api)->hasPrevious;
-}
-
-static UChar32 U_CALLCONV
-unormIteratorCurrent(UCharIterator *api) {
-    UNormIterator *uni=(UNormIterator *)api;
-
-    if( api->index<api->limit ||
-        (uni->hasNext && readNext(uni, uni->iter))
-    ) {
-        return uni->chars[api->index];
-    } else {
-        return U_SENTINEL;
-    }
-}
-
-static UChar32 U_CALLCONV
-unormIteratorNext(UCharIterator *api) {
-    UNormIterator *uni=(UNormIterator *)api;
-
-    if( api->index<api->limit ||
-        (uni->hasNext && readNext(uni, uni->iter))
-    ) {
-        return uni->chars[api->index++];
-    } else {
-        return U_SENTINEL;
-    }
-}
-
-static UChar32 U_CALLCONV
-unormIteratorPrevious(UCharIterator *api) {
-    UNormIterator *uni=(UNormIterator *)api;
-
-    if( api->index>api->start ||
-        (uni->hasPrevious && readPrevious(uni, uni->iter))
-    ) {
-        return uni->chars[--api->index];
-    } else {
-        return U_SENTINEL;
-    }
-}
-
-static uint32_t U_CALLCONV
-unormIteratorGetState(const UCharIterator *api) {
-    /* not uni->state because that may not be at api->index */
-    return ((UNormIterator *)api)->states[api->index];
-}
-
-static void U_CALLCONV
-unormIteratorSetState(UCharIterator *api, uint32_t state, UErrorCode *pErrorCode) {
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        /* do nothing */
-    } else if(api==NULL) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-    } else if(state==UITER_NO_STATE) {
-        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-    } else {
-        UNormIterator *uni=(UNormIterator *)api;
-        UCharIterator *iter=((UNormIterator *)api)->iter;
-        if(state!=uni->state) {
-            uni->state=state;
-            uiter_setState(iter, state, pErrorCode);
-        }
-
-        /*
-         * Try shortcuts: If the requested state is in the array contents
-         * then just set the index there.
-         *
-         * We assume that the state is unique per position!
-         */
-        if(state==uni->states[api->index]) {
-            return;
-        } else if(state==uni->states[api->limit]) {
-            api->index=api->limit;
-            return;
-        } else {
-            /* search for the index with this state */
-            int32_t i;
-
-            for(i=api->start; i<api->limit; ++i) {
-                if(state==uni->states[i]) {
-                    api->index=i;
-                    return;
-                }
-            }
-        }
-
-        /* there is no array index for this state, reset for fresh contents */
-        initIndexes((UNormIterator *)api, iter);
-        uni->states[api->limit]=state;
-    }
-}
-
-static const UCharIterator unormIterator={
-    NULL, 0, 0, 0, 0, 0,
-    unormIteratorGetIndex,
-    unormIteratorMove,
-    unormIteratorHasNext,
-    unormIteratorHasPrevious,
-    unormIteratorCurrent,
-    unormIteratorNext,
-    unormIteratorPrevious,
-    NULL,
-    unormIteratorGetState,
-    unormIteratorSetState
-};
-
-/* Setup functions ---------------------------------------------------------- */
-
-U_CAPI UNormIterator * U_EXPORT2
-unorm_openIter(void *stackMem, int32_t stackMemSize, UErrorCode *pErrorCode) {
-    UNormIterator *uni;
-
-    /* argument checking */
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        return NULL;
-    }
-
-    /* allocate */
-    uni=NULL;
-    if(stackMem!=NULL && stackMemSize>=sizeof(UNormIterator)) {
-        if(U_ALIGNMENT_OFFSET(stackMem)==0) {
-            /* already aligned */
-            uni=(UNormIterator *)stackMem;
-        } else {
-            int32_t align=(int32_t)U_ALIGNMENT_OFFSET_UP(stackMem);
-            if((stackMemSize-=align)>=(int32_t)sizeof(UNormIterator)) {
-                /* needs alignment */
-                uni=(UNormIterator *)((char *)stackMem+align);
-            }
-        }
-        /* else does not fit */
-    }
-
-    if(uni!=NULL) {
-        uni->isStackAllocated=TRUE;
-    } else {
-        uni=(UNormIterator *)uprv_malloc(sizeof(UNormIterator));
-        if(uni==NULL) {
-            *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
-            return NULL;
-        }
-        uni->isStackAllocated=FALSE;
-    }
-
-    /*
-     * initialize
-     * do not memset because that would unnecessarily initialize the arrays
-     */
-    uni->iter=NULL;
-    uni->chars=uni->charsBuffer;
-    uni->states=uni->statesBuffer;
-    uni->capacity=INITIAL_CAPACITY;
-    uni->state=UITER_NO_STATE;
-    uni->hasPrevious=uni->hasNext=FALSE;
-    uni->mode=UNORM_NONE;
-
-    /* set a no-op iterator into the api */
-    uiter_setString(&uni->api, NULL, 0);
-    return uni;
-}
-
-U_CAPI void U_EXPORT2
-unorm_closeIter(UNormIterator *uni) {
-    if(uni!=NULL) {
-        if(uni->states!=uni->statesBuffer) {
-            /* chars and states are allocated in the same memory block */
-            uprv_free(uni->states);
-        }
-        if(!uni->isStackAllocated) {
-            uprv_free(uni);
-        }
-    }
-}
-
-U_CAPI UCharIterator * U_EXPORT2
-unorm_setIter(UNormIterator *uni, UCharIterator *iter, UNormalizationMode mode, UErrorCode *pErrorCode) {
-    /* argument checking */
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        return NULL;
-    }
-    if(uni==NULL) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
-    }
-    if( iter==NULL || iter->getState==NULL || iter->setState==NULL ||
-        mode<UNORM_NONE || UNORM_MODE_COUNT<=mode
-    ) {
-        /* set a no-op iterator into the api */
-        uiter_setString(&uni->api, NULL, 0);
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
-    }
-
-    /* set the iterator and initialize */
-    uprv_memcpy(&uni->api, &unormIterator, sizeof(unormIterator));
-
-    uni->iter=iter;
-    uni->mode=mode;
-
-    initIndexes(uni, iter);
-    uni->states[uni->api.limit]=uni->state=uiter_getState(iter);
-
-    return &uni->api;
-}
-
-#endif /* uconfig.h switches */
diff --git a/common/unorm_it.h b/common/unorm_it.h
deleted file mode 100644
index 384b7d4..0000000
--- a/common/unorm_it.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2003, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  unorm_it.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2003jan21
-*   created by: Markus W. Scherer
-*/
-
-#ifndef __UNORM_IT_H__
-#define __UNORM_IT_H__
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_COLLATION && !UCONFIG_NO_NORMALIZATION
-
-#include "unicode/uiter.h"
-#include "unicode/unorm.h"
-
-/**
- * Normalizing UCharIterator wrapper.
- * This internal API basically duplicates the functionality of the C++ Normalizer
- * but
- * - it actually implements a character iterator (UCharIterator)
- *   with few restrictions (see unorm_setIter())
- * - it supports UCharIterator getState()/setState()
- * - it uses lower-level APIs and buffers more text and states,
- *   hopefully resulting in higher performance
- *
- * Usage example:
- * \code
- * function(UCharIterator *srcIter) {
- *     UNormIterator *uni;
- *     UCharIterator *iter;
- *     UErrorCode errorCode;
- * 
- *     errorCode=U_ZERO_ERROR;
- *     uni=unorm_openIter(&errorCode);
- *     if(U_FAILURE(errorCode)) {
- *         // report error
- *         return;
- *     }
- * 
- *     iter=unorm_setIter(uni, srcIter, UNORM_FCD, &errorCode);
- *     if(U_FAILURE(errorCode)) {
- *         // report error
- *     } else {
- *         // use iter to iterate over the canonically ordered
- *         // version of srcIter's text
- *         uint32_t state;
- * 
- *         ...
- * 
- *         state=uiter_getState(iter);
- *         if(state!=UITER_NO_STATE) {
- *             // use valid state, store it, use iter some more
- *             ...
- * 
- *             // later restore iter to the saved state:
- *             uiter_setState(iter, state, &errorCode);
- * 
- *             ...
- *         }
- * 
- *         ...
- *     }
- *     unorm_closeIter(uni);
- * }
- * \endcode
- *
- * See also the ICU test suites.
- *
- * @internal
- */
-struct UNormIterator;
-typedef struct UNormIterator UNormIterator;
-
-/**
- * Size of a stack buffer to hold a UNormIterator, see the stackMem parameter
- * of unorm_openIter().
- *
- * @internal
- */
-#define UNORM_ITER_SIZE 1024
-
-/**
- * Open a normalizing iterator. Must be closed later.
- * Use unorm_setIter().
- *
- * @param stackMem Pointer to preallocated (stack-allocated) buffer to hold
- *                 the UNormIterator if possible; can be NULL.
- * @param stackMemSize Number of bytes at stackMem; can be 0,
- *                     or should be >= UNORM_ITER_SIZE for a non-NULL stackMem.
- * @param pErrorCode ICU error code
- * @return an allocated and pre-initialized UNormIterator
- * @internal
- */
-U_CAPI UNormIterator * U_EXPORT2
-unorm_openIter(void *stackMem, int32_t stackMemSize, UErrorCode *pErrorCode);
-
-/**
- * Close a normalizing iterator.
- *
- * @param uni UNormIterator from unorm_openIter()
- * @internal
- */
-U_CAPI void U_EXPORT2
-unorm_closeIter(UNormIterator *uni);
-
-/**
- * Set a UCharIterator and a normalization mode for the normalizing iterator
- * to wrap. The normalizing iterator will read from the character iterator,
- * normalize the text, and in turn deliver it with its own wrapper UCharIterator
- * interface which it returns.
- *
- * The source iterator remains at its current position through the unorm_setIter()
- * call but will be used and moved as soon as the
- * the returned normalizing iterator is.
- *
- * The returned interface pointer is valid for as long as the normalizing iterator
- * is open and until another unorm_setIter() call is made on it.
- *
- * The normalizing iterator's UCharIterator interface has the following properties:
- * - getIndex() and move() will almost always return UITER_UNKNOWN_INDEX
- * - getState() will return UITER_NO_STATE for unknown states for positions
- *              that are not at normalization boundaries
- *
- * @param uni UNormIterator from unorm_openIter()
- * @param iter The source text UCharIterator to be wrapped. It is aliases into the normalizing iterator.
- *             Must support getState() and setState().
- * @param mode The normalization mode.
- * @param pErrorCode ICU error code
- * @return an alias to the normalizing iterator's UCharIterator interface
- * @internal
- */
-U_CAPI UCharIterator * U_EXPORT2
-unorm_setIter(UNormIterator *uni, UCharIterator *iter, UNormalizationMode mode, UErrorCode *pErrorCode);
-
-#endif /* uconfig.h switches */
-
-#endif
diff --git a/common/uresdata.c b/common/uresdata.c
index 5ebeb0c..dabde52 100644
--- a/common/uresdata.c
+++ b/common/uresdata.c
@@ -1,9 +1,7 @@
 /*
 *******************************************************************************
-*                                                                             *
-* Copyright (C) 1999-2012, International Business Machines Corporation        *
-*               and others. All Rights Reserved.                              *
-*                                                                             *
+* Copyright (C) 1999-2014, International Business Machines Corporation
+*               and others. All Rights Reserved.
 *******************************************************************************
 *   file name:  uresdata.c
 *   encoding:   US-ASCII
@@ -755,7 +753,7 @@
                 /* its table key string is unknown but it looks like a collation binary */
                 ucol_looksLikeCollationBinary(ds, p+1, count))
         ) {
-            ucol_swapBinary(ds, p+1, count, q+1, pErrorCode);
+            ucol_swap(ds, p+1, count, q+1, pErrorCode);
         }
 #endif
         break;
diff --git a/common/ushape.cpp b/common/ushape.cpp
index 3517085..1799b63 100644
--- a/common/ushape.cpp
+++ b/common/ushape.cpp
@@ -1,7 +1,7 @@
 /*
  ******************************************************************************
  *
- *   Copyright (C) 2000-2013, International Business Machines
+ *   Copyright (C) 2000-2014, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  *
  ******************************************************************************
diff --git a/common/utext.cpp b/common/utext.cpp
index 396ee07..f16591f 100644
--- a/common/utext.cpp
+++ b/common/utext.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2005-2012, International Business Machines
+*   Copyright (C) 2005-2013, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
@@ -806,6 +806,11 @@
     adjustPointer(dest, &dest->r, src);
     adjustPointer(dest, (const void **)&dest->chunkContents, src);
 
+    // The newly shallow-cloned UText does _not_ own the underlying storage for the text.
+    // (The source for the clone may or may not have owned the text.)
+
+    dest->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT);
+
     return dest;
 }
 
@@ -1575,7 +1580,7 @@
 U_CDECL_END
 
 
-static const struct UTextFuncs utf8Funcs = 
+static const struct UTextFuncs utf8Funcs =
 {
     sizeof(UTextFuncs),
     0, 0, 0,             // Reserved alignment padding
@@ -1862,7 +1867,7 @@
     UnicodeString buffer(dest, 0, destCapacity); // writable alias
     rep->extractBetween(start32, limit32, buffer);
     repTextAccess(ut, limit32, TRUE);
-    
+
     return u_terminateUChars(dest, destCapacity, length, status);
 }
 
@@ -1984,7 +1989,7 @@
     repTextAccess(ut, nativeIterIndex, TRUE);
 }
 
-static const struct UTextFuncs repFuncs = 
+static const struct UTextFuncs repFuncs =
 {
     sizeof(UTextFuncs),
     0, 0, 0,           // Reserved alignment padding
@@ -1992,8 +1997,8 @@
     repTextLength,
     repTextAccess,
     repTextExtract,
-    repTextReplace,   
-    repTextCopy,   
+    repTextReplace,
+    repTextCopy,
     NULL,              // MapOffsetToNative,
     NULL,              // MapIndexToUTF16,
     repTextClose,
@@ -2235,7 +2240,7 @@
 
 }
 
-static const struct UTextFuncs unistrFuncs = 
+static const struct UTextFuncs unistrFuncs =
 {
     sizeof(UTextFuncs),
     0, 0, 0,             // Reserved alignment padding
@@ -2243,8 +2248,8 @@
     unistrTextLength,
     unistrTextAccess,
     unistrTextExtract,
-    unistrTextReplace,   
-    unistrTextCopy,   
+    unistrTextReplace,
+    unistrTextCopy,
     NULL,                // MapOffsetToNative,
     NULL,                // MapIndexToUTF16,
     unistrTextClose,
@@ -2548,7 +2553,7 @@
     return di;
 }
 
-static const struct UTextFuncs ucstrFuncs = 
+static const struct UTextFuncs ucstrFuncs =
 {
     sizeof(UTextFuncs),
     0, 0, 0,           // Reserved alignment padding
@@ -2765,14 +2770,14 @@
         }
         srci += len;
     }
-    
+
     charIterTextAccess(ut, copyLimit, TRUE);
 
     u_terminateUChars(dest, destCapacity, desti, status);
     return desti;
 }
 
-static const struct UTextFuncs charIterFuncs = 
+static const struct UTextFuncs charIterFuncs =
 {
     sizeof(UTextFuncs),
     0, 0, 0,             // Reserved alignment padding
@@ -2832,6 +2837,3 @@
     }
     return ut;
 }
-
-
-
diff --git a/common/utrace.c b/common/utrace.c
index 803dfcf..c2f36c4 100644
--- a/common/utrace.c
+++ b/common/utrace.c
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-*   Copyright (C) 2003-2008, International Business Machines
+*   Copyright (C) 2003-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  utrace.c
@@ -467,6 +467,8 @@
     "ucol_getLocale",
     "ucol_nextSortKeyPart",
     "ucol_strcollIter",
+    "ucol_openFromShortString",
+    "ucol_strcollUTF8",
     NULL
 };
 
diff --git a/common/utrie2.cpp b/common/utrie2.cpp
index 86b6a77..5f873c5 100644
--- a/common/utrie2.cpp
+++ b/common/utrie2.cpp
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 2001-2013, International Business Machines
+*   Copyright (C) 2001-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -399,6 +399,35 @@
     return 0;
 }
 
+U_CAPI UBool U_EXPORT2
+utrie2_isFrozen(const UTrie2 *trie) {
+    return (UBool)(trie->newTrie==NULL);
+}
+
+U_CAPI int32_t U_EXPORT2
+utrie2_serialize(const UTrie2 *trie,
+                 void *data, int32_t capacity,
+                 UErrorCode *pErrorCode) {
+    /* argument check */
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+
+    if( trie==NULL || trie->memory==NULL || trie->newTrie!=NULL ||
+        capacity<0 || (capacity>0 && (data==NULL || (U_POINTER_MASK_LSB(data, 3)!=0)))
+    ) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    if(capacity>=trie->length) {
+        uprv_memcpy(data, trie->memory, trie->length);
+    } else {
+        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
+    }
+    return trie->length;
+}
+
 U_CAPI int32_t U_EXPORT2
 utrie2_swap(const UDataSwapper *ds,
             const void *inData, int32_t length, void *outData,
diff --git a/common/utrie2.h b/common/utrie2.h
index d7985fb..36ea9b4 100644
--- a/common/utrie2.h
+++ b/common/utrie2.h
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 2001-2013, International Business Machines
+*   Copyright (C) 2001-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -319,7 +319,7 @@
  * @see utrie2_openFromSerialized()
  */
 U_CAPI int32_t U_EXPORT2
-utrie2_serialize(UTrie2 *trie,
+utrie2_serialize(const UTrie2 *trie,
                  void *data, int32_t capacity,
                  UErrorCode *pErrorCode);
 
diff --git a/common/utrie2_builder.cpp b/common/utrie2_builder.cpp
index 8d2a4e1..f195453 100644
--- a/common/utrie2_builder.cpp
+++ b/common/utrie2_builder.cpp
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 2001-2011, International Business Machines
+*   Copyright (C) 2001-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -1417,35 +1417,6 @@
     trie->newTrie=NULL;
 }
 
-U_CAPI UBool U_EXPORT2
-utrie2_isFrozen(const UTrie2 *trie) {
-    return (UBool)(trie->newTrie==NULL);
-}
-
-U_CAPI int32_t U_EXPORT2
-utrie2_serialize(UTrie2 *trie,
-                 void *data, int32_t capacity,
-                 UErrorCode *pErrorCode) {
-    /* argument check */
-    if(U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-
-    if( trie==NULL || trie->memory==NULL || trie->newTrie!=NULL ||
-        capacity<0 || (capacity>0 && (data==NULL || (U_POINTER_MASK_LSB(data, 3)!=0)))
-    ) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return 0;
-    }
-
-    if(capacity>=trie->length) {
-        uprv_memcpy(data, trie->memory, trie->length);
-    } else {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
-    return trie->length;
-}
-
 /*
  * This is here to avoid a dependency from utrie2.cpp on utrie.c.
  * This file already depends on utrie.c.
diff --git a/common/utypeinfo.h b/common/utypeinfo.h
index 4de16d6..6874c6b 100644
--- a/common/utypeinfo.h
+++ b/common/utypeinfo.h
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 2012, International Business Machines
+*   Copyright (C) 2012-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
@@ -22,6 +22,9 @@
 #include <exception>
 using std::exception;
 #endif
+#if !defined(_MSC_VER)
+namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+#endif
 #include <typeinfo>  // for 'typeid' to work
 
 #endif
diff --git a/common/uvectr64.h b/common/uvectr64.h
index 05cbc35..0692821 100644
--- a/common/uvectr64.h
+++ b/common/uvectr64.h
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 1999-2010, International Business Machines
+*   Copyright (C) 1999-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 */
@@ -122,7 +122,7 @@
 
     int32_t size(void) const;
 
-    //UBool isEmpty(void) const;
+    inline UBool isEmpty(void) const { return count == 0; }
 
     // Inline.  Use this one for speedy size check.
     inline UBool ensureCapacity(int32_t minimumCapacity, UErrorCode &status);
diff --git a/common/wintz.c b/common/wintz.c
index 0af6dc4..bceaebb 100644
--- a/common/wintz.c
+++ b/common/wintz.c
@@ -17,7 +17,6 @@
 #include "cmemory.h"
 #include "cstring.h"
 
-#include "unicode/ustring.h"
 #include "unicode/ures.h"
 
 #   define WIN32_LEAN_AND_MEAN
@@ -250,7 +249,6 @@
     UErrorCode status = U_ZERO_ERROR;
     UResourceBundle* bundle = NULL;
     char* icuid = NULL;
-    UChar apiStd[MAX_LENGTH_ID];
     char apiStdName[MAX_LENGTH_ID];
     char regStdName[MAX_LENGTH_ID];
     char tmpid[MAX_LENGTH_ID];
@@ -279,8 +277,7 @@
 
     /* Convert the wchar_t* standard name to char* */
     uprv_memset(apiStdName, 0, sizeof(apiStdName));
-    u_strFromWCS(apiStd, MAX_LENGTH_ID, NULL, apiTZI.StandardName, -1, &status);
-    u_austrncpy(apiStdName, apiStd, sizeof(apiStdName) - 1);
+    wcstombs(apiStdName, apiTZI.StandardName, MAX_LENGTH_ID);
 
     tmpid[0] = 0;
 
diff --git a/config.guess b/config.guess
index b79252d..9afd676 100644
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-06-10'
+timestamp='2013-11-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1260,16 +1260,26 @@
 	if test "$UNAME_PROCESSOR" = unknown ; then
 	    UNAME_PROCESSOR=powerpc
 	fi
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_64BIT_ARCH >/dev/null
-	    then
-		case $UNAME_PROCESSOR in
-		    i386) UNAME_PROCESSOR=x86_64 ;;
-		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
-		esac
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
 	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
 	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
diff --git a/config.sub b/config.sub
index 9633db7..61cb4bc 100644
--- a/config.sub
+++ b/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-08-10'
+timestamp='2013-10-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -265,6 +265,7 @@
 	| hexagon \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| k1om \
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -324,7 +325,7 @@
 	c6x)
 		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
@@ -381,6 +382,7 @@
 	| hexagon-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| k1om-* \
 	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
diff --git a/config/Makefile.inc.in b/config/Makefile.inc.in
index c34de8b..8a0154f 100644
--- a/config/Makefile.inc.in
+++ b/config/Makefile.inc.in
@@ -1,6 +1,6 @@
 ## -*-makefile-*-
 #******************************************************************************
-#   Copyright (C) 1999-2012, International Business Machines
+#   Copyright (C) 1999-2013, International Business Machines
 #   Corporation and others.  All Rights Reserved.
 #******************************************************************************
 # This Makefile.inc is designed to be included into projects which make use
@@ -115,7 +115,7 @@
 ICULIBS_OBSOLETE = -l$(ICUPREFIX)obsolete$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
 ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
 ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_BASE = $(LIBS) -L$(libdir)
+ICULIBS_BASE = -L$(libdir)
 
 # for icu-config to test with
 ICULIBS_COMMON_LIB_NAME = ${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}
@@ -186,11 +186,11 @@
 	ARFLAGS := @ARFLAGS@ $(ARFLAGS)
 #SH#ARFLAGS="@ARFLAGS@ ${ARFLAGS}"
 CC = @CC@
-CFLAGS = @CFLAGS@ 
 CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(prefix)/include
+CFLAGS = @UCONFIG_CFLAGS@ 
+CPPFLAGS = @UCONFIG_CPPFLAGS@ -I$(prefix)/include
+CXXFLAGS = @UCONFIG_CXXFLAGS@
 CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@ 
 DEFAULT_MODE = @DATA_PACKAGING_MODE@
 DEFS = @DEFS@ 
 FFLAGS = @FFLAGS@
@@ -201,7 +201,7 @@
 INSTALL_PROGRAM  =  @INSTALL_PROGRAM@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
-LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
+LDFLAGS = $(RPATHLDFLAGS)
 LIBS = @LIBS@ 
 LIB_M = @LIB_M@
 LIB_VERSION = @LIB_VERSION@
diff --git a/config/icu-config-bottom b/config/icu-config-bottom
index d509cbd..8a89c14 100644
--- a/config/icu-config-bottom
+++ b/config/icu-config-bottom
@@ -258,7 +258,7 @@
 	    ;;
 
 	--ldflags)
-	    echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${LIBS} ${ECHO_C}"
+	    echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
 # $RPATH_LDFLAGS
 	    ;;
 
diff --git a/config/mh-cygwin-msvc b/config/mh-cygwin-msvc
index b6682c9..af86dd3 100644
--- a/config/mh-cygwin-msvc
+++ b/config/mh-cygwin-msvc
@@ -10,8 +10,8 @@
 ## Commands to generate dependency files
 GEN_DEPS.c=	:
 GEN_DEPS.cc=	:
-#GEN_DEPS.c=	$(COMPILE.c) /E
-#GEN_DEPS.cc=	$(COMPILE.cc) /E
+#GEN_DEPS.c=	$(COMPILE.c) -E
+#GEN_DEPS.cc=	$(COMPILE.cc) -E
 
 ## Flags to create/use a static library
 ifneq ($(ENABLE_SHARED),YES)
@@ -45,37 +45,37 @@
 # /EHsc enables exception handling
 # /Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
 # -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions.
-CFLAGS+=/GF /nologo
-CXXFLAGS+=/GF /nologo /EHsc /Zc:wchar_t
+CFLAGS+=-GF -nologo
+CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t
 CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
 DEFS+=-DWIN32 -DCYGWINMSVC
-LDFLAGS+=/nologo
+LDFLAGS+=-nologo
 
 # Commands to compile
-COMPILE.c=	$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) /c
-COMPILE.cc=	$(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) /c
+COMPILE.c=	$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
+COMPILE.cc=	$(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
 
 # Commands to link
-LINK.c=		LINK.EXE /subsystem:console $(LDFLAGS)
-LINK.cc=	LINK.EXE /subsystem:console $(LDFLAGS)
+LINK.c=		LINK.EXE -subsystem:console $(LDFLAGS)
+LINK.cc=	LINK.EXE -subsystem:console $(LDFLAGS)
 
 ## Commands to make a shared library
-SHLIB.c=	LINK.EXE /DLL $(LDFLAGS)
-SHLIB.cc=	LINK.EXE /DLL $(LDFLAGS)
+SHLIB.c=	LINK.EXE -DLL $(LDFLAGS)
+SHLIB.cc=	LINK.EXE -DLL $(LDFLAGS)
 
 ## Compiler switch to embed a runtime search path
 LD_RPATH=	
 LD_RPATH_PRE=
 
 ## Compiler switch to embed a library name
-LD_SONAME = /IMPLIB:$(SO_TARGET:.dll=.lib)
+LD_SONAME = -IMPLIB:$(SO_TARGET:.dll=.lib)
 
 ## Shared object suffix
 SO = dll
 ## Non-shared intermediate object suffix
 STATIC_O = ao
 # OUTOPT is for creating a specific output name
-OUTOPT = /out:
+OUTOPT = -out:
 
 # Static library prefix and file extension
 LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX)
@@ -83,9 +83,9 @@
 
 # Cygwin's ar can't handle Win64 right now. So we use Microsoft's tool instead.
 AR = LIB.EXE#M#
-ARFLAGS := /nologo $(ARFLAGS:r=)#M#
+ARFLAGS := -nologo $(ARFLAGS:r=)#M#
 RANLIB = ls -s#M#
-AR_OUTOPT = /OUT:#M#
+AR_OUTOPT = -OUT:#M#
 
 ## An import library is needed for z/OS, MSVC and Cygwin
 IMPORT_LIB_EXT = .lib
@@ -114,14 +114,14 @@
 LIBICUTOOLUTIL=	$(LIBDIR)/$(LIBICU)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX).lib
 
 ## These are the library specific LDFLAGS
-LDFLAGSICUDT+=	/base:"0x4ad00000" /NOENTRY# The NOENTRY option is required for creating a resource-only DLL.
-LDFLAGSICUUC=	/base:"0x4a800000"# in-uc = 1MB
-LDFLAGSICUI18N=	/base:"0x4a900000"# io-in = 2MB
-LDFLAGSICUIO=	/base:"0x4ab00000"# le-io = 1MB
-LDFLAGSICULE=	/base:"0x4ac00000"# lx-le = 512KB
-LDFLAGSICULX=	/base:"0x4ac80000"
+LDFLAGSICUDT+=	-base:"0x4ad00000" -NOENTRY# The NOENTRY option is required for creating a resource-only DLL.
+LDFLAGSICUUC=	-base:"0x4a800000"# in-uc = 1MB
+LDFLAGSICUI18N=	-base:"0x4a900000"# io-in = 2MB
+LDFLAGSICUIO=	-base:"0x4ab00000"# le-io = 1MB
+LDFLAGSICULE=	-base:"0x4ac00000"# lx-le = 512KB
+LDFLAGSICULX=	-base:"0x4ac80000"
 LDFLAGSCTESTFW=# Unused for now.
-LDFLAGSICUTOOLUTIL=	/base:"0x4ac00000"# Same as layout. Layout and tools probably won't mix.
+LDFLAGSICUTOOLUTIL=	-base:"0x4ac00000"# Same as layout. Layout and tools probably won't mix.
 
 # The #M# is used to delete lines for icu-config
 # Current full path directory.
@@ -137,14 +137,14 @@
 
 ## Compilation rules
 %.$(STATIC_O): $(srcdir)/%.c
-	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) /Fo$@ $(SOURCE_FILE)
+	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -Fo$@ $(SOURCE_FILE)
 %.o: $(srcdir)/%.c
-	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) /Fo$@ $(SOURCE_FILE)
+	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -Fo$@ $(SOURCE_FILE)
 
 %.$(STATIC_O): $(srcdir)/%.cpp
-	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) /Fo$@ $(SOURCE_FILE)
+	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -Fo$@ $(SOURCE_FILE)
 %.o: $(srcdir)/%.cpp
-	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) /Fo$@ $(SOURCE_FILE)
+	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -Fo$@ $(SOURCE_FILE)
 
 
 ## Dependency rules
@@ -175,7 +175,7 @@
 
 ## Compile a Windows resource file
 %.res : $(srcdir)/%.rc
-	rc.exe /fo$@ $(CPPFLAGS) $(SOURCE_FILE)
+	rc.exe -fo$@ $(CPPFLAGS) $(SOURCE_FILE)
 
 ## Versioned target for a shared library.
 FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
diff --git a/config/mh-os390 b/config/mh-os390
index 056f891..decd98b 100644
--- a/config/mh-os390
+++ b/config/mh-os390
@@ -1,6 +1,6 @@
 ## -*-makefile-*-
 ## os/390, z/OS specific setup 
-## Copyright (c) 1999-2013, International Business Machines Corporation and
+## Copyright (c) 1999-2014, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
 ###################################################################
@@ -42,13 +42,13 @@
 endif
 
 ifeq (${IEEE390}, 1)
-ICU_IEEE          =#M#
-else
 ICU_IEEE          = -Wc,'FLOAT(IEEE)' -DIEEE_754=0#M#
+else
+ICU_IEEE          =#M#
 endif
 
 ## Additional flags when building libraries and with threads
-THREADSCPPFLAGS = -D_OPEN_THREADS
+THREADSCPPFLAGS = -D_OPEN_THREADS=3
 
 # For a dynamically called DLL module to share access to the POSIX external
 # variables, with its caller, the DLL module must define these _SHR_* macros.
@@ -137,30 +137,37 @@
 endif
 
 ifeq ($(OS390BATCH),1)
+## PDS_NAME_PREFIX sets the prefix of the PDS dataset name while keeping the ICU version number.
+## To use custom names set ICU_PDS_NAME and ICU_PDS_NAME_SUFFIX
 ## IXM is used as a name prefix for XML Toolkit, default value
 ifeq ($(PDS_NAME_PREFIX),)
 PDS_NAME_PREFIX= IXMI
 endif
-ifeq ($(OS390_STUBDATA),1)
-BATCH_STUB_TARGET=	"//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}D1)'"
-BATCH_LIBICUDT=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}D1)'"
+ifeq ($(ICU_PDS_NAME),)
+PDS_FULL_NAME=${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}
 else
-BATCH_STUB_TARGET=	"//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}DA)'"
-BATCH_LIBICUDT=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}DA)'"
+PDS_FULL_NAME=${ICU_PDS_NAME}
+endif
+ifeq ($(OS390_STUBDATA),1)
+BATCH_STUB_TARGET=	"//'${LOADMOD}(${PDS_FULL_NAME}D1${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICUDT=		"//'${LOADEXP}(${PDS_FULL_NAME}D1${ICU_PDS_NAME_SUFFIX})'"
+else
+BATCH_STUB_TARGET=	"//'${LOADMOD}(${PDS_FULL_NAME}DA${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICUDT=		"//'${LOADEXP}(${PDS_FULL_NAME}DA${ICU_PDS_NAME_SUFFIX})'"
 PKGDATA_DEFS        += -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\"
 endif
 
-BATCH_COMMON_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}UC)'"
-BATCH_I18N_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IN)'"
-BATCH_IO_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IO)'"
-BATCH_LAYOUT_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LE)'"
-BATCH_LAYOUTEX_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LX)'"
+BATCH_COMMON_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}UC${ICU_PDS_NAME_SUFFIX})'"
+BATCH_I18N_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}IN${ICU_PDS_NAME_SUFFIX})'"
+BATCH_IO_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}IO${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LAYOUT_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}LE${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LAYOUTEX_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}LX${ICU_PDS_NAME_SUFFIX})'"
 
-BATCH_LIBICUUC=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}UC)'"
-BATCH_LIBICUI18N=	"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IN)'"
-BATCH_LIBICUIO=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IO)'"
-BATCH_LIBICULE=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LE)'"
-BATCH_LIBICULX=		"//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LX)'"
+BATCH_LIBICUUC=		"//'${LOADEXP}(${PDS_FULL_NAME}UC${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICUI18N=	"//'${LOADEXP}(${PDS_FULL_NAME}IN${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICUIO=		"//'${LOADEXP}(${PDS_FULL_NAME}IO${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICULE=		"//'${LOADEXP}(${PDS_FULL_NAME}LE${ICU_PDS_NAME_SUFFIX})'"
+BATCH_LIBICULX=		"//'${LOADEXP}(${PDS_FULL_NAME}LX${ICU_PDS_NAME_SUFFIX})'"
 endif
 
 
diff --git a/configure b/configure
index 340ad6f..dd98833 100755
--- a/configure
+++ b/configure
@@ -7470,7 +7470,7 @@
 
 
 # output the Makefiles
-ac_config_files="$ac_config_files icudefs.mk Makefile data/pkgdataMakefile config/Makefile.inc config/icu.pc config/pkgdataMakefile data/Makefile stubdata/Makefile common/Makefile i18n/Makefile layout/Makefile layoutex/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/uconv/pkgdataMakefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/toolutil/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/gendict/Makefile tools/gentest/Makefile tools/gennorm2/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icuinfo/Makefile tools/icupkg/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/tzcode/Makefile tools/gencfu/Makefile test/Makefile test/compat/Makefile test/testdata/Makefile test/testdata/pkgdataMakefile test/hdrtst/Makefile test/intltest/Makefile test/cintltst/Makefile test/iotest/Makefile test/letest/Makefile test/perf/Makefile test/perf/collationperf/Makefile test/perf/collperf/Makefile test/perf/dicttrieperf/Makefile test/perf/ubrkperf/Makefile test/perf/charperf/Makefile test/perf/convperf/Makefile test/perf/normperf/Makefile test/perf/DateFmtPerf/Makefile test/perf/howExpensiveIs/Makefile test/perf/strsrchperf/Makefile test/perf/unisetperf/Makefile test/perf/usetperf/Makefile test/perf/ustrperf/Makefile test/perf/utfperf/Makefile test/perf/utrie2perf/Makefile test/perf/leperf/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/layout/Makefile"
+ac_config_files="$ac_config_files icudefs.mk Makefile data/pkgdataMakefile config/Makefile.inc config/icu.pc config/pkgdataMakefile data/Makefile stubdata/Makefile common/Makefile i18n/Makefile layout/Makefile layoutex/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/uconv/pkgdataMakefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/toolutil/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/gendict/Makefile tools/gentest/Makefile tools/gennorm2/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icuinfo/Makefile tools/icupkg/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/tzcode/Makefile tools/gencfu/Makefile test/Makefile test/compat/Makefile test/testdata/Makefile test/testdata/pkgdataMakefile test/hdrtst/Makefile test/intltest/Makefile test/cintltst/Makefile test/iotest/Makefile test/letest/Makefile test/perf/Makefile test/perf/collationperf/Makefile test/perf/collperf/Makefile test/perf/collperf2/Makefile test/perf/dicttrieperf/Makefile test/perf/ubrkperf/Makefile test/perf/charperf/Makefile test/perf/convperf/Makefile test/perf/normperf/Makefile test/perf/DateFmtPerf/Makefile test/perf/howExpensiveIs/Makefile test/perf/strsrchperf/Makefile test/perf/unisetperf/Makefile test/perf/usetperf/Makefile test/perf/ustrperf/Makefile test/perf/utfperf/Makefile test/perf/utrie2perf/Makefile test/perf/leperf/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/layout/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -8239,6 +8239,7 @@
     "test/perf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/Makefile" ;;
     "test/perf/collationperf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/collationperf/Makefile" ;;
     "test/perf/collperf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/collperf/Makefile" ;;
+    "test/perf/collperf2/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/collperf2/Makefile" ;;
     "test/perf/dicttrieperf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/dicttrieperf/Makefile" ;;
     "test/perf/ubrkperf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/ubrkperf/Makefile" ;;
     "test/perf/charperf/Makefile") CONFIG_FILES="$CONFIG_FILES test/perf/charperf/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index f56b533..d52b1e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1325,6 +1325,7 @@
 		test/perf/Makefile \
 		test/perf/collationperf/Makefile \
 		test/perf/collperf/Makefile \
+		test/perf/collperf2/Makefile \
 		test/perf/dicttrieperf/Makefile \
 		test/perf/ubrkperf/Makefile \
 		test/perf/charperf/Makefile \
@@ -1338,7 +1339,7 @@
 		test/perf/ustrperf/Makefile \
 		test/perf/utfperf/Makefile \
 		test/perf/utrie2perf/Makefile \
-                test/perf/leperf/Makefile \
+		test/perf/leperf/Makefile \
 		samples/Makefile samples/date/Makefile \
 		samples/cal/Makefile samples/layout/Makefile])
 AC_OUTPUT
diff --git a/data/Makefile.in b/data/Makefile.in
index 53018b9..f26bcb5 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -1,5 +1,5 @@
 ## Makefile.in for ICU data
-## Copyright (c) 1999-2013, International Business Machines Corporation and
+## Copyright (c) 1999-2014, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
 ## Source directory information
@@ -44,7 +44,11 @@
 ifeq ($(CURDIR),)
 CURDIR=.
 endif
+ifeq ($(OS390BATCH),1)
+PKGDATA = $(TOOLBINDIR)/pkgdata $(PKGDATA_OPTS) -z -q -c -s $(CURDIR)/out/build/$(ICUDATA_PLATFORM_NAME) -d $(ICUPKGDATA_OUTDIR)
+else
 PKGDATA = $(TOOLBINDIR)/pkgdata $(PKGDATA_OPTS) -q -c -s $(CURDIR)/out/build/$(ICUDATA_PLATFORM_NAME) -d $(ICUPKGDATA_OUTDIR)
+endif
 OS390_PDS_NAME = -z -L $(BATCH_STUB_TARGET)
 
 ifeq ($(OS390_STUBDATA),1)
@@ -109,7 +113,7 @@
 .PHONY : all all-local all-recursive install install-local install-files	\
 install-recursive clean clean-local clean-recursive distclean		\
 distclean-local distclean-recursive dist dist-local dist-recursive	\
-check check-local check-recursive build-local clean-resindex build-dir icudata.jar	\
+check check-local check-recursive clean-resindex icudata.jar	\
 check-exhaustive
 
 ## Clear suffix list
@@ -139,6 +143,7 @@
 	-test -z *.map || $(RMV) *.map
 
 clean-local: cleanpackage cleanfiles clean-map
+	$(RMV) build-dir* build-local packagedata uni-core-data
 
 cleanfiles:
 	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
@@ -180,12 +185,10 @@
 endif
 ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
 	$(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
-ifeq ($(OS390BATCH),1)
-	$(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(OS390_PDS_NAME) $(PKGDATA_LIST)
-endif
 else
 	$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
 endif
+	echo timestamp > $@
 
 ## Install ICU data.
 install-local: $(PKGDATA_LIST) ./icupkg.inc packagedata $(OS390INSTALL)
@@ -240,7 +243,7 @@
 #  2010-dec Removed pnames.icu.
 # These are now hardcoded in ICU4C and only loaded in ICU4J.
 #
-DAT_FILES_SHORT=unames.icu cnvalias.icu coll/ucadata.icu coll/invuca.icu nfc.nrm nfkc.nrm nfkc_cf.nrm uts46.nrm
+DAT_FILES_SHORT=unames.icu cnvalias.icu coll/ucadata.icu nfc.nrm nfkc.nrm nfkc_cf.nrm uts46.nrm
 DAT_FILES=$(DAT_FILES_SHORT:%=$(BUILDDIR)/%)
 
 ## BRK files
@@ -430,16 +433,18 @@
 ifneq ($(INCLUDE_UNI_CORE_DATA),)
 MISC_FILES_LIST+=$(UNI_CORE_DATA)
 build-local: uni-core-data
+	echo timestamp > $@
 endif
 
 #####################################################
 # General data build rules
 
 ## Files to remove for 'make clean'
-CLEANFILES = *~ icupkg.inc
+CLEANFILES = *~ icupkg.inc *.x
 
 ifeq ($(ICUDATA_SOURCE_ARCHIVE),)
 build-local: build-dir $(SO_VERSION_DATA) $(ALL_FILES) $(PKGDATA_LIST) $(OS390LIST)
+	echo timestamp > $@
 $(PKGDATA_LIST): $(SRCLISTDEPS)
 	@echo "generating $@ (list of data files)"
 	@-$(RMV) $@
@@ -457,6 +462,7 @@
 	done;
 else
 build-local: build-dir $(SO_VERSION_DATA) $(PKGDATA_LIST) $(OS390LIST)
+	echo timestamp > $@
 $(PKGDATA_LIST): $(SRCLISTDEPS) $(ICUDATA_SOURCE_ARCHIVE)
 ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
 	@echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)"
@@ -471,6 +477,8 @@
 $(BUILD_DIRS): build-dir
 
 build-dir:
+	@-$(RMV) $@
+	echo timestamp > $@.tmp
 	@list='$(BUILD_DIRS)'; \
 	for dir in $$list; do \
 	  if ! test -d $$dir; then \
@@ -478,6 +486,7 @@
 	    $(MKINSTALLDIRS) $(BUILD_DIRS); \
 	  fi; \
 	done
+	mv $@.tmp $@
 
 # The | is an order-only prerequisite. This helps when the -j option is used,
 # and we don't want the files to be built before the directories are built.
@@ -784,6 +793,7 @@
 # when updating the Unicode data.
 uni-core-data: build-dir $(UNI_CORE_TARGET_DATA)
 	@echo Unicode .icu files built to $(BUILDDIR)
+	echo timestamp > $@
 
 # Build the ICU4J icudata.jar.
 # Command line:
diff --git a/data/brkitr/brkfiles.mk b/data/brkitr/brkfiles.mk
index ff51182..54e44a8 100644
--- a/data/brkitr/brkfiles.mk
+++ b/data/brkitr/brkfiles.mk
@@ -1,6 +1,6 @@
 # *   Copyright (C) 1998-2014, International Business Machines
 # *   Corporation and others.  All Rights Reserved.
-BRK_RES_CLDR_VERSION = 24
+BRK_RES_CLDR_VERSION = 25
 # A list of txt's to build
 # Note:
 #
@@ -43,6 +43,7 @@
 
 
 # Ordinary resources
-BRK_RES_SOURCE = el.txt en.txt en_US.txt en_US_POSIX.txt\
- fi.txt ja.txt
+BRK_RES_SOURCE = de.txt el.txt en.txt en_US.txt\
+ en_US_POSIX.txt es.txt fi.txt fr.txt it.txt\
+ ja.txt pt.txt ru.txt
 
diff --git a/data/brkitr/cjdict.txt b/data/brkitr/cjdict.txt
index bc63cfb..debeabd 100644
--- a/data/brkitr/cjdict.txt
+++ b/data/brkitr/cjdict.txt
@@ -18825,6 +18825,7 @@
 アルザタワーズ	163
 アルシンド	134
 アルジェ	108
+アルジェリア	109
 アルジュムフリア	181
 アルス	110
 アルセ	120
@@ -19414,6 +19415,7 @@
 インド	80
 インドア	104
 インドシナ半島	128
+インドネシア	94
 インドネシアルピア	144
 インドホシガメ	142
 インドルピー	143
@@ -19655,6 +19657,7 @@
 ウスバカゲロウ	135
 ウスリー	134
 ウズベ	107
+ウズベキスタン	109
 ウズラ	113
 ウズラマメ	161
 ウソ	92
@@ -20534,6 +20537,7 @@
 オーストラリア	88
 オーストラリアドル	122
 オーストラリアン	116
+オーストリア	97
 オーストリアシリング	156
 オーソドックシー	192
 オーソドックス	105
@@ -20699,6 +20703,7 @@
 カザック	146
 カザニ	155
 カザフ	106
+カザフスタン	106
 カザルス	121
 カシ	85
 カシアス	130
@@ -21811,6 +21816,7 @@
 ギラン	114
 ギリギリ	93
 ギリシ	91
+ギリシャ	95
 ギリシャドラクマ	168
 ギルダー	129
 ギルド	96
@@ -27772,6 +27778,7 @@
 ニューイヤー	109
 ニューイングランド医学ジャーナル	171
 ニューギニアダトニオ	164
+ニュージーランド	96
 ニュース	64
 ニュースキャスター	117
 ニュースソース	119
@@ -28432,6 +28439,7 @@
 ハンウィ	158
 ハンカチ	100
 ハンガ	96
+ハンガリー	98
 ハンガー	96
 ハンガーストライキ	135
 ハンク	116
@@ -30288,6 +30296,7 @@
 ブラシ	89
 ブラジ	108
 ブラジャー	99
+ブラジル	84
 ブラスバンド	112
 ブラスール	161
 ブラチスラバ	130
@@ -31553,6 +31562,7 @@
 ポル	90
 ポルカ	114
 ポルト	92
+ポルトガル	95
 ポルトガルエクスード	251
 ポルトラーニン	179
 ポルノ	95
@@ -32080,6 +32090,7 @@
 マル優	123
 マレ	104
 マレー	91
+マレーシア	95
 マレーシアドル	148
 マレーシアリンギ	142
 マレー半島	122
diff --git a/data/brkitr/de.txt b/data/brkitr/de.txt
new file mode 100644
index 0000000..e5599a2
--- /dev/null
+++ b/data/brkitr/de.txt
@@ -0,0 +1,157 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/de.xml ../../xml/brkitr/de.xml
+// *
+// ***************************************************************************
+de{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "gedr.",
+            "Di.",
+            "Ges.",
+            "frz.",
+            "entspr.",
+            "Gebr.",
+            "erw.",
+            "Frl.",
+            "Inh.",
+            "k.u.k.",
+            "evtl.",
+            "i.B.",
+            "kgl.",
+            "o.B.",
+            "Sa.",
+            "ev.",
+            "Dez.",
+            "am.",
+            "i.R.",
+            "eigtl.",
+            "i.J.",
+            "u.U.",
+            "z.Hd.",
+            "u.A.w.g.",
+            "St.",
+            "led.",
+            "Ing.",
+            "amtl.",
+            "i.A.",
+            "Msp.",
+            "Chr.",
+            "sog.",
+            "schw\u00E4b.",
+            "Aug.",
+            "Dipl.-Ing.",
+            "Hbf.",
+            "Fa.",
+            "Mo.",
+            "n.u.Z.",
+            "Mrd.",
+            "verh.",
+            "Hr./Hrn.",
+            "Ztr.",
+            "k. u. k.",
+            "b.",
+            "kath.",
+            "i.H.",
+            "v.R.w.",
+            "o.A.",
+            "Abs.",
+            "M\u00E4r.",
+            "Dtzd.",
+            "jhrl.",
+            "s.a.",
+            "t\u00E4gl.",
+            "gest.",
+            "gesch.",
+            "z.B.",
+            "Abt.",
+            "e.Wz.",
+            "v.T.",
+            "Nov.",
+            "z.",
+            "n. Chr.",
+            "u.v.a.",
+            "i.V.",
+            "ggf./ggfs.",
+            "Jan.",
+            "od.",
+            "Pfd.",
+            "a.a.O.",
+            "p.Adr.",
+            "zzgl.",
+            "v. Chr.",
+            "a.Rh.",
+            "z.Z.",
+            "m.W.",
+            "Dir.",
+            "Verf.",
+            "r.",
+            "Adr.",
+            "Sep.",
+            "Kl.",
+            "hpts.",
+            "Feb.",
+            "jew.",
+            "a.M.",
+            "Str.",
+            "exkl.",
+            "ehem.",
+            "n\u00E4ml.",
+            "Dipl.-Kfm.",
+            "mtl.",
+            "Hrsg.",
+            "u.\u00C4.",
+            "u.",
+            "Kap.",
+            "a.D.",
+            "r\u00F6m.",
+            "v.u.Z.",
+            "Fr.",
+            "d.J.",
+            "Reg.-Bez.",
+            "m.E.",
+            "schles.",
+            "inkl.",
+            "geb.",
+            "e.h.",
+            "kfm.",
+            "Nr.",
+            "d.\u00C4.",
+            "verw.",
+            "vgl.",
+            "Do.",
+            "v.Chr.",
+            "s.",
+            "e.V.",
+            "m\u00F6bl.",
+            "F.f.",
+            "a.a.S.",
+            "v. H.",
+            "Apr.",
+            "v.H.",
+            "So.",
+            "einschl.",
+            "StR.",
+            "Fam.",
+            "u.a.",
+            "schweiz.",
+            "o.g.",
+            "Kfm.",
+            "Mi.",
+            "beil.",
+            "r\u00F6m.-kath.",
+            "Okt.",
+            "u.\u00E4.",
+            "Hptst.",
+            "s\u00FCdd.",
+            "Mio.",
+            "Forts. f.",
+            "gek.",
+            "\u00F6sterr.",
+        }
+    }
+}
diff --git a/data/brkitr/el.txt b/data/brkitr/el.txt
index be25d55..33a62dd 100644
--- a/data/brkitr/el.txt
+++ b/data/brkitr/el.txt
@@ -3,11 +3,11 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/el.xml
+// * Source File: <path>/common/segments/el.xml ../../xml/brkitr/el.xml
 // *
 // ***************************************************************************
 el{
-    Version{"1.1"}
+    Version{"2.0.82.42"}
     boundaries{
         sentence:process(dependency){"sent_el.brk"}
     }
diff --git a/data/brkitr/en.txt b/data/brkitr/en.txt
index 43707d9..5ce2450 100644
--- a/data/brkitr/en.txt
+++ b/data/brkitr/en.txt
@@ -3,9 +3,36 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/en.xml
+// * Source File: <path>/common/segments/en.xml ../../xml/brkitr/en.xml
 // *
 // ***************************************************************************
 en{
-    Version{"1.1"}
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "Maj.",
+            "Mr.",
+            "Lt.Cdr.",
+            "Pvt.",
+            "Lt.",
+            "Hon.B.A.",
+            "exec.",
+            "Md.",
+            "Capt.",
+            "Col.",
+            "Prof.",
+            "Rev.",
+            "Ph.D.",
+            "pp.",
+            "Mrs.",
+            "PP.",
+            "Ms.",
+            "vs.",
+            "Sgt.",
+            "A.D.",
+            "Fri.",
+            "a.m.",
+            "Mt.",
+        }
+    }
 }
diff --git a/data/brkitr/en_US.txt b/data/brkitr/en_US.txt
index 2d24f2e..a5ab726 100644
--- a/data/brkitr/en_US.txt
+++ b/data/brkitr/en_US.txt
@@ -3,9 +3,9 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/en_US.xml
+// * Source File: <path>/common/segments/en_US.xml ../../xml/brkitr/en_US.xml
 // *
 // ***************************************************************************
 en_US{
-    Version{"1.1"}
+    Version{"2.0.98.38"}
 }
diff --git a/data/brkitr/en_US_POSIX.txt b/data/brkitr/en_US_POSIX.txt
index 2b5f598..86c3b68 100644
--- a/data/brkitr/en_US_POSIX.txt
+++ b/data/brkitr/en_US_POSIX.txt
@@ -3,11 +3,11 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/en_US_POSIX.xml
+// * Source File: <path>/common/segments/en_US_POSIX.xml ../../xml/brkitr/en_US_POSIX.xml
 // *
 // ***************************************************************************
 en_US_POSIX{
-    Version{"1.1"}
+    Version{"2.0.82.42"}
     boundaries{
         word:process(dependency){"word_POSIX.brk"}
     }
diff --git a/data/brkitr/es.txt b/data/brkitr/es.txt
new file mode 100644
index 0000000..bdf48cc
--- /dev/null
+++ b/data/brkitr/es.txt
@@ -0,0 +1,126 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/es.xml ../../xml/brkitr/es.xml
+// *
+// ***************************************************************************
+es{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "Rdos.",
+            "JJ.OO.",
+            "Ltd.",
+            "fig.",
+            "cap.",
+            "ss.",
+            "doc.",
+            "Excmo.",
+            "Excmos.",
+            "FF.CC.",
+            "trad.",
+            "Rvdos.",
+            "ed.",
+            "Exmo.",
+            "col.",
+            "Srtas.",
+            "vid.",
+            "Sra.",
+            "ntra.",
+            "Da.",
+            "dtor.",
+            "cf.",
+            "e.g.",
+            "prov.",
+            "Emm.",
+            "Sr.",
+            "licdo.",
+            "p.ej.",
+            "bol.",
+            "figs.",
+            "Vda.",
+            "Dr.",
+            "ntro.",
+            "Reg.",
+            "O.M.",
+            "Ldo.",
+            "Drs.",
+            "Ltda.",
+            "Lcda.",
+            "Exma.",
+            "SS.MM.",
+            "Lda.",
+            "R.D.",
+            "v.gr.",
+            "vs.",
+            "Ilmas.",
+            "Rdo.",
+            "ej.",
+            "Ilmos.",
+            "Excma.",
+            "afma.",
+            "licda.",
+            "Em.",
+            "sras.",
+            "MM.",
+            "fund.",
+            "Mons.",
+            "Lcdo.",
+            "dpto.",
+            "Av.",
+            "Col.",
+            "Srta.",
+            "dptos.",
+            "D.",
+            "Rev.",
+            "Rvdmos.",
+            "Fr.",
+            "Ilmo.",
+            "afmos.",
+            "Sres.",
+            "afmas.",
+            "prof.",
+            "SS.AA.",
+            "mss.",
+            "D\u00F1a.",
+            "Rvdmo.",
+            "afmo.",
+            "ms.",
+            "Sras.",
+            "sres.",
+            "hnos.",
+            "Sta.",
+            "Sdad.",
+            "Dra.",
+            "srs.",
+            "deptos.",
+            "a.C.",
+            "bco.",
+            "C\u00EDa.",
+            "Mr.",
+            "Excmas.",
+            "D\u00AA.",
+            "Rvdo.",
+            "d.C.",
+            "Lic.",
+            "cfr.",
+            "Corp.",
+            "Dto.",
+            "Ilma.",
+            "PP.",
+            "Exc.",
+            "Ltdo.",
+            "Mrs.",
+            "Avda.",
+            "Exmas.",
+            "mtro.",
+            "Exmos.",
+            "AA.",
+            "Sto.",
+            "depto.",
+            "c/c.",
+        }
+    }
+}
diff --git a/data/brkitr/fi.txt b/data/brkitr/fi.txt
index 20ca63c..4287a89 100644
--- a/data/brkitr/fi.txt
+++ b/data/brkitr/fi.txt
@@ -3,11 +3,11 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/fi.xml
+// * Source File: <path>/common/segments/fi.xml ../../xml/brkitr/fi.xml
 // *
 // ***************************************************************************
 fi{
-    Version{"2.2.89.3"}
+    Version{"2.0.82.42"}
     boundaries{
         line:process(dependency){"line_fi.brk"}
     }
diff --git a/data/brkitr/fr.txt b/data/brkitr/fr.txt
new file mode 100644
index 0000000..47f464d
--- /dev/null
+++ b/data/brkitr/fr.txt
@@ -0,0 +1,76 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/fr.xml ../../xml/brkitr/fr.xml
+// *
+// ***************************************************************************
+fr{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "aux.",
+            "config.",
+            "collab.",
+            "M.",
+            "dim.",
+            "imprim.",
+            "oct.",
+            "syst.",
+            "bull.",
+            "MM.",
+            "doc.",
+            "h\u00F4p.",
+            "quart.",
+            "dir.",
+            "adr.",
+            "symb.",
+            "jeu.",
+            "anc.",
+            "voit.",
+            "graph.",
+            "\u00E9d.",
+            "fig.",
+            "cam.",
+            "\u00E9val.",
+            "juil.",
+            "dict.",
+            "f\u00E9vr.",
+            "\u00E9quiv.",
+            "sept.",
+            "acoust.",
+            "nov.",
+            "anon.",
+            "illustr.",
+            "avr.",
+            "dest.",
+            "P.-D. G.",
+            "ill.",
+            "\u00E9dit.",
+            "encycl.",
+            "mer.",
+            "broch.",
+            "ven.",
+            "lun.",
+            "append.",
+            "r\u00E9f.",
+            "categ.",
+            "sam.",
+            "janv.",
+            "imm.",
+            "coll.",
+            "mar.",
+            "exempl.",
+            "d\u00E9c.",
+            "ann.",
+            "synth.",
+            "indus.",
+            "av. J.-C.",
+            "niv.",
+            "ap. J.-C.",
+            "gouv.",
+            "trav. publ.",
+        }
+    }
+}
diff --git a/data/brkitr/it.txt b/data/brkitr/it.txt
new file mode 100644
index 0000000..ebeeb26
--- /dev/null
+++ b/data/brkitr/it.txt
@@ -0,0 +1,49 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/it.xml ../../xml/brkitr/it.xml
+// *
+// ***************************************************************************
+it{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "N.B.",
+            "div.",
+            "a.C.",
+            "fig.",
+            "d.p.R.",
+            "c.c.p.",
+            "Geom.",
+            "O.d.G.",
+            "S.p.A.",
+            "ver.",
+            "N.d.A.",
+            "dott.",
+            "arch.",
+            "d.C.",
+            "N.d.T.",
+            "rag.",
+            "Sig.",
+            "pag.",
+            "dr.",
+            "N.d.E.",
+            "mitt.",
+            "Ing.",
+            "vol.",
+            "on.",
+            "C.P.",
+            "ag.",
+            "int.",
+            "p.i.",
+            "tab.",
+            "all.",
+            "sez.",
+            "avv.",
+            "tav.",
+            "p.",
+        }
+    }
+}
diff --git a/data/brkitr/ja.txt b/data/brkitr/ja.txt
index ac47e89..3eb81d0 100644
--- a/data/brkitr/ja.txt
+++ b/data/brkitr/ja.txt
@@ -3,11 +3,11 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/ja.xml
+// * Source File: <path>/common/segments/ja.xml ../../xml/brkitr/ja.xml
 // *
 // ***************************************************************************
 ja{
-    Version{"1.1"}
+    Version{"2.0.82.42"}
     boundaries{
         line:process(dependency){"line_ja.brk"}
     }
diff --git a/data/brkitr/pt.txt b/data/brkitr/pt.txt
new file mode 100644
index 0000000..eded2e4
--- /dev/null
+++ b/data/brkitr/pt.txt
@@ -0,0 +1,185 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/pt.xml ../../xml/brkitr/pt.xml
+// *
+// ***************************************************************************
+pt{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "psicol.",
+            "fig.",
+            "compl.",
+            "rep.",
+            "cap.",
+            "doc.",
+            "fisiol.",
+            "dipl.",
+            "astron.",
+            "port.",
+            "eletr\u00F4n.",
+            "geom.",
+            "mov.",
+            "ago.",
+            "trad.",
+            "arquit.",
+            "dez.",
+            "ed.",
+            "apt.",
+            "Exmo.",
+            "col.",
+            "ff.",
+            "univ.",
+            "res.",
+            "R.",
+            "transp.",
+            "D.C",
+            "l.",
+            "des.",
+            "fev.",
+            "abr.",
+            "liter.",
+            "lat.",
+            "Dir.",
+            "cf.",
+            "adm.",
+            "fot.",
+            "p.m. ; P.M.",
+            "cr\u00E9d.",
+            "jur.",
+            "com.",
+            "anat.",
+            "dir.",
+            "end.",
+            "f\u00EDs.",
+            "E.",
+            "Est.",
+            "cont.",
+            "matem.",
+            "Drs.",
+            "g\u00EAn.",
+            "neol.",
+            "p\u00E1g.",
+            "\u00EDnd.",
+            "Ltda.",
+            "Exma.",
+            "esp.",
+            "ingl.",
+            "tecnol.",
+            "Mar.",
+            "s\u00EDmb.",
+            "Pe.",
+            "pal.",
+            "filos.",
+            "V.T.",
+            "fasc.",
+            "vs.",
+            "mai.",
+            "S.A.",
+            "profa.",
+            "N.Sra.",
+            "r.s.v.p.",
+            "cel.",
+            "mat.",
+            "abrev.",
+            "out.",
+            "long.",
+            "aux.",
+            "arit.",
+            "aer.",
+            "jul.",
+            "lin.",
+            "S.",
+            "m\u00E9d.",
+            "odontol.",
+            "org.",
+            "A.C.",
+            "jun.",
+            "d\u00E9b.",
+            "Av.",
+            "\u00E1lg.",
+            "sup.",
+            "fl.",
+            "odont.",
+            "caps.",
+            "relat.",
+            "organiz.",
+            "hist.",
+            "Fr.",
+            "Ilmo.",
+            "fem.",
+            "ap.",
+            "Ltd.",
+            "pol.",
+            "s\u00E9c.",
+            "prof.",
+            "cx.",
+            "nov.",
+            "qu\u00EDm.",
+            "m\u00FAs.",
+            "agric.",
+            "mar.",
+            "W.C.",
+            "fr.",
+            "cat.",
+            "jan.",
+            "pron.",
+            "rel.",
+            "autom.",
+            "Sta.",
+            "Dra.",
+            "p.",
+            "tel.",
+            "div.",
+            "p. ex.",
+            "a.C.",
+            "bras.",
+            "Alm.",
+            "Dr.",
+            "comp.",
+            "pq.",
+            "arqueol.",
+            "n\u00E1ut.",
+            "biogr.",
+            "f.",
+            "c\u00EDrc.",
+            "fac.",
+            "d.C.",
+            "apart.",
+            "ex.",
+            "Jr.",
+            "set.",
+            "tec.",
+            "sociol.",
+            "gram.",
+            "ind.",
+            "Ilma.",
+            "vol.",
+            "eng.",
+            "rod.",
+            "Ph.D.",
+            "Dras.",
+            "pp.",
+            "elem.",
+            "m\u00E1q.",
+            "c\u00F3d.",
+            "eletr.",
+            "prod.",
+            "ref.",
+            "fil.",
+            "a.m. ; A.M",
+            "obs.",
+            "N.T.",
+            "contab.",
+            "Sto.",
+            "lit.",
+            "educ.",
+            "rementente",
+            "desc.",
+            "pr\u00F3x.",
+        }
+    }
+}
diff --git a/data/brkitr/root.txt b/data/brkitr/root.txt
index 88f8006..ce05d5b 100644
--- a/data/brkitr/root.txt
+++ b/data/brkitr/root.txt
@@ -3,11 +3,11 @@
 // * Copyright (C) 2014 International Business Machines
 // * Corporation and others. All Rights Reserved.
 // * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/xml/brkitr/root.xml
+// * Source File: <path>/common/segments/root.xml ../../xml/brkitr/root.xml
 // *
 // ***************************************************************************
 root{
-    Version{"1.1"}
+    Version{"2.0.92.92"}
     boundaries{
         grapheme:process(dependency){"char.brk"}
         line:process(dependency){"line.brk"}
diff --git a/data/brkitr/ru.txt b/data/brkitr/ru.txt
new file mode 100644
index 0000000..6a3407e
--- /dev/null
+++ b/data/brkitr/ru.txt
@@ -0,0 +1,32 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2014 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
+// * Source File: <path>/common/segments/ru.xml ../../xml/brkitr/ru.xml
+// *
+// ***************************************************************************
+ru{
+    Version{"2.0.92.29"}
+    exceptions{
+        SentenceBreak:array{
+            "\u0440\u0443\u0431.",
+            "\u044F\u043D\u0432.",
+            "\u0442\u0435\u043B.",
+            "\u0434\u043E \u043D.\u044D.",
+            "\u0434\u0435\u043A.",
+            "\u0444\u0435\u0432\u0440.",
+            "\u043D\u043E\u044F\u0431.",
+            "\u0430\u043F\u0440.",
+            "\u043E\u043A\u0442.",
+            "\u0442\u044B\u0441.",
+            "\u0430\u0432\u0433.",
+            "\u043F\u0440\u043E\u0444.",
+            "\u0441\u0435\u043D\u0442.",
+            "\u043D.\u044D.",
+            "\u043A\u0432.",
+            "\u0443\u043B.",
+            "\u043E\u0442\u0434.",
+        }
+    }
+}
diff --git a/data/brkitr/thaidict.txt b/data/brkitr/thaidict.txt
index 0976775..3b58bbf 100644
--- a/data/brkitr/thaidict.txt
+++ b/data/brkitr/thaidict.txt
@@ -1,4 +1,4 @@
-  #  	Copyright (c) 2006-2013 International Business Machines Corporation,
+  #  	Copyright (c) 2006-2014 International Business Machines Corporation,
   #  	Apple Inc., and others. All Rights Reserved.
 กก
 กกขนาก
@@ -1333,6 +1333,7 @@
 กาฐ
 กาฐมัณฑุ
 กาด
+กาตมันดุ
 กาตมานดุ
 กาน
 กานดา
@@ -1401,6 +1402,7 @@
 การัณย์
 การันต์
 การาจ
+การาจี
 การุญ
 การุณย์
 การเกษตร
@@ -1598,6 +1600,7 @@
 กิติพาณิชย์
 กิน
 กินชัน
+กินชาซา
 กินดิบ
 กินนร
 กินปลี
@@ -4083,6 +4086,7 @@
 ฉกษัตริย์
 ฉกาจ
 ฉกามาพจร
+ฉงชิ่ง
 ฉงน
 ฉงาย
 ฉทวาร
@@ -4869,6 +4873,7 @@
 ซาทินสปาร์
 ซาน
 ซานตาคลอส
+ซานฟรานซิสโก
 ซานา
 ซานิดีน
 ซาบ
@@ -4901,6 +4906,7 @@
 ซาอุดิอาระเบีย
 ซาอุดีอาระเบีย
 ซาเกรบ
+ซาเกร็บ
 ซาแมเรียม
 ซาโพไนต์
 ซาโยนาระ
@@ -5051,6 +5057,7 @@
 ซูโครส
 ซูโม
 ซูโม่
+ซูริค
 ซู่
 ซู่ซ่า
 ซู้ด
@@ -5252,6 +5259,7 @@
 ดับ
 ดับจิต
 ดับชีพ
+ดับบลิน
 ดับลม
 ดับลิน
 ดับเบิล
@@ -5265,6 +5273,7 @@
 ดั้น
 ดา
 ดาก
+ดากา
 ดาการ์
 ดาด
 ดาดฟ้า
@@ -5442,6 +5451,7 @@
 ดีเลย์
 ดีเอ็นเอ
 ดีแตก
+ดีทรอยต์
 ดีแล้ว
 ดีโมเครซี
 ดีใจ
@@ -7545,6 +7555,7 @@
 นครศรีธรรมราช
 นครสวรรค์
 นครหลวง
+นครโฮจิมินห์
 นคราทร
 นครินทร์
 นครเขื่อนขันธ์
@@ -8397,6 +8408,7 @@
 บรูไน
 บฤงคพ
 บลัฟฟ์
+บลูทูธ
 บลูเบอร์รี
 บล็อก
 บล็อค
@@ -8955,6 +8967,7 @@
 บูชิโด
 บูซท์
 บูด
+บูดาเปส
 บูดาเปสต์
 บูดู
 บูต
@@ -12424,6 +12437,7 @@
 มอร์แกไนต์
 มอลตา
 มอลล์
+มอสโก
 มอลเดเวีย
 มอลโทส
 มอสโคว์
@@ -12663,6 +12677,7 @@
 มากกว่า
 มากมาย
 มากว่า
+มาเก๊า
 มาคสิร
 มาคิน
 มาฆ
@@ -14160,6 +14175,7 @@
 ริปุ
 ริม
 ริยาด
+ริยาร์ด
 ริวกิว
 ริษยา
 ริอ่าน
@@ -14578,6 +14594,7 @@
 ลอร์เรนเซียม
 ลอว์ซอไนต์
 ลอว์เรนเซียม
+ลอสแองเจลิส
 ลออ
 ลอแลนด์
 ละ
@@ -15113,6 +15130,7 @@
 ลูบคม
 ลูบคลำ
 ลูบตัว
+ลูบลิยานา
 ลูบไล้
 ลูอันดา
 ลูเธอร์รัน
@@ -18088,6 +18106,7 @@
 สแปม
 สแลง
 สโกปิลอส
+สโกเปีย
 สโคป
 สโตรค
 สโตร์
@@ -20092,6 +20111,7 @@
 อินเดีย
 อินเดียนา
 อินเดียนาโปลิส
+อินเดียแนโพลิส
 อินเดียนแดง
 อินเดียม
 อินเตอร์
@@ -20123,6 +20143,7 @@
 อิษฏ์
 อิส
 อิสตรี
+อิสตันบูล
 อิสร
 อิสรภาพ
 อิสระ
@@ -21039,6 +21060,7 @@
 เคียดแค้น
 เคียน
 เคียนชา
+เคียฟ
 เคียม
 เคียร
 เคียว
@@ -23897,6 +23919,7 @@
 แทสเมเนีย
 แทะ
 แทะโลม
+แท็ก
 แท็กซี่
 แท็กซ์
 แท็งก์น้ำ
@@ -24516,6 +24539,7 @@
 แอบาโก
 แอบแฝง
 แอปเปิล
+แอปพลิเคชัน
 แอพพลิเคชัน
 แอพเพล็ต
 แอฟริกา
@@ -24634,6 +24658,7 @@
 โกลบอล
 โกลาหล
 โกล์
+โกลกาตา
 โกวิท
 โกศ
 โกศล
@@ -24986,6 +25011,7 @@
 โทรม
 โทรศัพท์
 โทรสาร
+โทรอนโต
 โทรเลข
 โทลา
 โทศก
diff --git a/data/brkitr/title.txt b/data/brkitr/title.txt
index e3f6566..30c1c40 100644
--- a/data/brkitr/title.txt
+++ b/data/brkitr/title.txt
@@ -1,32 +1,53 @@
-# Copyright (c) 2002-2003, International Business Machines Corporation and
+# Copyright (c) 2002-2014, International Business Machines Corporation and
 # others. All Rights Reserved.
 #
 #  Title Casing Break Rules
 #
 
+
 $CaseIgnorable   = [[:Mn:][:Me:][:Cf:][:Lm:][:Sk:] \u0027 \u00AD \u2019];
 $Cased           = [[:Upper_Case:][:Lower_Case:][:Lt:]  - $CaseIgnorable];
-$NotCased        = [^ $Cased];
+$NotCased        = [[^ $Cased] - $CaseIgnorable];
 
-#
-#  If the iterator was not stopped on a cased character, advance it to the first cased char
-#
-$NotCased+;
+!!forward;
 
-#
-#  If the iterator starts on a cased item, advance through all adjacent cased items plus
-#    any non-cased stuff, to reach the start of the next word.
-#
-$Cased ($Cased | $CaseIgnorable)* $NotCased*;
+#  If the iterator begins on a CaseIgnorable, advance it past it/them.
+#  This can occur at the start-of-text, or after application of the
+#  safe-reverse rule.
 
-#
+($CaseIgnorable | $NotCased)*;
+
+#   Normal exact forward rule: beginning at the start of a word
+#         (at a cased character), advance through the word and through
+#         the uncased characters following the word.
+
+$Cased ($Cased | $CaseIgnorable)* ($NotCased | $CaseIgnorable)*;
+
+
 #  Reverse Rules
-#
+!!reverse;
 
-! $NotCased+;
+#  Normal Rule, will work nearly universally, so long as there is a
+#    start-of-word preceding the current iteration position.
 
-#
-#  If the iterator starts on a cased item, advance through all adjacent cased items plus
-#    any non-cased stuff, to reach the start of the next word.
-#
-! $NotCased* ($Cased | $CaseIgnorable)* $Cased;
\ No newline at end of file
+($NotCased | $CaseIgnorable)* ($Cased | $CaseIgnorable)* $Cased;
+
+#  Short rule, will be effective only when moving to the start of text,
+#    with no word (cased character) preceding the current iteration position.
+
+($NotCased | $CaseIgnorable)*;
+
+!!safe_reverse;
+
+# Safe Reverse: the exact forward rule must not start in the middle
+#  of a word, so the safe reverse skips over any Cased characters,
+#  leaving it just before the start of a word.
+
+($Cased | $CaseIgnorable)*;
+
+!!safe_forward;
+
+# Safe Forward, nothing needs to be done, the exact Reverse rules will
+#   always find valid boundaries from any starting position.
+#   Still, some rule is needed, so '.', a one character movement.
+.;
diff --git a/data/build.xml b/data/build.xml
index 758be41..cba26ed 100644
--- a/data/build.xml
+++ b/data/build.xml
@@ -1,11 +1,12 @@
 <!DOCTYPE project [
     <!ENTITY icu-config SYSTEM "./icu-config.xml">
     <!ENTITY icu-locale-deprecates SYSTEM "./icu-locale-deprecates.xml">
+    <!ENTITY icu-coll-deprecates SYSTEM "./icu-coll-deprecates.xml">
 ]>
 <!--
 /*
 *******************************************************************************
-* Copyright (C) 2005-2013, International Business Machines Corporation and    *
+* Copyright (C) 2005-2014, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 */
@@ -83,6 +84,18 @@
             <!--<ant target='trnsfiles'></ant> Not ANT-built - see
             note below. -->
           </sequential>
+          <sequential>
+          	<ant target='keyTypeData'/>
+          </sequential>
+          <sequential>
+          	<ant target='genderList'/>
+          </sequential>
+          <sequential>
+          	<ant target='postalCodeData'/>
+          </sequential>
+          <sequential>
+          	<ant target='dayPeriods'/>
+          </sequential>
         </parallel>
      </target>
 
@@ -135,32 +148,7 @@
                 </args>
                 <!-- http://ant.apache.org/faq.html#xml-entity-include -->
                 &icu-config;
-                <deprecates>
-                    <alias from="de__PHONEBOOK" to="de"  rbpath="/collations/default" value="phonebook"/>
-                    <alias from="es__TRADITIONAL" to="es" rbpath="/collations/default" value="traditional"/>
-                    <alias from="in" to="id" />
-                    <alias from="in_ID" to="id_ID" />
-                    <alias from="iw" to="he" />
-                    <alias from="iw_IL" to="he_IL" />
-                    <alias from="mo" to="ro_MD" />
-                    <alias from="no" to="nb" />
-                    <alias from="no_NO" to="nb_NO" />
-                    <alias from="pa_IN" to="pa_Guru_IN" />
-                    <alias from="sh" to="sr_Latn" />
-                    <alias from="sh_BA" to="sr_Latn_BA" />
-                    <alias from="sh_CS" to="sr_Latn_RS" />
-                    <alias from="sh_YU" to="sr_Latn_RS" />
-                    <alias from="sr_BA" to="sr_Cyrl_BA" />
-                    <alias from="sr_ME" to="sr_Cyrl_ME" />
-                    <alias from="sr_RS" to="sr_Cyrl_RS" />
-                    <alias from="zh_CN" to="zh_Hans_CN" />
-                    <alias from="zh_SG" to="zh_Hans_SG" />
-                    <alias from="zh_HK" to="zh_Hant_HK" />
-                    <alias from="zh_MO" to="zh_Hant_MO" />
-                    <alias from="zh_TW" to="zh_Hant_TW" />
-                    <emptyLocale locale="de_" />
-                    <emptyLocale locale="es_" />
-                </deprecates>
+                &icu-coll-deprecates;
             </run>
         </cldr-build>
     </target>
@@ -284,7 +272,8 @@
         <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" srcFile=".*xml" destFile=".*txt">
             <run>
                 <args>
-                    <arg name="--sourcedir"       value="${env.ICU4C_DIR}/source/data/xml/brkitr"/>
+                    <arg name="--sourcedir"       value="${env.CLDR_DIR}/common/segments"/>
+					<arg name="--specialsdir"       value="${env.ICU4C_DIR}/source/data/xml/brkitr"/>
                     <arg name="--destdir"         value="${env.ICU4C_DIR}/source/data/brkitr"/>
                     <arg name="--type" value="brkitr" />
                     <arg name="--makefile" value="brkfiles.mk"/>
@@ -309,11 +298,11 @@
         </cldr-build>
     </target>
 
-        <target name="translit" depends="init,setup" description="builds collation files in ICU text format">
+    <target name="translit" depends="init,setup" description="builds collation files in ICU text format">
         <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile=".*txt">
             <run>
                 <args>
-                    <arg name="-m" value="((?!.*(Canadian|Ethiopic).*).*)" />
+                    <arg name="-m" value="((?!.*(Canadian|Ethiopic|ug-Latin).*).*)" />
                     <arg name="--sourcedir" value="${env.CLDR_DIR}/common/transforms" />
                     <arg name="--destdir"   value="${env.ICU4C_DIR}/source/data/translit"/>
                     <arg name="--commentSkip"/>
diff --git a/data/coll/af.txt b/data/coll/af.txt
index d3dc7d6..f88657a 100644
--- a/data/coll/af.txt
+++ b/data/coll/af.txt
@@ -10,11 +10,11 @@
  * ICU <specials> source: <path>/xml/collation/af.xml
  */
 af{
-    Version{"2.0.89.0"}
+    Version{"2.0.96.14"}
     collations{
         standard{
             Sequence{"&N<<<ʼn"}
-            Version{"24"}
+            Version{"25"}
         }
     }
 }
diff --git a/data/coll/af_NA.txt b/data/coll/af_NA.txt
deleted file mode 100644
index ed05eeb..0000000
--- a/data/coll/af_NA.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "af"
- */
-af_NA{
-    ___{""}
-}
diff --git a/data/coll/af_ZA.txt b/data/coll/af_ZA.txt
deleted file mode 100644
index da80245..0000000
--- a/data/coll/af_ZA.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "af"
- */
-af_ZA{
-    ___{""}
-}
diff --git a/data/coll/ar.txt b/data/coll/ar.txt
index dbd6640..6d0afd4 100644
--- a/data/coll/ar.txt
+++ b/data/coll/ar.txt
@@ -10,7 +10,7 @@
  * ICU <specials> source: <path>/xml/collation/ar.xml
  */
 ar{
-    Version{"2.0.89.0"}
+    Version{"2.0.96.14"}
     collations{
         standard{
             Sequence{
@@ -18,7 +18,7 @@
                 "&ت<<ة<<<ﺔ<<<ﺓ"
                 "&ي<<ى<<<ﯨ<<<ﯩ<<<ﻰ<<<ﻯ<<<ﲐ<<<ﱝ"
             }
-            Version{"24"}
+            Version{"25"}
         }
     }
 }
diff --git a/data/coll/ar_001.txt b/data/coll/ar_001.txt
deleted file mode 100644
index afe8bac..0000000
--- a/data/coll/ar_001.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_001{
-    ___{""}
-}
diff --git a/data/coll/ar_AE.txt b/data/coll/ar_AE.txt
deleted file mode 100644
index cd944a2..0000000
--- a/data/coll/ar_AE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_AE{
-    ___{""}
-}
diff --git a/data/coll/ar_BH.txt b/data/coll/ar_BH.txt
deleted file mode 100644
index 9004773..0000000
--- a/data/coll/ar_BH.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_BH{
-    ___{""}
-}
diff --git a/data/coll/ar_DJ.txt b/data/coll/ar_DJ.txt
deleted file mode 100644
index 6d20941..0000000
--- a/data/coll/ar_DJ.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_DJ{
-    ___{""}
-}
diff --git a/data/coll/ar_DZ.txt b/data/coll/ar_DZ.txt
deleted file mode 100644
index e606729..0000000
--- a/data/coll/ar_DZ.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_DZ{
-    ___{""}
-}
diff --git a/data/coll/ar_EG.txt b/data/coll/ar_EG.txt
deleted file mode 100644
index 9381902..0000000
--- a/data/coll/ar_EG.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_EG{
-    ___{""}
-}
diff --git a/data/coll/ar_EH.txt b/data/coll/ar_EH.txt
deleted file mode 100644
index 836e644..0000000
--- a/data/coll/ar_EH.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_EH{
-    ___{""}
-}
diff --git a/data/coll/ar_ER.txt b/data/coll/ar_ER.txt
deleted file mode 100644
index 8d5330f..0000000
--- a/data/coll/ar_ER.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_ER{
-    ___{""}
-}
diff --git a/data/coll/ar_IL.txt b/data/coll/ar_IL.txt
deleted file mode 100644
index 5289f3c..0000000
--- a/data/coll/ar_IL.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_IL{
-    ___{""}
-}
diff --git a/data/coll/ar_IQ.txt b/data/coll/ar_IQ.txt
deleted file mode 100644
index c32de58..0000000
--- a/data/coll/ar_IQ.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_IQ{
-    ___{""}
-}
diff --git a/data/coll/ar_JO.txt b/data/coll/ar_JO.txt
deleted file mode 100644
index a98726b..0000000
--- a/data/coll/ar_JO.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_JO{
-    ___{""}
-}
diff --git a/data/coll/ar_KM.txt b/data/coll/ar_KM.txt
deleted file mode 100644
index e79e68f..0000000
--- a/data/coll/ar_KM.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2014 International Business Machines
-// * Corporation and others. All Rights Reserved.
-// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
-// * Source File: <path>/icu-config.xml & build.xml
-// *
-// ***************************************************************************
-/**
- * validSubLocale of "ar"
- */
-ar_KM{
-    ___{""}
-}
diff --git a/data/coll/ar_