diff options
Diffstat (limited to 'strings')
-rw-r--r-- | strings/CMakeLists.txt | 5 | ||||
-rw-r--r-- | strings/conf_to_src.c | 43 | ||||
-rw-r--r-- | strings/ctype-big5.c | 77 | ||||
-rw-r--r-- | strings/ctype-bin.c | 82 | ||||
-rw-r--r-- | strings/ctype-cp932.c | 62 | ||||
-rw-r--r-- | strings/ctype-czech.c | 47 | ||||
-rw-r--r-- | strings/ctype-euc_kr.c | 35 | ||||
-rw-r--r-- | strings/ctype-eucjpms.c | 66 | ||||
-rw-r--r-- | strings/ctype-extra.c | 372 | ||||
-rw-r--r-- | strings/ctype-gb2312.c | 33 | ||||
-rw-r--r-- | strings/ctype-gbk.c | 81 | ||||
-rw-r--r-- | strings/ctype-latin1.c | 73 | ||||
-rw-r--r-- | strings/ctype-mb.c | 165 | ||||
-rw-r--r-- | strings/ctype-simple.c | 258 | ||||
-rw-r--r-- | strings/ctype-sjis.c | 56 | ||||
-rw-r--r-- | strings/ctype-tis620.c | 44 | ||||
-rw-r--r-- | strings/ctype-uca.c | 17470 | ||||
-rw-r--r-- | strings/ctype-ucs2.c | 754 | ||||
-rw-r--r-- | strings/ctype-ujis.c | 68 | ||||
-rw-r--r-- | strings/ctype-utf8.c | 2998 | ||||
-rw-r--r-- | strings/ctype-win1250ch.c | 40 | ||||
-rw-r--r-- | strings/ctype.c | 835 | ||||
-rw-r--r-- | strings/decimal.c | 91 | ||||
-rw-r--r-- | strings/dtoa.c | 8 | ||||
-rw-r--r-- | strings/my_strtoll10.c | 10 | ||||
-rw-r--r-- | strings/my_vsnprintf.c | 213 | ||||
-rw-r--r-- | strings/str2int.c | 4 | ||||
-rw-r--r-- | strings/str_alloc.c | 6 | ||||
-rw-r--r-- | strings/strings_def.h | 9 | ||||
-rw-r--r-- | strings/xml.c | 100 |
30 files changed, 21776 insertions, 2329 deletions
diff --git a/strings/CMakeLists.txt b/strings/CMakeLists.txt index 3e0c0612c57..1e364bc951b 100644 --- a/strings/CMakeLists.txt +++ b/strings/CMakeLists.txt @@ -26,13 +26,16 @@ SET(STRINGS_SOURCES bchange.c bmove_upp.c ctype-big5.c ctype-bin.c ctype-cp932.c my_strchr.c strcont.c strappend.c) IF(NOT HAVE_STRNLEN) - # OSX does not have strnlen + # OSX below 10.7 did not have strnlen SET(STRINGS_SOURCES ${STRINGS_SOURCES} strnlen.c) ENDIF() # Avoid dependencies on perschema data defined in mysys ADD_DEFINITIONS(-DDISABLE_MYSQL_THREAD_H) ADD_CONVENIENCE_LIBRARY(strings ${STRINGS_SOURCES}) +ADD_EXECUTABLE(conf_to_src EXCLUDE_FROM_ALL conf_to_src.c) +TARGET_LINK_LIBRARIES(conf_to_src strings) + IF(MSVC) INSTALL_DEBUG_TARGET(strings DESTINATION ${INSTALL_LIBDIR}/debug) ENDIF() diff --git a/strings/conf_to_src.c b/strings/conf_to_src.c index 7dfc76e5417..28d2fd1515e 100644 --- a/strings/conf_to_src.c +++ b/strings/conf_to_src.c @@ -23,7 +23,7 @@ #define ROW_LEN 16 #define ROW16_LEN 8 -#define MAX_BUF 64*1024 +#define MAX_BUF (64*1024) static struct charset_info_st all_charsets[512]; @@ -145,12 +145,35 @@ static int add_collation(struct charset_info_st *cs) } +static void +default_reporter(enum loglevel level __attribute__ ((unused)), + const char *format __attribute__ ((unused)), + ...) +{ +} + + +static void +my_charset_loader_init(MY_CHARSET_LOADER *loader) +{ + loader->error[0]= '\0'; + loader->once_alloc= malloc; + loader->malloc= malloc; + loader->realloc= realloc; + loader->free= free; + loader->reporter= default_reporter; + loader->add_collation= add_collation; +} + + static int my_read_charset_file(const char *filename) { char buf[MAX_BUF]; int fd; uint len; + MY_CHARSET_LOADER loader; + my_charset_loader_init(&loader); if ((fd=open(filename,O_RDONLY)) < 0) { fprintf(stderr,"Can't open '%s'\n",filename); @@ -161,14 +184,10 @@ static int my_read_charset_file(const char *filename) DBUG_ASSERT(len < MAX_BUF); close(fd); - if (my_parse_charset_xml(buf,len,add_collation)) + if (my_parse_charset_xml(&loader, buf, len)) { -#if 0 - printf("ERROR at line %d pos %d '%s'\n", - my_xml_error_lineno(&p)+1, - my_xml_error_pos(&p), - my_xml_error_string(&p)); -#endif + fprintf(stderr, "Error while parsing '%s': %s\n", filename, loader.error); + exit(1); } return FALSE; @@ -207,8 +226,7 @@ void dispcset(FILE *f,CHARSET_INFO *cs) fprintf(f," sort_order_%s, /* sort_order */\n",cs->name); else fprintf(f," NULL, /* sort_order */\n"); - fprintf(f," NULL, /* contractions */\n"); - fprintf(f," NULL, /* sort_order_big*/\n"); + fprintf(f," NULL, /* uca */\n"); fprintf(f," to_uni_%s, /* to_uni */\n",cs->name); } else @@ -221,13 +239,12 @@ void dispcset(FILE *f,CHARSET_INFO *cs) fprintf(f," NULL, /* lower */\n"); fprintf(f," NULL, /* upper */\n"); fprintf(f," NULL, /* sort order */\n"); - fprintf(f," NULL, /* contractions */\n"); - fprintf(f," NULL, /* sort_order_big*/\n"); + fprintf(f," NULL, /* uca */\n"); fprintf(f," NULL, /* to_uni */\n"); } fprintf(f," NULL, /* from_uni */\n"); - fprintf(f," my_unicase_default, /* caseinfo */\n"); + fprintf(f," &my_unicase_default, /* caseinfo */\n"); fprintf(f," NULL, /* state map */\n"); fprintf(f," NULL, /* ident map */\n"); fprintf(f," 1, /* strxfrm_multiply*/\n"); diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index 7c7d8c7b2f5..38bdf86c64a 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -177,7 +177,7 @@ static const uchar sort_order_big5[]= }; -static MY_UNICASE_INFO cA2[256]= +static MY_UNICASE_CHARACTER cA2[256]= { /* A200-A20F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -370,7 +370,7 @@ static MY_UNICASE_INFO cA2[256]= }; -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { /* A300-A30F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -563,7 +563,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cC7[256]= +static MY_UNICASE_CHARACTER cC7[256]= { /* C700-C70F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -756,7 +756,7 @@ static MY_UNICASE_INFO cC7[256]= }; -static MY_UNICASE_INFO *my_caseinfo_big5[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_big5[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -793,6 +793,13 @@ static MY_UNICASE_INFO *my_caseinfo_big5[256]= }; +static MY_UNICASE_INFO my_caseinfo_big5= +{ + 0xFFFF, + my_caseinfo_pages_big5 +}; + + static uint16 big5strokexfrm(uint16 i) { if ((i == 0xA440) || (i == 0xA441)) return 0xA440; @@ -870,7 +877,7 @@ static int my_strnncoll_big5(CHARSET_INFO *cs __attribute__((unused)), const uchar *b, size_t b_length, my_bool b_is_prefix) { - size_t length= min(a_length, b_length); + size_t length= MY_MIN(a_length, b_length); int res= my_strnncoll_big5_internal(&a, &b, length); return res ? res : (int)((b_is_prefix ? length : a_length) - b_length); } @@ -883,7 +890,7 @@ static int my_strnncollsp_big5(CHARSET_INFO * cs __attribute__((unused)), const uchar *b, size_t b_length, my_bool diff_if_only_endspace_difference) { - size_t length= min(a_length, b_length); + size_t length= MY_MIN(a_length, b_length); int res= my_strnncoll_big5_internal(&a, &b, length); #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE @@ -918,31 +925,35 @@ static int my_strnncollsp_big5(CHARSET_INFO * cs __attribute__((unused)), } -static size_t my_strnxfrm_big5(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_big5(CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - uint16 e; - size_t dstlen= len; - uchar *dest_end= dest + dstlen; - - len = srclen; - while (len-- && dest < dest_end) + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; + + for (; dst < de && src < se && nweights; nweights--) { - if ((len > 0) && isbig5code(*src, *(src+1))) + if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) { - e = big5strokexfrm((uint16) big5code(*src, *(src+1))); - *dest++ = big5head(e); - if (dest < dest_end) - *dest++ = big5tail(e); - src +=2; - len--; - } else - *dest++ = sort_order_big5[(uchar) *src++]; + /* + Note, it is safe not to check (src < se) + in the code below, because ismbchar() would + not return TRUE if src was too short + */ + uint16 e= big5strokexfrm((uint16) big5code(*src, *(src + 1))); + *dst++= big5head(e); + if (dst < de) + *dst++= big5tail(e); + src+= 2; + } + else + *dst++= sort_order ? sort_order[*src++] : *src++; } - if (dstlen > srclen) - bfill(dest, dstlen - srclen, ' '); - return dstlen; + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); } #if 0 @@ -6926,11 +6937,10 @@ struct charset_info_st my_charset_big5_chinese_ci= to_lower_big5, to_upper_big5, sort_order_big5, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_big5, /* caseinfo */ + &my_caseinfo_big5, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -6942,6 +6952,7 @@ struct charset_info_st my_charset_big5_chinese_ci= 0xF9D5, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_big5_handler, &my_collation_big5_chinese_ci_handler }; @@ -6959,11 +6970,10 @@ struct charset_info_st my_charset_big5_bin= to_lower_big5, to_upper_big5, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_big5, /* caseinfo */ + &my_caseinfo_big5, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -6975,6 +6985,7 @@ struct charset_info_st my_charset_big5_bin= 0xF9FE, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_big5_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index 77b7e0e18c3..2e699db0bd3 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -70,7 +70,7 @@ static const uchar bin_char_array[] = static my_bool my_coll_init_8bit_bin(struct charset_info_st *cs, - void *(*alloc)(size_t) __attribute__((unused))) + MY_CHARSET_LOADER *loader __attribute__((unused))) { cs->max_sort_char=255; return FALSE; @@ -81,7 +81,7 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)), const uchar *t, size_t tlen, my_bool t_is_prefix) { - size_t len=min(slen,tlen); + size_t len=MY_MIN(slen,tlen); int cmp= memcmp(s,t,len); return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen); } @@ -132,7 +132,7 @@ static int my_strnncoll_8bit_bin(CHARSET_INFO * cs __attribute__((unused)), const uchar *t, size_t tlen, my_bool t_is_prefix) { - size_t len=min(slen,tlen); + size_t len=MY_MIN(slen,tlen); int cmp= memcmp(s,t,len); return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen); } @@ -176,7 +176,7 @@ static int my_strnncollsp_8bit_bin(CHARSET_INFO * cs __attribute__((unused)), diff_if_only_endspace_difference= 0; #endif - end= a + (length= min(a_length, b_length)); + end= a + (length= MY_MIN(a_length, b_length)); while (a < end) { if (*a++ != *b++) @@ -277,36 +277,39 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)), const uchar *key, size_t len, ulong *nr1, ulong *nr2) { - const uchar *pos = key; - + ulong tmp1= *nr1; + ulong tmp2= *nr2; + /* Remove trailing spaces. We have to do this to be able to compare 'A ' and 'A' as identical */ - key= skip_trailing_space(key, len); + const uchar *end = skip_trailing_space(key, len); - for (; pos < (uchar*) key ; pos++) + for (; key < end ; key++) { - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * - ((uint)*pos)) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(tmp1, tmp2, (uint) *key); } + + *nr1= tmp1; + *nr2= tmp2; } void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)), const uchar *key, size_t len,ulong *nr1, ulong *nr2) { - const uchar *pos = key; - - key+= len; - - for (; pos < (uchar*) key ; pos++) + const uchar *end = key + len; + ulong tmp1= *nr1; + ulong tmp2= *nr2; + + for (; key < end ; key++) { - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * - ((uint)*pos)) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(tmp1, tmp2, (uint) *key); } + + *nr1= tmp1; + *nr2= tmp2; } @@ -392,7 +395,7 @@ int my_wildcmp_bin_impl(CHARSET_INFO *cs, if (tmp <= 0) return(tmp); } - } while (str != str_end && wildstr[0] != w_many); + } while (str != str_end); return(-1); } } @@ -410,28 +413,17 @@ int my_wildcmp_bin(CHARSET_INFO *cs, } -static size_t my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t dstlen, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_8bit_bin(CHARSET_INFO *cs, + uchar * dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - if (dest != src) - memcpy(dest, src, min(dstlen,srclen)); - if (dstlen > srclen) - bfill(dest + srclen, dstlen - srclen, 0); - return dstlen; -} - - -static -size_t my_strnxfrm_8bit_bin(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t dstlen, - const uchar *src, size_t srclen) -{ - if (dest != src) - memcpy(dest, src, min(dstlen,srclen)); - if (dstlen > srclen) - bfill(dest + srclen, dstlen - srclen, ' '); - return dstlen; + set_if_smaller(srclen, dstlen); + set_if_smaller(srclen, nweights); + if (dst != src) + memcpy(dst, src, srclen); + return my_strxfrm_pad_desc_and_reverse(cs, dst, dst + srclen, dst + dstlen, + nweights - srclen, flags, 0); } @@ -517,7 +509,7 @@ static MY_COLLATION_HANDLER my_collation_binary_handler = NULL, /* init */ my_strnncoll_binary, my_strnncollsp_binary, - my_strnxfrm_bin, + my_strnxfrm_8bit_bin, my_strnxfrmlen_simple, my_like_range_simple, my_wildcmp_bin, @@ -572,11 +564,10 @@ struct charset_info_st my_charset_bin = bin_char_array, /* to_lower */ bin_char_array, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -588,6 +579,7 @@ struct charset_info_st my_charset_bin = 255, /* max_sort_char */ 0, /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_binary_handler }; diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c index b7847e4509e..b3d08c5a54c 100644 --- a/strings/ctype-cp932.c +++ b/strings/ctype-cp932.c @@ -197,7 +197,7 @@ static uint mbcharlen_cp932(CHARSET_INFO *cs __attribute__((unused)),uint c) #define cp932code(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d)) -static MY_UNICASE_INFO c81[256]= +static MY_UNICASE_CHARACTER c81[256]= { /* 8100-810F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -407,7 +407,7 @@ static MY_UNICASE_INFO c81[256]= }; -static MY_UNICASE_INFO c82[256]= +static MY_UNICASE_CHARACTER c82[256]= { /* 8200-820F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -615,7 +615,7 @@ static MY_UNICASE_INFO c82[256]= }; -static MY_UNICASE_INFO c83[256]= +static MY_UNICASE_CHARACTER c83[256]= { /* 8300-830F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -825,7 +825,7 @@ static MY_UNICASE_INFO c83[256]= }; -static MY_UNICASE_INFO c84[256]= +static MY_UNICASE_CHARACTER c84[256]= { /* 8400-840F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1035,7 +1035,7 @@ static MY_UNICASE_INFO c84[256]= }; -static MY_UNICASE_INFO c87[256]= +static MY_UNICASE_CHARACTER c87[256]= { /* 8700-870F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1245,7 +1245,7 @@ static MY_UNICASE_INFO c87[256]= }; -static MY_UNICASE_INFO cEE[256]= +static MY_UNICASE_CHARACTER cEE[256]= { /* EE00-EE0F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1456,7 +1456,7 @@ static MY_UNICASE_INFO cEE[256]= }; -static MY_UNICASE_INFO cFA[256]= +static MY_UNICASE_CHARACTER cFA[256]= { /* FA00-FA0F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1666,7 +1666,7 @@ static MY_UNICASE_INFO cFA[256]= }; -static MY_UNICASE_INFO *my_caseinfo_cp932[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_cp932[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1703,7 +1703,13 @@ static MY_UNICASE_INFO *my_caseinfo_cp932[256]= }; -static int my_strnncoll_cp932_internal(CHARSET_INFO *cs, +MY_UNICASE_INFO my_caseinfo_cp932= +{ + 0xFFFF, + my_caseinfo_pages_cp932 +}; + +static int my_strnncoll_cp932_internal(const CHARSET_INFO *cs, const uchar **a_res, size_t a_length, const uchar **b_res, size_t b_length) { @@ -1788,30 +1794,6 @@ static int my_strnncollsp_cp932(CHARSET_INFO *cs __attribute__((unused)), } - -static size_t my_strnxfrm_cp932(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) -{ - uchar *d_end = dest + len; - uchar *s_end = (uchar*) src + srclen; - while (dest < d_end && src < s_end) - { - if (ismbchar_cp932(cs,(char*) src, (char*) s_end)) - { - *dest++ = *src++; - if (dest < d_end && src < s_end) - *dest++ = *src++; - } - else - *dest++ = sort_order_cp932[(uchar)*src++]; - } - if (len > srclen) - bfill(dest, len - srclen, ' '); - return len; -} - - static const uint16 cp932_to_unicode[65536]= { 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ @@ -34779,7 +34761,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_cp932, my_strnncollsp_cp932, - my_strnxfrm_cp932, + my_strnxfrm_mb, my_strnxfrmlen_simple, my_like_range_mb, my_wildcmp_mb, /* wildcmp */ @@ -34834,11 +34816,10 @@ struct charset_info_st my_charset_cp932_japanese_ci= to_lower_cp932, to_upper_cp932, sort_order_cp932, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_cp932, /* caseinfo */ + &my_caseinfo_cp932, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -34850,6 +34831,7 @@ struct charset_info_st my_charset_cp932_japanese_ci= 0xFCFC, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -34866,11 +34848,10 @@ struct charset_info_st my_charset_cp932_bin= to_lower_cp932, to_upper_cp932, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_cp932, /* caseinfo */ + &my_caseinfo_cp932, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -34882,6 +34863,7 @@ struct charset_info_st my_charset_cp932_bin= 0xFCFC, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c index 36fc6b36f0c..6603bc7d3e5 100644 --- a/strings/ctype-czech.c +++ b/strings/ctype-czech.c @@ -166,7 +166,7 @@ static const struct wordvalue doubles[] = { */ #define ADD_TO_RESULT(dest, len, totlen, value) \ -if ((totlen) < (len)) { dest[totlen] = value; } (totlen++); +{ if ((totlen) < (len)) { dest[totlen++]= value; } } #define IS_END(p, src, len) (((char *)p - (char *)src) >= (len)) #define NEXT_CMP_VALUE(src, p, store, pass, value, len) \ @@ -287,13 +287,26 @@ int my_strnncollsp_czech(CHARSET_INFO * cs, /* + Returns the number of bytes required for strnxfrm(). +*/ +static size_t +my_strnxfrmlen_czech(CHARSET_INFO *cs + __attribute__((unused)), size_t len) +{ + return len * 4 + 4; +} + + +/* Function strnxfrm, actually strxfrm, with Czech sorting, which expect the length of the strings being specified */ -static size_t my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)), + uchar *dest, size_t len, + uint nweights_arg __attribute__((unused)), + const uchar *src, size_t srclen, uint flags) { int value; const uchar *p, * store; @@ -301,15 +314,23 @@ static size_t my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)), size_t totlen = 0; p = src; store = src; + if (!(flags & 0x0F)) /* All levels by default */ + flags|= 0x0F; + do { + int add= (1 << pass) & flags; /* If this level is needed */ NEXT_CMP_VALUE(src, p, store, pass, value, (int)srclen); - ADD_TO_RESULT(dest, len, totlen, value); + if (add) + ADD_TO_RESULT(dest, len, totlen, value); } while (value); - if (len > totlen) - bfill(dest + totlen, len - totlen, ' '); - return len; + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen) + { + memset(dest + totlen, ' ', len - totlen); + totlen= len; + } + return totlen; } #undef IS_END @@ -592,7 +613,7 @@ static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler = my_strnncoll_czech, my_strnncollsp_czech, my_strnxfrm_czech, - my_strnxfrmlen_simple, + my_strnxfrmlen_czech, my_like_range_czech, my_wildcmp_bin, my_strcasecmp_8bit, @@ -604,7 +625,7 @@ static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler = struct charset_info_st my_charset_latin2_czech_ci = { 2,0,0, /* number */ - MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|MY_CS_STRNXFRM_BAD_NWEIGHTS, /* state */ "latin2", /* cs name */ "latin2_czech_cs", /* name */ "", /* comment */ @@ -613,11 +634,10 @@ struct charset_info_st my_charset_latin2_czech_ci = to_lower_czech, to_upper_czech, sort_order_czech, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ tab_8859_2_uni, /* tab_to_uni */ idx_uni_8859_2, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ @@ -629,6 +649,7 @@ struct charset_info_st my_charset_latin2_czech_ci = 0, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 4, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_latin2_czech_ci_handler }; diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 3caa1977c0b..b7065369258 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -216,7 +216,7 @@ static uint mbcharlen_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c) } -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -421,7 +421,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cA5[256]= +static MY_UNICASE_CHARACTER cA5[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -626,7 +626,7 @@ static MY_UNICASE_INFO cA5[256]= }; -static MY_UNICASE_INFO cA7[256]= +static MY_UNICASE_CHARACTER cA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -831,7 +831,7 @@ static MY_UNICASE_INFO cA7[256]= }; -static MY_UNICASE_INFO cA8[256]= +static MY_UNICASE_CHARACTER cA8[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1036,7 +1036,7 @@ static MY_UNICASE_INFO cA8[256]= }; -static MY_UNICASE_INFO cA9[256]= +static MY_UNICASE_CHARACTER cA9[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1241,7 +1241,7 @@ static MY_UNICASE_INFO cA9[256]= }; -static MY_UNICASE_INFO cAC[256]= +static MY_UNICASE_CHARACTER cAC[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1446,7 +1446,7 @@ static MY_UNICASE_INFO cAC[256]= }; -static MY_UNICASE_INFO *my_caseinfo_euckr[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_euckr[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1483,6 +1483,13 @@ static MY_UNICASE_INFO *my_caseinfo_euckr[256]= }; +static MY_UNICASE_INFO my_caseinfo_euckr= +{ + 0xFFFF, + my_caseinfo_pages_euckr +}; + + /* page 0 0x8141-0xC8FE */ static const uint16 tab_ksc5601_uni0[]={ 0xAC02,0xAC03,0xAC05,0xAC06,0xAC0B,0xAC0C,0xAC0D,0xAC0E, @@ -9962,7 +9969,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_simple, /* strnncoll */ my_strnncollsp_simple, - my_strnxfrm_simple, /* strnxfrm */ + my_strnxfrm_mb, /* strnxfrm */ my_strnxfrmlen_simple, my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ @@ -10016,11 +10023,10 @@ struct charset_info_st my_charset_euckr_korean_ci= to_lower_euc_kr, to_upper_euc_kr, sort_order_euc_kr, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_euckr, /* caseinfo */ + &my_caseinfo_euckr, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -10032,6 +10038,7 @@ struct charset_info_st my_charset_euckr_korean_ci= 0xFEFE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -10049,11 +10056,10 @@ struct charset_info_st my_charset_euckr_bin= to_lower_euc_kr, to_upper_euc_kr, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_euckr, /* caseinfo */ + &my_caseinfo_euckr, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -10065,6 +10071,7 @@ struct charset_info_st my_charset_euckr_bin= 0xFEFE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c index 73698290b06..0ce179b3a2d 100644 --- a/strings/ctype-eucjpms.c +++ b/strings/ctype-eucjpms.c @@ -204,7 +204,7 @@ static uint mbcharlen_eucjpms(CHARSET_INFO *cs __attribute__((unused)),uint c) /* Case info pages for JIS-X-0208 range */ -static MY_UNICASE_INFO cA2[256]= +static MY_UNICASE_CHARACTER cA2[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -325,7 +325,7 @@ static MY_UNICASE_INFO cA2[256]= }; -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -446,7 +446,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cA6[256]= +static MY_UNICASE_CHARACTER cA6[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -567,7 +567,7 @@ static MY_UNICASE_INFO cA6[256]= }; -static MY_UNICASE_INFO cA7[256]= +static MY_UNICASE_CHARACTER cA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -688,7 +688,7 @@ static MY_UNICASE_INFO cA7[256]= }; -static MY_UNICASE_INFO cAD[256]= +static MY_UNICASE_CHARACTER cAD[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -811,7 +811,7 @@ static MY_UNICASE_INFO cAD[256]= /* Case info pages for JIS-X-0212 range */ -static MY_UNICASE_INFO c8FA6[256]= +static MY_UNICASE_CHARACTER c8FA6[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -932,7 +932,7 @@ static MY_UNICASE_INFO c8FA6[256]= }; -static MY_UNICASE_INFO c8FA7[256]= +static MY_UNICASE_CHARACTER c8FA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1053,7 +1053,7 @@ static MY_UNICASE_INFO c8FA7[256]= }; -static MY_UNICASE_INFO c8FA9[256]= +static MY_UNICASE_CHARACTER c8FA9[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1174,7 +1174,7 @@ static MY_UNICASE_INFO c8FA9[256]= }; -static MY_UNICASE_INFO c8FAA[256]= +static MY_UNICASE_CHARACTER c8FAA[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1295,7 +1295,7 @@ static MY_UNICASE_INFO c8FAA[256]= }; -static MY_UNICASE_INFO c8FAB[256]= +static MY_UNICASE_CHARACTER c8FAB[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1416,7 +1416,7 @@ static MY_UNICASE_INFO c8FAB[256]= }; -static MY_UNICASE_INFO c8FF3[256]= +static MY_UNICASE_CHARACTER c8FF3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1537,7 +1537,7 @@ static MY_UNICASE_INFO c8FF3[256]= }; -static MY_UNICASE_INFO c8FF4[256]= +static MY_UNICASE_CHARACTER c8FF4[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1658,7 +1658,7 @@ static MY_UNICASE_INFO c8FF4[256]= }; -static MY_UNICASE_INFO *my_caseinfo_eucjpms[512]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_eucjpms[512]= { /* JIS-X-0208 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ @@ -1730,7 +1730,14 @@ static MY_UNICASE_INFO *my_caseinfo_eucjpms[512]= }; -static const uint16 jisx0208_eucjpms_to_unicode[65536]= +static MY_UNICASE_INFO my_caseinfo_eucjpms= +{ + 0x0FFFF, + my_caseinfo_pages_eucjpms +}; + + +static uint16 jisx0208_eucjpms_to_unicode[65536]= { 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */ 0x0004, 0x0005, 0x0006, 0x0007, @@ -67411,10 +67418,10 @@ my_wc_mb_eucjpms(CHARSET_INFO *cs __attribute__((unused)), /* EUCJPMS encoding subcomponents: - [x00-x7F] # ASCII/JIS-Roman (one-byte/character) - [x8E][xA0-xDF] # half-width katakana (two bytes/char) - [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) - [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) + [x00-x7F] # ASCII/JIS-Roman (one-byte/character) + [x8E][xA1-xDF] # half-width katakana (two bytes/char) + [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) + [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) */ static @@ -67437,15 +67444,15 @@ size_t my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)), if (b >= (uchar *) end) /* need more bytes */ return (uint) (chbeg - beg); /* unexpected EOL */ - if (ch == 0x8E) /* [x8E][xA0-xDF] */ + if (iseucjpms_ss2(ch)) /* [x8E][xA1-xDF] */ { - if (*b >= 0xA0 && *b <= 0xDF) + if (iskata(*b)) continue; *error=1; return (uint) (chbeg - beg); /* invalid sequence */ } - if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */ + if (iseucjpms_ss3(ch)) /* [x8F][xA1-xFE][xA1-xFE] */ { ch= *b++; if (b >= (uchar*) end) @@ -67455,8 +67462,7 @@ size_t my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)), } } - if (ch >= 0xA1 && ch <= 0xFE && - *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */ + if (iseucjpms(ch) && iseucjpms(*b)) /* [xA1-xFE][xA1-xFE] */ continue; *error=1; return (size_t) (chbeg - beg); /* invalid sequence */ @@ -67505,7 +67511,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_simple,/* strnncoll */ my_strnncollsp_simple, - my_strnxfrm_simple, /* strnxfrm */ + my_strnxfrm_mb, /* strnxfrm */ my_strnxfrmlen_simple, my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ @@ -67560,11 +67566,10 @@ struct charset_info_st my_charset_eucjpms_japanese_ci= to_lower_eucjpms, to_upper_eucjpms, sort_order_eucjpms, - NULL, /* sort_order_big*/ - NULL, /* contractions */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_eucjpms,/* caseinfo */ + &my_caseinfo_eucjpms,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -67576,6 +67581,7 @@ struct charset_info_st my_charset_eucjpms_japanese_ci= 0xFEFE, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -67593,11 +67599,10 @@ struct charset_info_st my_charset_eucjpms_bin= to_lower_eucjpms, to_upper_eucjpms, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_eucjpms,/* caseinfo */ + &my_caseinfo_eucjpms,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -67609,6 +67614,7 @@ struct charset_info_st my_charset_eucjpms_bin= 0xFEFE, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-extra.c b/strings/ctype-extra.c index e0499c6f2e3..c690b6d0c18 100644 --- a/strings/ctype-extra.c +++ b/strings/ctype-extra.c @@ -6616,11 +6616,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_dec8_swedish_ci, /* lower */ to_upper_dec8_swedish_ci, /* upper */ sort_order_dec8_swedish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_dec8_swedish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6632,6 +6631,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6649,11 +6649,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp850_general_ci, /* lower */ to_upper_cp850_general_ci, /* upper */ sort_order_cp850_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp850_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6665,6 +6664,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6682,11 +6682,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin1_german1_ci, /* lower */ to_upper_latin1_german1_ci, /* upper */ sort_order_latin1_german1_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin1_german1_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6698,6 +6697,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6715,11 +6715,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_hp8_english_ci, /* lower */ to_upper_hp8_english_ci, /* upper */ sort_order_hp8_english_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_hp8_english_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6731,6 +6730,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6748,11 +6748,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_koi8r_general_ci, /* lower */ to_upper_koi8r_general_ci, /* upper */ sort_order_koi8r_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_koi8r_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6764,6 +6763,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6781,11 +6781,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin2_general_ci, /* lower */ to_upper_latin2_general_ci, /* upper */ sort_order_latin2_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin2_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6797,6 +6796,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6814,11 +6814,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_swe7_swedish_ci, /* lower */ to_upper_swe7_swedish_ci, /* upper */ sort_order_swe7_swedish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_swe7_swedish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6830,6 +6829,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6847,11 +6847,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_ascii_general_ci, /* lower */ to_upper_ascii_general_ci, /* upper */ sort_order_ascii_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_ascii_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6863,6 +6862,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6880,11 +6880,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1251_bulgarian_ci, /* lower */ to_upper_cp1251_bulgarian_ci, /* upper */ sort_order_cp1251_bulgarian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1251_bulgarian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6896,6 +6895,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6913,11 +6913,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin1_danish_ci, /* lower */ to_upper_latin1_danish_ci, /* upper */ sort_order_latin1_danish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin1_danish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6929,6 +6928,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6946,11 +6946,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_hebrew_general_ci, /* lower */ to_upper_hebrew_general_ci, /* upper */ sort_order_hebrew_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_hebrew_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6962,6 +6961,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -6979,11 +6979,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin7_estonian_cs, /* lower */ to_upper_latin7_estonian_cs, /* upper */ sort_order_latin7_estonian_cs, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin7_estonian_cs, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -6995,6 +6994,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7012,11 +7012,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin2_hungarian_ci, /* lower */ to_upper_latin2_hungarian_ci, /* upper */ sort_order_latin2_hungarian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin2_hungarian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7028,6 +7027,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7045,11 +7045,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_koi8u_general_ci, /* lower */ to_upper_koi8u_general_ci, /* upper */ sort_order_koi8u_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_koi8u_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7061,6 +7060,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7078,11 +7078,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1251_ukrainian_ci, /* lower */ to_upper_cp1251_ukrainian_ci, /* upper */ sort_order_cp1251_ukrainian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1251_ukrainian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7094,6 +7093,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7111,11 +7111,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_greek_general_ci, /* lower */ to_upper_greek_general_ci, /* upper */ sort_order_greek_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_greek_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7127,6 +7126,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7144,11 +7144,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1250_general_ci, /* lower */ to_upper_cp1250_general_ci, /* upper */ sort_order_cp1250_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1250_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7160,6 +7159,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7177,11 +7177,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin2_croatian_ci, /* lower */ to_upper_latin2_croatian_ci, /* upper */ sort_order_latin2_croatian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin2_croatian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7193,6 +7192,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7210,11 +7210,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1257_lithuanian_ci, /* lower */ to_upper_cp1257_lithuanian_ci, /* upper */ sort_order_cp1257_lithuanian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1257_lithuanian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7226,6 +7225,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7243,11 +7243,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin5_turkish_ci, /* lower */ to_upper_latin5_turkish_ci, /* upper */ sort_order_latin5_turkish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin5_turkish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7259,6 +7258,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7276,11 +7276,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_armscii8_general_ci, /* lower */ to_upper_armscii8_general_ci, /* upper */ sort_order_armscii8_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_armscii8_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7292,6 +7291,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7309,11 +7309,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp866_general_ci, /* lower */ to_upper_cp866_general_ci, /* upper */ sort_order_cp866_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp866_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7325,6 +7324,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7342,11 +7342,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_keybcs2_general_ci, /* lower */ to_upper_keybcs2_general_ci, /* upper */ sort_order_keybcs2_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_keybcs2_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7358,6 +7357,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7375,11 +7375,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_macce_general_ci, /* lower */ to_upper_macce_general_ci, /* upper */ sort_order_macce_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_macce_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7391,6 +7390,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7408,11 +7408,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_macroman_general_ci, /* lower */ to_upper_macroman_general_ci, /* upper */ sort_order_macroman_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_macroman_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7424,6 +7423,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7441,11 +7441,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp852_general_ci, /* lower */ to_upper_cp852_general_ci, /* upper */ sort_order_cp852_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp852_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7457,6 +7456,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7474,11 +7474,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin7_general_ci, /* lower */ to_upper_latin7_general_ci, /* upper */ sort_order_latin7_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin7_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7490,6 +7489,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7507,11 +7507,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin7_general_cs, /* lower */ to_upper_latin7_general_cs, /* upper */ sort_order_latin7_general_cs, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin7_general_cs, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7523,6 +7522,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7540,11 +7540,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_macce_bin, /* lower */ to_upper_macce_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_macce_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7556,6 +7555,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7573,11 +7573,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1250_croatian_ci, /* lower */ to_upper_cp1250_croatian_ci, /* upper */ sort_order_cp1250_croatian_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1250_croatian_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7589,6 +7588,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7606,11 +7606,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin1_general_ci, /* lower */ to_upper_latin1_general_ci, /* upper */ sort_order_latin1_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin1_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7622,6 +7621,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7639,11 +7639,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin1_general_cs, /* lower */ to_upper_latin1_general_cs, /* upper */ sort_order_latin1_general_cs, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin1_general_cs, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7655,6 +7654,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7672,11 +7672,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1251_bin, /* lower */ to_upper_cp1251_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1251_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7688,6 +7687,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7705,11 +7705,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1251_general_ci, /* lower */ to_upper_cp1251_general_ci, /* upper */ sort_order_cp1251_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1251_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7721,6 +7720,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7738,11 +7738,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1251_general_cs, /* lower */ to_upper_cp1251_general_cs, /* upper */ sort_order_cp1251_general_cs, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1251_general_cs, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7754,6 +7753,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7771,11 +7771,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_macroman_bin, /* lower */ to_upper_macroman_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_macroman_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7787,6 +7786,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7804,11 +7804,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1256_general_ci, /* lower */ to_upper_cp1256_general_ci, /* upper */ sort_order_cp1256_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1256_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7820,6 +7819,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7837,11 +7837,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1257_bin, /* lower */ to_upper_cp1257_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1257_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7853,6 +7852,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7870,11 +7870,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1257_general_ci, /* lower */ to_upper_cp1257_general_ci, /* upper */ sort_order_cp1257_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1257_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7886,6 +7885,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -7903,11 +7903,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_armscii8_bin, /* lower */ to_upper_armscii8_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_armscii8_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7919,6 +7918,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7936,11 +7936,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_ascii_bin, /* lower */ to_upper_ascii_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_ascii_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7952,6 +7951,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -7969,11 +7969,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1250_bin, /* lower */ to_upper_cp1250_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1250_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -7985,6 +7984,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8002,11 +8002,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1256_bin, /* lower */ to_upper_cp1256_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1256_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8018,6 +8017,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8035,11 +8035,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp866_bin, /* lower */ to_upper_cp866_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp866_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8051,6 +8050,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8068,11 +8068,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_dec8_bin, /* lower */ to_upper_dec8_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_dec8_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8084,6 +8083,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8101,11 +8101,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_greek_bin, /* lower */ to_upper_greek_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_greek_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8117,6 +8116,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8134,11 +8134,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_hebrew_bin, /* lower */ to_upper_hebrew_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_hebrew_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8150,6 +8149,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8167,11 +8167,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_hp8_bin, /* lower */ to_upper_hp8_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_hp8_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8183,6 +8182,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8200,11 +8200,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_keybcs2_bin, /* lower */ to_upper_keybcs2_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_keybcs2_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8216,6 +8215,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8233,11 +8233,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_koi8r_bin, /* lower */ to_upper_koi8r_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_koi8r_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8249,6 +8248,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8266,11 +8266,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_koi8u_bin, /* lower */ to_upper_koi8u_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_koi8u_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8282,6 +8281,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8299,11 +8299,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin2_bin, /* lower */ to_upper_latin2_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin2_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8315,6 +8314,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8332,11 +8332,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin5_bin, /* lower */ to_upper_latin5_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin5_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8348,6 +8347,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8365,11 +8365,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin7_bin, /* lower */ to_upper_latin7_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin7_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8381,6 +8380,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8398,11 +8398,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp850_bin, /* lower */ to_upper_cp850_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp850_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8414,6 +8413,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8431,11 +8431,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp852_bin, /* lower */ to_upper_cp852_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp852_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8447,6 +8446,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8464,11 +8464,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_swe7_bin, /* lower */ to_upper_swe7_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_swe7_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8480,6 +8479,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8497,11 +8497,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_geostd8_general_ci, /* lower */ to_upper_geostd8_general_ci, /* upper */ sort_order_geostd8_general_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_geostd8_general_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8513,6 +8512,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -8530,11 +8530,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_geostd8_bin, /* lower */ to_upper_geostd8_bin, /* upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_geostd8_bin, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8546,6 +8545,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_bin_handler, } @@ -8563,11 +8563,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_latin1_spanish_ci, /* lower */ to_upper_latin1_spanish_ci, /* upper */ sort_order_latin1_spanish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_latin1_spanish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8579,6 +8578,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -8596,11 +8596,10 @@ struct charset_info_st compiled_charsets[] = { to_lower_cp1250_polish_ci, /* lower */ to_upper_cp1250_polish_ci, /* upper */ sort_order_cp1250_polish_ci, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ to_uni_cp1250_polish_ci, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8612,6 +8611,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } @@ -8628,11 +8628,10 @@ struct charset_info_st compiled_charsets[] = { NULL, /* lower */ NULL, /* upper */ NULL, /* sort order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* to_uni */ NULL, /* from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state map */ NULL, /* ident map */ 1, /* strxfrm_multiply*/ @@ -8644,6 +8643,7 @@ struct charset_info_st compiled_charsets[] = { 255, /* max_sort_char */ ' ', /* pad_char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_8bit_simple_ci_handler, } diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index b27ea67059d..0399660d311 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -177,7 +177,7 @@ static uint mbcharlen_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c) } -static MY_UNICASE_INFO cA2[256]= +static MY_UNICASE_CHARACTER cA2[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -298,7 +298,7 @@ static MY_UNICASE_INFO cA2[256]= }; -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -419,7 +419,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cA6[256]= +static MY_UNICASE_CHARACTER cA6[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -540,7 +540,7 @@ static MY_UNICASE_INFO cA6[256]= }; -static MY_UNICASE_INFO cA7[256]= +static MY_UNICASE_CHARACTER cA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -661,7 +661,7 @@ static MY_UNICASE_INFO cA7[256]= }; -static MY_UNICASE_INFO cA8[256]= +static MY_UNICASE_CHARACTER cA8[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -782,7 +782,7 @@ static MY_UNICASE_INFO cA8[256]= }; -static MY_UNICASE_INFO *my_caseinfo_gb2312[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_gb2312[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -819,6 +819,13 @@ static MY_UNICASE_INFO *my_caseinfo_gb2312[256]= }; +static MY_UNICASE_INFO my_caseinfo_gb2312= +{ + 0xFFFF, + my_caseinfo_pages_gb2312 +}; + + /* page 0 0x2121-0x2658 */ static const uint16 tab_gb2312_uni0[]={ 0x3000,0x3001,0x3002,0x30FB,0x02C9,0x02C7,0x00A8,0x3003, @@ -6365,7 +6372,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_simple, /* strnncoll */ my_strnncollsp_simple, - my_strnxfrm_simple, /* strnxfrm */ + my_strnxfrm_mb, /* strnxfrm */ my_strnxfrmlen_simple, my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ @@ -6419,11 +6426,10 @@ struct charset_info_st my_charset_gb2312_chinese_ci= to_lower_gb2312, to_upper_gb2312, sort_order_gb2312, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_gb2312, /* caseinfo */ + &my_caseinfo_gb2312,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -6435,6 +6441,7 @@ struct charset_info_st my_charset_gb2312_chinese_ci= 0xF7FE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -6451,11 +6458,10 @@ struct charset_info_st my_charset_gb2312_bin= to_lower_gb2312, to_upper_gb2312, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_gb2312, /* caseinfo */ + &my_caseinfo_gb2312,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -6467,6 +6473,7 @@ struct charset_info_st my_charset_gb2312_bin= 0xF7FE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index 8b37de4a5e7..f1b46ca4e6c 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -136,7 +136,8 @@ static const uchar to_upper_gbk[]= (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', }; -static MY_UNICASE_INFO cA2[256]= + +static MY_UNICASE_CHARACTER cA2[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -340,7 +341,7 @@ static MY_UNICASE_INFO cA2[256]= {0xA2FF,0xA2FF,0xA2FF} }; -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -545,7 +546,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cA6[256]= +static MY_UNICASE_CHARACTER cA6[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -750,7 +751,7 @@ static MY_UNICASE_INFO cA6[256]= }; -static MY_UNICASE_INFO cA7[256]= +static MY_UNICASE_CHARACTER cA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -955,7 +956,7 @@ static MY_UNICASE_INFO cA7[256]= }; -static MY_UNICASE_INFO *my_caseinfo_gbk[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_gbk[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -991,7 +992,15 @@ static MY_UNICASE_INFO *my_caseinfo_gbk[256]= NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; -static const uchar sort_order_gbk[]= + +static MY_UNICASE_INFO my_caseinfo_gbk= +{ + 0xFFFF, + my_caseinfo_pages_gbk +}; + + +static uchar sort_order_gbk[]= { '\000','\001','\002','\003','\004','\005','\006','\007', '\010','\011','\012','\013','\014','\015','\016','\017', @@ -3470,7 +3479,7 @@ int my_strnncoll_gbk(CHARSET_INFO *cs __attribute__((unused)), const uchar *b, size_t b_length, my_bool b_is_prefix) { - size_t length= min(a_length, b_length); + size_t length= MY_MIN(a_length, b_length); int res= my_strnncoll_gbk_internal(&a, &b, length); return res ? res : (int) ((b_is_prefix ? length : a_length) - b_length); } @@ -3481,7 +3490,7 @@ static int my_strnncollsp_gbk(CHARSET_INFO * cs __attribute__((unused)), const uchar *b, size_t b_length, my_bool diff_if_only_endspace_difference) { - size_t length= min(a_length, b_length); + size_t length= MY_MIN(a_length, b_length); int res= my_strnncoll_gbk_internal(&a, &b, length); #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE @@ -3516,31 +3525,35 @@ static int my_strnncollsp_gbk(CHARSET_INFO * cs __attribute__((unused)), } -static size_t my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_gbk(CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - uint16 e; - size_t dstlen= len; - uchar *dest_end= dest + dstlen; + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; - len = srclen; - while (len-- && dest < dest_end) + for (; dst < de && src < se && nweights; nweights--) { - if ((len > 0) && isgbkcode(*src, *(src+1))) + if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) { - e = gbksortorder((uint16) gbkcode(*src, *(src+1))); - *dest++ = gbkhead(e); - if (dest < dest_end) - *dest++ = gbktail(e); - src+=2; - len--; - } else - *dest++ = sort_order_gbk[(uchar) *src++]; + /* + Note, it is safe not to check (src < se) + in the code below, because ismbchar() would + not return TRUE if src was too short + */ + uint16 e= gbksortorder((uint16) gbkcode(*src, *(src + 1))); + *dst++= gbkhead(e); + if (dst < de) + *dst++= gbktail(e); + src+= 2; + } + else + *dst++= sort_order ? sort_order[*src++] : *src++; } - if (dstlen > srclen) - bfill(dest, dstlen - srclen, ' '); - return dstlen; + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); } @@ -10809,11 +10822,10 @@ struct charset_info_st my_charset_gbk_chinese_ci= to_lower_gbk, to_upper_gbk, sort_order_gbk, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_gbk, /* caseinfo */ + &my_caseinfo_gbk, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -10825,6 +10837,7 @@ struct charset_info_st my_charset_gbk_chinese_ci= 0xA967, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -10841,11 +10854,10 @@ struct charset_info_st my_charset_gbk_bin= to_lower_gbk, to_upper_gbk, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_gbk, /* caseinfo */ + &my_caseinfo_gbk, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -10857,6 +10869,7 @@ struct charset_info_st my_charset_gbk_bin= 0xFEFE, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index 80ae11c82c2..babf74599ea 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -364,9 +364,14 @@ int my_mb_wc_latin1(CHARSET_INFO *cs __attribute__((unused)), { if (str >= end) return MY_CS_TOOSMALL; - - *wc=cs_to_uni[*str]; - return (!wc[0] && str[0]) ? -1 : 1; + /* + There are no unassigned characters in latin1. + Every code point in latin1 is mapped to some Unicode code point. + We can always return 1, no needs to check the value of cs_to_uni[*str]. + */ + *wc= cs_to_uni[*str]; + DBUG_ASSERT(wc[0] || !str[0]); + return 1; } static @@ -380,7 +385,10 @@ int my_wc_mb_latin1(CHARSET_INFO *cs __attribute__((unused)), if (str >= end) return MY_CS_TOOSMALL; - pl= uni_to_cs[(wc>>8) & 0xFF]; + if (wc > 0xFFFF) + return MY_CS_ILUNI; + + pl= uni_to_cs[wc >> 8]; str[0]= pl ? pl[wc & 0xFF] : '\0'; return (!str[0] && wc) ? MY_CS_ILUNI : 1; } @@ -429,11 +437,10 @@ struct charset_info_st my_charset_latin1= to_lower_latin1, to_upper_latin1, sort_order_latin1, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ cs_to_uni, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -445,6 +452,7 @@ struct charset_info_st my_charset_latin1= 255, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_8bit_simple_ci_handler }; @@ -656,22 +664,25 @@ static int my_strnncollsp_latin1_de(CHARSET_INFO *cs __attribute__((unused)), } -static size_t my_strnxfrm_latin1_de(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_latin1_de(CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar* src, size_t srclen, uint flags) { - const uchar *de = dest + len; - const uchar *se = src + srclen; - for ( ; src < se && dest < de ; src++) + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + uchar *d0= dst; + for ( ; src < se && dst < de && nweights; src++, nweights--) { - uchar chr=combo1map[*src]; - *dest++=chr; - if ((chr=combo2map[*src]) && dest < de) - *dest++=chr; + uchar chr= combo1map[*src]; + *dst++= chr; + if ((chr= combo2map[*src]) && dst < de && nweights > 1) + { + *dst++= chr; + nweights--; + } } - if (dest < de) - bfill(dest, de - dest, ' '); - return (int) len; + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); } @@ -680,6 +691,8 @@ void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)), ulong *nr1, ulong *nr2) { const uchar *end; + register ulong m1= *nr1, m2= *nr2; + /* Remove end space. We have to do this to be able to compare 'AE' and 'Ä' as identical @@ -689,14 +702,14 @@ void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)), for (; key < end ; key++) { uint X= (uint) combo1map[(uint) *key]; - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(m1, m2, X); if ((X= combo2map[*key])) { - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(m1, m2, X); } } + *nr1= m1; + *nr2= m2; } @@ -728,11 +741,10 @@ struct charset_info_st my_charset_latin1_german2_ci= to_lower_latin1, to_upper_latin1, sort_order_latin1_de, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ cs_to_uni, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 2, /* strxfrm_multiply */ @@ -744,6 +756,7 @@ struct charset_info_st my_charset_latin1_german2_ci= 247, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_german2_ci_handler }; @@ -761,11 +774,10 @@ struct charset_info_st my_charset_latin1_bin= to_lower_latin1, to_upper_latin1, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ cs_to_uni, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -777,6 +789,7 @@ struct charset_info_st my_charset_latin1_bin= 255, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_8bit_bin_handler }; diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c index 519e93471ea..02a9a91ca6a 100644 --- a/strings/ctype-mb.c +++ b/strings/ctype-mb.c @@ -62,11 +62,11 @@ size_t my_casedn_str_mb(CHARSET_INFO * cs, char *str) } -static inline MY_UNICASE_INFO* -get_case_info_for_ch(CHARSET_INFO *cs, uint page, uint offs) +static inline MY_UNICASE_CHARACTER* +get_case_info_for_ch(const CHARSET_INFO *cs, uint page, uint offs) { - MY_UNICASE_INFO *p; - return cs->caseinfo ? ((p= cs->caseinfo[page]) ? &p[offs] : NULL) : NULL; + MY_UNICASE_CHARACTER *p; + return cs->caseinfo && (p= cs->caseinfo->page[page]) ? &p[offs] : NULL; } @@ -89,7 +89,7 @@ size_t my_caseup_mb(CHARSET_INFO * cs, char *src, size_t srclen, { if ((l=my_ismbchar(cs, src, srcend))) { - MY_UNICASE_INFO *ch; + MY_UNICASE_CHARACTER *ch; if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) { *src++= ch->toupper >> 8; @@ -124,7 +124,7 @@ size_t my_casedn_mb(CHARSET_INFO * cs, char *src, size_t srclen, { if ((l= my_ismbchar(cs, src, srcend))) { - MY_UNICASE_INFO *ch; + MY_UNICASE_CHARACTER *ch; if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) { *src++= ch->tolower >> 8; @@ -168,7 +168,7 @@ my_casefold_mb_varlen(CHARSET_INFO *cs, size_t mblen= my_ismbchar(cs, src, srcend); if (mblen) { - MY_UNICASE_INFO *ch; + MY_UNICASE_CHARACTER *ch; if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1]))) { int code= is_upper ? ch->toupper : ch->tolower; @@ -354,7 +354,7 @@ int my_wildcmp_mb_impl(CHARSET_INFO *cs, if (tmp <= 0) return (tmp); } - } while (str != str_end && wildstr[0] != w_many); + } while (str != str_end); return(-1); } } @@ -486,7 +486,7 @@ my_strnncoll_mb_bin(CHARSET_INFO * cs __attribute__((unused)), const uchar *t, size_t tlen, my_bool t_is_prefix) { - size_t len=min(slen,tlen); + size_t len=MY_MIN(slen,tlen); int cmp= memcmp(s,t,len); return cmp ? cmp : (int) ((t_is_prefix ? len : slen) - tlen); } @@ -531,7 +531,7 @@ my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)), diff_if_only_endspace_difference= 0; #endif - end= a + (length= min(a_length, b_length)); + end= a + (length= MY_MIN(a_length, b_length)); while (a < end) { if (*a++ != *b++) @@ -565,15 +565,106 @@ my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)), } -static size_t my_strnxfrm_mb_bin(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t dstlen, - const uchar *src, size_t srclen) +/* + Copy one non-ascii character. + "dst" must have enough room for the character. + Note, we don't use sort_order[] in this macros. + This is correct even for case insensitive collations: + - basic Latin letters are processed outside this macros; + - for other characters sort_order[x] is equal to x. +*/ +#define my_strnxfrm_mb_non_ascii_char(cs, dst, src, se) \ +{ \ + switch (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) { \ + case 4: \ + *dst++= *src++; \ + /* fall through */ \ + case 3: \ + *dst++= *src++; \ + /* fall through */ \ + case 2: \ + *dst++= *src++; \ + /* fall through */ \ + case 0: \ + *dst++= *src++; /* byte in range 0x80..0xFF which is not MB head */ \ + } \ +} + + +/* + For character sets with two or three byte multi-byte + characters having multibyte weights *equal* to their codes: + cp932, euckr, gb2312, sjis, eucjpms, ujis. +*/ +size_t +my_strnxfrm_mb(CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - if (dest != src) - memcpy(dest, src, min(dstlen, srclen)); - if (dstlen > srclen) - bfill(dest + srclen, dstlen - srclen, ' '); - return dstlen; + uchar *d0= dst; + uchar *de= dst + dstlen; + const uchar *se= src + srclen; + const uchar *sort_order= cs->sort_order; + + DBUG_ASSERT(cs->mbmaxlen <= 4); + + /* + If "srclen" is smaller than both "dstlen" and "nweights" + then we can run a simplified loop - + without checking "nweights" and "de". + */ + if (dstlen >= srclen && nweights >= srclen) + { + if (sort_order) + { + /* Optimized version for a case insensitive collation */ + for (; src < se; nweights--) + { + if (*src < 128) /* quickly catch ASCII characters */ + *dst++= sort_order[*src++]; + else + my_strnxfrm_mb_non_ascii_char(cs, dst, src, se); + } + } + else + { + /* Optimized version for a case sensitive collation (no sort_order) */ + for (; src < se; nweights--) + { + if (*src < 128) /* quickly catch ASCII characters */ + *dst++= *src++; + else + my_strnxfrm_mb_non_ascii_char(cs, dst, src, se); + } + } + goto pad; + } + + /* + A thourough loop, checking all possible limits: + "se", "nweights" and "de". + */ + for (; src < se && nweights && dst < de; nweights--) + { + int chlen; + if (*src < 128 || + !(chlen= cs->cset->ismbchar(cs, (const char*) src, (const char*) se))) + { + /* Single byte character */ + *dst++= sort_order ? sort_order[*src++] : *src++; + } + else + { + /* Multi-byte character */ + int len= (dst + chlen <= de) ? chlen : de - dst; + memcpy(dst, src, len); + dst+= len; + src+= len; + } + } + +pad: + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0); } @@ -589,20 +680,20 @@ void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)), const uchar *key, size_t len,ulong *nr1, ulong *nr2) { - const uchar *pos = key; - + register ulong m1= *nr1, m2= *nr2; + /* Remove trailing spaces. We have to do this to be able to compare 'A ' and 'A' as identical */ - key= skip_trailing_space(key, len); + const uchar *end = skip_trailing_space(key, len); - for (; pos < (uchar*) key ; pos++) + for (; key < end ; key++) { - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * - ((uint)*pos)) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(m1, m2, (uint)*key); } + *nr1= m1; + *nr2= m2; } @@ -696,7 +787,7 @@ my_bool my_like_range_mb(CHARSET_INFO *cs, char *min_end= min_str + res_length; char *max_end= max_str + res_length; size_t maxcharlen= res_length / cs->mbmaxlen; - my_bool have_contractions= my_cs_have_contractions(cs); + const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0); for (; ptr != end && min_str != min_end && maxcharlen ; maxcharlen--) { @@ -764,8 +855,8 @@ fill_max_and_min: 'ab\min\min\min\min' and 'ab\max\max\max\max'. */ - if (have_contractions && ptr + 1 < end && - my_cs_can_be_contraction_head(cs, (uchar) *ptr)) + if (contractions && ptr + 1 < end && + my_uca_can_be_contraction_head(contractions, (uchar) *ptr)) { /* Ptr[0] is a contraction head. */ @@ -787,8 +878,8 @@ fill_max_and_min: is not a contraction, then we put only ptr[0], and continue with ptr[1] on the next loop. */ - if (my_cs_can_be_contraction_tail(cs, (uchar) ptr[1]) && - my_cs_contraction2_weight(cs, (uchar) ptr[0], (uchar) ptr[1])) + if (my_uca_can_be_contraction_tail(contractions, (uchar) ptr[1]) && + my_uca_contraction2_weight(contractions, (uchar) ptr[0], ptr[1])) { /* Contraction found */ if (maxcharlen == 1 || min_str + 1 >= min_end) @@ -853,7 +944,7 @@ my_like_range_generic(CHARSET_INFO *cs, char *max_end= max_str + res_length; size_t charlen= res_length / cs->mbmaxlen; size_t res_length_diff; - my_bool have_contractions= my_cs_have_contractions(cs); + const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0); for ( ; charlen > 0; charlen--) { @@ -921,8 +1012,8 @@ my_like_range_generic(CHARSET_INFO *cs, goto pad_min_max; } - if (have_contractions && - my_cs_can_be_contraction_head(cs, wc) && + if (contractions && + my_uca_can_be_contraction_head(contractions, wc) && (res= cs->cset->mb_wc(cs, &wc2, (uchar*) ptr, (uchar*) end)) > 0) { const uint16 *weight; @@ -933,8 +1024,8 @@ my_like_range_generic(CHARSET_INFO *cs, goto pad_min_max; } - if (my_cs_can_be_contraction_tail(cs, wc2) && - (weight= my_cs_contraction2_weight(cs, wc, wc2)) && weight[0]) + if (my_uca_can_be_contraction_tail(contractions, wc2) && + (weight= my_uca_contraction2_weight(contractions, wc, wc2)) && weight[0]) { /* Contraction found */ if (charlen == 1) @@ -1101,7 +1192,7 @@ static int my_wildcmp_mb_bin_impl(CHARSET_INFO *cs, if (tmp <= 0) return (tmp); } - } while (str != str_end && wildstr[0] != w_many); + } while (str != str_end); return(-1); } } @@ -1381,7 +1472,7 @@ MY_COLLATION_HANDLER my_collation_mb_bin_handler = NULL, /* init */ my_strnncoll_mb_bin, my_strnncollsp_mb_bin, - my_strnxfrm_mb_bin, + my_strnxfrm_mb, my_strnxfrmlen_simple, my_like_range_mb, my_wildcmp_mb_bin, diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 4556ed75f7e..7f13cef4474 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -72,27 +72,28 @@ size_t my_strnxfrmlen_simple(CHARSET_INFO *cs, size_t len) size_t my_strnxfrm_simple(CHARSET_INFO * cs, - uchar *dest, size_t len, - const uchar *src, size_t srclen) + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { const uchar *map= cs->sort_order; - size_t dstlen= len; - set_if_smaller(len, srclen); - if (dest != src) + uchar *d0= dst; + uint frmlen; + if ((frmlen= MY_MIN(dstlen, nweights)) > srclen) + frmlen= srclen; + if (dst != src) { const uchar *end; - for ( end=src+len; src < end ; ) - *dest++= map[*src++]; + for (end= src + frmlen; src < end;) + *dst++= map[*src++]; } else { const uchar *end; - for ( end=dest+len; dest < end ; dest++) - *dest= (char) map[(uchar) *dest]; + for (end= dst + frmlen; dst < end; dst++) + *dst= map[(uchar) *dst]; } - if (dstlen > len) - bfill(dest, dstlen - len, ' '); - return dstlen; + return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, d0 + dstlen, + nweights - frmlen, flags, 0); } @@ -159,7 +160,7 @@ int my_strnncollsp_simple(CHARSET_INFO * cs, const uchar *a, size_t a_length, diff_if_only_endspace_difference= 0; #endif - end= a + (length= min(a_length, b_length)); + end= a + (length= MY_MIN(a_length, b_length)); while (a < end) { if (map[*a++] != map[*b++]) @@ -305,24 +306,48 @@ void my_hash_sort_simple(CHARSET_INFO *cs, { register const uchar *sort_order=cs->sort_order; const uchar *end; - ulong n1, n2; + register ulong m1= *nr1, m2= *nr2; + uint16 space_weight= sort_order[' ']; /* - Remove end space. We have to do this to be able to compare - 'A ' and 'A' as identical + Remove all trailing characters that are equal to space. + We have to do this to be able to compare 'A ' and 'A' as identical. + + If the key is long enough, cut the trailing spaces (0x20) using an + optimized function implemented in skip_trailing_spaces(). + + "len > 16" is just some heuristic here. + Calling skip_triling_space() for short values is not desirable, + because its initialization block may be more expensive than the + performance gained. + */ + + end= len > 16 ? skip_trailing_space(key, len) : key + len; + + /* + We removed all trailing characters that are binary equal to space 0x20. + Now remove all trailing characters that have weights equal to space. + Some 8bit simple collations may have such characters: + - cp1250_general_ci 0xA0 NO-BREAK SPACE == 0x20 SPACE + - cp1251_ukrainian_ci 0x60 GRAVE ACCENT == 0x20 SPACE + - koi8u_general_ci 0x60 GRAVE ACCENT == 0x20 SPACE */ - end= skip_trailing_space(key, len); - n1= *nr1; - n2= *nr2; + for ( ; key < end ; ) + { + if (sort_order[*--end] != space_weight) + { + end++; + break; + } + } + for (; key < (uchar*) end ; key++) { - n1^=(ulong) ((((uint) n1 & 63)+n2) * - ((uint) sort_order[(uint) *key])) + (n1 << 8); - n2+=3; + MY_HASH_ADD(m1, m2, (uint) sort_order[(uint) *key]); } - *nr1= n1; - *nr2= n2; + *nr1= m1; + *nr2= m2; } @@ -769,7 +794,7 @@ size_t my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), val= new_val; } - len= min(len, (size_t) (e-p)); + len= MY_MIN(len, (size_t) (e-p)); memcpy(dst, p, len); return len+sign; } @@ -823,7 +848,7 @@ size_t my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), long_val= quo; } - len= min(len, (size_t) (e-p)); + len= MY_MIN(len, (size_t) (e-p)); cnv: memcpy(dst, p, len); return len+sign; @@ -911,9 +936,14 @@ int my_wildcmp_8bit_impl(CHARSET_INFO *cs, cmp=likeconv(cs,cmp); do { + /* + Find the next character in the subject string equal to 'cmp', then + check recursively my_wildcmp_8bit_impl() for the pattern remainder. + */ while (str != str_end && (uchar) likeconv(cs,*str) != cmp) str++; - if (str++ == str_end) return(-1); + if (str++ == str_end) + return(-1); /* 'cmp' was not found in the subject string */ { int tmp=my_wildcmp_8bit_impl(cs,str,str_end, wildstr,wildend,escape,w_one, @@ -921,7 +951,13 @@ int my_wildcmp_8bit_impl(CHARSET_INFO *cs, if (tmp <= 0) return(tmp); } - } while (str != str_end && wildstr[0] != w_many); + /* + The recursion call did not match. But it returned 1, which means + the pattern remainder has some non-special characters. + Continue, there is a chance that we'll find another 'cmp' + at a different position in the subject string. + */ + } while (str != str_end); return(-1); } } @@ -1068,7 +1104,7 @@ size_t my_well_formed_len_8bit(CHARSET_INFO *cs __attribute__((unused)), { size_t nbytes= (size_t) (end-start); *error= 0; - return min(nbytes, nchars); + return MY_MIN(nbytes, nchars); } @@ -1162,12 +1198,12 @@ static int pcmp(const void * f, const void * s) return res; } -static my_bool create_fromuni(struct charset_info_st *cs, - void *(*alloc)(size_t)) +static my_bool +create_fromuni(struct charset_info_st *cs, + MY_CHARSET_LOADER *loader) { uni_idx idx[PLANE_NUM]; int i,n; - struct my_uni_idx_st *tab_from_uni; /* Check that Unicode map is loaded. @@ -1216,7 +1252,8 @@ static my_bool create_fromuni(struct charset_info_st *cs, numchars=idx[i].uidx.to-idx[i].uidx.from+1; if (!(idx[i].uidx.tab= tab= (uchar*) - alloc(numchars * sizeof(*idx[i].uidx.tab)))) + (loader->once_alloc) (numchars * + sizeof(*idx[i].uidx.tab)))) return TRUE; bzero(tab,numchars*sizeof(*tab)); @@ -1234,25 +1271,25 @@ static my_bool create_fromuni(struct charset_info_st *cs, /* Allocate and fill reverse table for each plane */ n=i; - if (!(cs->tab_from_uni= tab_from_uni= (struct my_uni_idx_st*) - alloc(sizeof(MY_UNI_IDX)*(n+1)))) + if (!(cs->tab_from_uni= (MY_UNI_IDX *) + (loader->once_alloc)(sizeof(MY_UNI_IDX) * (n + 1)))) return TRUE; for (i=0; i< n; i++) - tab_from_uni[i]= idx[i].uidx; + ((struct my_uni_idx_st*)cs->tab_from_uni)[i]= idx[i].uidx; /* Set end-of-list marker */ - bzero(&tab_from_uni[i],sizeof(MY_UNI_IDX)); + bzero((char*) &cs->tab_from_uni[i],sizeof(MY_UNI_IDX)); return FALSE; } -static my_bool my_cset_init_8bit(struct charset_info_st *cs, - void *(*alloc)(size_t)) +static my_bool +my_cset_init_8bit(struct charset_info_st *cs, MY_CHARSET_LOADER *loader) { cs->caseup_multiply= 1; cs->casedn_multiply= 1; cs->pad_char= ' '; - return create_fromuni(cs, alloc); + return create_fromuni(cs, loader); } static void set_max_sort_char(struct charset_info_st *cs) @@ -1275,7 +1312,7 @@ static void set_max_sort_char(struct charset_info_st *cs) } static my_bool my_coll_init_simple(struct charset_info_st *cs, - void *(*alloc)(size_t) __attribute__((unused))) + MY_CHARSET_LOADER *loader __attribute__((unused))) { set_max_sort_char(cs); return FALSE; @@ -1682,6 +1719,145 @@ my_bool my_propagate_complex(CHARSET_INFO *cs __attribute__((unused)), } +/* + Normalize strxfrm flags + + SYNOPSIS: + my_strxfrm_flag_normalize() + flags - non-normalized flags + nlevels - number of levels + + NOTES: + If levels are omitted, then 1-maximum is assumed. + If any level number is greater than the maximum, + it is treated as the maximum. + + RETURN + normalized flags +*/ + +uint my_strxfrm_flag_normalize(uint flags, uint maximum) +{ + DBUG_ASSERT(maximum >= 1 && maximum <= MY_STRXFRM_NLEVELS); + + /* If levels are omitted, then 1-maximum is assumed*/ + if (!(flags & MY_STRXFRM_LEVEL_ALL)) + { + static uint def_level_flags[]= {0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F }; + uint flag_pad= flags & + (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN); + flags= def_level_flags[maximum] | flag_pad; + } + else + { + uint i; + uint flag_lev= flags & MY_STRXFRM_LEVEL_ALL; + uint flag_dsc= (flags >> MY_STRXFRM_DESC_SHIFT) & MY_STRXFRM_LEVEL_ALL; + uint flag_rev= (flags >> MY_STRXFRM_REVERSE_SHIFT) & MY_STRXFRM_LEVEL_ALL; + uint flag_pad= flags & + (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN); + + /* + If any level number is greater than the maximum, + it is treated as the maximum. + */ + for (maximum--, flags= 0, i= 0; i < MY_STRXFRM_NLEVELS; i++) + { + uint src_bit= 1 << i; + if (flag_lev & src_bit) + { + uint dst_bit= 1 << MY_MIN(i, maximum); + flags|= dst_bit; + flags|= (flag_dsc & dst_bit) << MY_STRXFRM_DESC_SHIFT; + flags|= (flag_rev & dst_bit) << MY_STRXFRM_REVERSE_SHIFT; + } + } + flags|= flag_pad; + } + + return flags; +} + + +/* + Apply DESC and REVERSE collation rules. + + SYNOPSIS: + my_strxfrm_desc_and_reverse() + str - pointer to string + strend - end of string + flags - flags + level - which level, starting from 0. + + NOTES: + Apply DESC or REVERSE or both flags. + + If DESC flag is given, then the weights + come out NOTed or negated for that level. + + If REVERSE flags is given, then the weights come out in + reverse order for that level, that is, starting with + the last character and ending with the first character. + + If nether DESC nor REVERSE flags are give, + the string is not changed. + +*/ +void +my_strxfrm_desc_and_reverse(uchar *str, uchar *strend, + uint flags, uint level) +{ + if (flags & (MY_STRXFRM_DESC_LEVEL1 << level)) + { + if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level)) + { + for (strend--; str <= strend;) + { + uchar tmp= *str; + *str++= ~*strend; + *strend--= ~tmp; + } + } + else + { + for (; str < strend; str++) + *str= ~*str; + } + } + else if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level)) + { + for (strend--; str < strend;) + { + uchar tmp= *str; + *str++= *strend; + *strend--= tmp; + } + } +} + + +size_t +my_strxfrm_pad_desc_and_reverse(CHARSET_INFO *cs, + uchar *str, uchar *frmend, uchar *strend, + uint nweights, uint flags, uint level) +{ + if (nweights && frmend < strend && (flags & MY_STRXFRM_PAD_WITH_SPACE)) + { + uint fill_length= MY_MIN((uint) (strend - frmend), nweights * cs->mbminlen); + cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char); + frmend+= fill_length; + } + my_strxfrm_desc_and_reverse(str, frmend, flags, level); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && frmend < strend) + { + uint fill_length= strend - frmend; + cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char); + frmend= strend; + } + return frmend - str; +} + + MY_CHARSET_HANDLER my_charset_8bit_handler= { my_cset_init_8bit, diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 50756799a56..dce9e5ad37f 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -197,7 +197,7 @@ static uint mbcharlen_sjis(CHARSET_INFO *cs __attribute__((unused)),uint c) #define sjiscode(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d)) -static MY_UNICASE_INFO c81[256]= +static MY_UNICASE_CHARACTER c81[256]= { /* 8100-810F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -407,7 +407,7 @@ static MY_UNICASE_INFO c81[256]= }; -static MY_UNICASE_INFO c82[256]= +static MY_UNICASE_CHARACTER c82[256]= { /* 8200-820F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -615,7 +615,7 @@ static MY_UNICASE_INFO c82[256]= }; -static MY_UNICASE_INFO c83[256]= +static MY_UNICASE_CHARACTER c83[256]= { /* 8300-830F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -825,7 +825,7 @@ static MY_UNICASE_INFO c83[256]= }; -static MY_UNICASE_INFO c84[256]= +static MY_UNICASE_CHARACTER c84[256]= { /* 8400-840F */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -1035,7 +1035,7 @@ static MY_UNICASE_INFO c84[256]= }; -static MY_UNICASE_INFO *my_caseinfo_sjis[256]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_sjis[256]= { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1072,7 +1072,14 @@ static MY_UNICASE_INFO *my_caseinfo_sjis[256]= }; -static int my_strnncoll_sjis_internal(CHARSET_INFO *cs, +static MY_UNICASE_INFO my_caseinfo_sjis= +{ + 0xFFFF, + my_caseinfo_pages_sjis +}; + + +static int my_strnncoll_sjis_internal(const CHARSET_INFO *cs, const uchar **a_res, size_t a_length, const uchar **b_res, size_t b_length) { @@ -1156,29 +1163,6 @@ static int my_strnncollsp_sjis(CHARSET_INFO *cs __attribute__((unused)), -static size_t my_strnxfrm_sjis(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) -{ - uchar *d_end = dest + len; - uchar *s_end = (uchar*) src + srclen; - while (dest < d_end && src < s_end) - { - if (ismbchar_sjis(cs,(char*) src, (char*) s_end)) - { - *dest++ = *src++; - if (dest < d_end && src < s_end) - *dest++ = *src++; - } - else - *dest++ = sort_order_sjis[(uchar)*src++]; - } - if (len > srclen) - bfill(dest, len - srclen, ' '); - return len; -} - - /* SJIS->Unicode conversion table */ static uint16 sjis_to_unicode[65536]= { @@ -34149,7 +34133,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_sjis, my_strnncollsp_sjis, - my_strnxfrm_sjis, + my_strnxfrm_mb, my_strnxfrmlen_simple, my_like_range_mb, my_wildcmp_mb, /* wildcmp */ @@ -34204,11 +34188,10 @@ struct charset_info_st my_charset_sjis_japanese_ci= to_lower_sjis, to_upper_sjis, sort_order_sjis, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_sjis, /* caseinfo */ + &my_caseinfo_sjis, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -34220,6 +34203,7 @@ struct charset_info_st my_charset_sjis_japanese_ci= 0xFCFC, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -34236,11 +34220,10 @@ struct charset_info_st my_charset_sjis_bin= to_lower_sjis, to_upper_sjis, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_sjis, /* caseinfo */ + &my_caseinfo_sjis, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -34252,6 +34235,7 @@ struct charset_info_st my_charset_sjis_bin= 0xFCFC, /* max_sort_char */ ' ', /* pad char */ 1, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c index d97f8e5ff08..c2ed01a0603 100644 --- a/strings/ctype-tis620.c +++ b/strings/ctype-tis620.c @@ -566,7 +566,7 @@ int my_strnncollsp_tis620(CHARSET_INFO * cs __attribute__((unused)), a_length= thai2sortable(a, a_length); b_length= thai2sortable(b, b_length); - end= a + (length= min(a_length, b_length)); + end= a + (length= MY_MIN(a_length, b_length)); while (a < end) { if (*a++ != *b++) @@ -617,18 +617,26 @@ ret: Ret: Conveted string size */ -static -size_t my_strnxfrm_tis620(CHARSET_INFO *cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_tis620(const CHARSET_INFO *cs, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - size_t dstlen= len; - len= (size_t) (strmake((char*) dest, (char*) src, min(len, srclen)) - - (char*) dest); - len= thai2sortable(dest, len); - if (dstlen > len) - bfill(dest + len, dstlen - len, ' '); - return dstlen; + size_t len, dstlen0= dstlen; + len= (uint) (strmake((char*) dst, (char*) src, MY_MIN(dstlen, srclen)) - + (char*) dst); + len= thai2sortable(dst, len); + set_if_smaller(dstlen, nweights); + set_if_smaller(len, dstlen); + len= my_strxfrm_pad_desc_and_reverse(cs, dst, dst + len, dst + dstlen, + dstlen - len, flags, 0); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len < dstlen0) + { + uint fill_length= dstlen0 - len; + cs->cset->fill(cs, (char*) dst + len, fill_length, cs->pad_char); + len= dstlen0; + } + return len; } @@ -894,11 +902,10 @@ struct charset_info_st my_charset_tis620_thai_ci= to_lower_tis620, to_upper_tis620, sort_order_tis620, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 4, /* strxfrm_multiply */ @@ -910,6 +917,7 @@ struct charset_info_st my_charset_tis620_thai_ci= 255, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -926,11 +934,10 @@ struct charset_info_st my_charset_tis620_bin= to_lower_tis620, to_upper_tis620, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -942,6 +949,7 @@ struct charset_info_st my_charset_tis620_bin= 255, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_8bit_bin_handler }; diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index 6bc71bcade3..2351ee9d932 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -1,5 +1,5 @@ /* Copyright (c) 2004, 2013, Oracle and/or its affiliates. - Copyright (c) 2009, 2014, SkySQL Ab. + Copyright (c) 2009, 2015, MariaDB This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -46,7 +46,6 @@ #define MY_UCA_NCHARS 256 #define MY_UCA_CMASK 255 #define MY_UCA_PSHIFT 8 -#define MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT 0xFFFF static const uint16 page000data[]= { /* 0000 (4 weights per char) */ 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, @@ -6526,6 +6525,12629 @@ NULL ,page0F9data,page0FAdata,page0FBdata, page0FCdata,page0FDdata,page0FEdata,page0FFdata }; + +MY_UCA_INFO my_uca_v400= +{ + { + { + 0xFFFF, /* maxchar */ + (uchar *) uca_length, + (uint16 **) uca_weight, + { /* Contractions: */ + 0, /* nitems */ + NULL, /* item */ + NULL /* flags */ + } + }, + }, + + /* Logical positions */ + 0x0009, /* first_non_ignorable p != ignore */ + 0xA48C, /* last_non_ignorable Not a CJK and not UNASSIGNED */ + + 0x0332, /* first_primary_ignorable p == 0 */ + 0x20EA, /* last_primary_ignorable */ + + 0x0000, /* first_secondary_ignorable p,s == 0 */ + 0xFE73, /* last_secondary_ignorable p,s == 0 */ + + 0x0000, /* first_tertiary_ignorable p,s,t == 0 */ + 0xFE73, /* last_tertiary_ignorable p,s,t == 0 */ + + 0x0000, /* first_trailing */ + 0x0000, /* last_trailing */ + + 0x0009, /* first_variable */ + 0x2183, /* last_variable */ +}; + +/******************************************************/ + +#define MY_UCA_CMASK 255 +#define MY_UCA_PSHIFT 8 + + +/* Created from allkeys.txt. Unicode version '5.2.0'. */ + +static const uint16 uca520_p000[]= { /* 0000 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0000 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0002 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0004 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0006 */ +0x0000,0x0000,0x0000,0x0000, 0x0201,0x0000,0x0000,0x0000, /* 0008 */ +0x0202,0x0000,0x0000,0x0000, 0x0203,0x0000,0x0000,0x0000, /* 000A */ +0x0204,0x0000,0x0000,0x0000, 0x0205,0x0000,0x0000,0x0000, /* 000C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 000E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0010 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0012 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0014 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0016 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0018 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001E */ +0x020A,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* 0020 */ +0x02F5,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* 0022 */ +0x11E1,0x0000,0x0000,0x0000, 0x0363,0x0000,0x0000,0x0000, /* 0024 */ +0x035F,0x0000,0x0000,0x0000, 0x02EE,0x0000,0x0000,0x0000, /* 0026 */ +0x02FF,0x0000,0x0000,0x0000, 0x0300,0x0000,0x0000,0x0000, /* 0028 */ +0x0357,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* 002A */ +0x0234,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* 002C */ +0x0281,0x0000,0x0000,0x0000, 0x035C,0x0000,0x0000,0x0000, /* 002E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 0030 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 0032 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 0034 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 0036 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 0038 */ +0x0247,0x0000,0x0000,0x0000, 0x0243,0x0000,0x0000,0x0000, /* 003A */ +0x0554,0x0000,0x0000,0x0000, 0x0555,0x0000,0x0000,0x0000, /* 003C */ +0x0556,0x0000,0x0000,0x0000, 0x0273,0x0000,0x0000,0x0000, /* 003E */ +0x0356,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0040 */ +0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0042 */ +0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0044 */ +0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0046 */ +0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0048 */ +0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 004A */ +0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 004C */ +0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 004E */ +0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0050 */ +0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0052 */ +0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0054 */ +0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0056 */ +0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0058 */ +0x14AD,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* 005A */ +0x035E,0x0000,0x0000,0x0000, 0x0302,0x0000,0x0000,0x0000, /* 005C */ +0x0211,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* 005E */ +0x020E,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0060 */ +0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0062 */ +0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0064 */ +0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0066 */ +0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0068 */ +0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 006A */ +0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 006C */ +0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 006E */ +0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0070 */ +0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0072 */ +0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0074 */ +0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0076 */ +0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0078 */ +0x14AD,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* 007A */ +0x0558,0x0000,0x0000,0x0000, 0x0304,0x0000,0x0000,0x0000, /* 007C */ +0x055B,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 007E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0080 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0082 */ +0x0000,0x0000,0x0000,0x0000, 0x0206,0x0000,0x0000,0x0000, /* 0084 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0086 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0088 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0090 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0092 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0094 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0096 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0098 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009E */ +0x020A,0x0000,0x0000,0x0000, 0x026F,0x0000,0x0000,0x0000, /* 00A0 */ +0x11E0,0x0000,0x0000,0x0000, 0x11E2,0x0000,0x0000,0x0000, /* 00A2 */ +0x11DF,0x0000,0x0000,0x0000, 0x11E3,0x0000,0x0000,0x0000, /* 00A4 */ +0x0559,0x0000,0x0000,0x0000, 0x0351,0x0000,0x0000,0x0000, /* 00A6 */ +0x0216,0x0000,0x0000,0x0000, 0x0354,0x0000,0x0000,0x0000, /* 00A8 */ +0x120F,0x0000,0x0000,0x0000, 0x02FD,0x0000,0x0000,0x0000, /* 00AA */ +0x0557,0x0000,0x0000,0x0000, 0x0222,0x0000,0x0000,0x0000, /* 00AC */ +0x0355,0x0000,0x0000,0x0000, 0x0212,0x0000,0x0000,0x0000, /* 00AE */ +0x044B,0x0000,0x0000,0x0000, 0x0551,0x0000,0x0000,0x0000, /* 00B0 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 00B2 */ +0x020F,0x0000,0x0000,0x0000, 0x1557,0x0000,0x0000,0x0000, /* 00B4 */ +0x0352,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 00B6 */ +0x021B,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 00B8 */ +0x138E,0x0000,0x0000,0x0000, 0x02FE,0x0000,0x0000,0x0000, /* 00BA */ +0x1206,0x035D,0x1209,0x0000, 0x1206,0x035D,0x1207,0x0000, /* 00BC */ +0x1208,0x035D,0x1209,0x0000, 0x0274,0x0000,0x0000,0x0000, /* 00BE */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C0 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C2 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C4 */ +0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00C6 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00C8 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00CA */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CC */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CE */ +0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00D0 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D2 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D4 */ +0x138E,0x0000,0x0000,0x0000, 0x0553,0x0000,0x0000,0x0000, /* 00D6 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00D8 */ +0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00DA */ +0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00DC */ +0x14E0,0x0000,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 00DE */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E0 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E2 */ +0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E4 */ +0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00E6 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00E8 */ +0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00EA */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EC */ +0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EE */ +0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00F0 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F2 */ +0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F4 */ +0x138E,0x0000,0x0000,0x0000, 0x0552,0x0000,0x0000,0x0000, /* 00F6 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00F8 */ +0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00FA */ +0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00FC */ +0x14E0,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000 /* 00FE */ +}; + +static const uint16 uca520_p001[]= { /* 0100 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0100 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0103 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0106 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0109 */ +0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010C */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010F */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0112 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0115 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0118 */ +0x126B,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011B */ +0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011E */ +0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 0121 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 0124 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0127 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012A */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012D */ +0x12EC,0x0000,0x0000, 0x12F0,0x0000,0x0000, 0x12EC,0x1305,0x0000, /* 0130 */ +0x12EC,0x1305,0x0000, 0x1305,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 0133 */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x13D6,0x0000,0x0000, /* 0136 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 0139 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013C */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013F */ +0x1330,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0142 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0145 */ +0x136D,0x0000,0x0000, 0x150B,0x136D,0x0000, 0x138A,0x0000,0x0000, /* 0148 */ +0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014B */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014E */ +0x138E,0x0000,0x0000, 0x138E,0x126B,0x0000, 0x138E,0x126B,0x0000, /* 0151 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0154 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0157 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015A */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015D */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0160 */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0163 */ +0x1438,0x0000,0x0000, 0x1438,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0166 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0169 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016C */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016F */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 0172 */ +0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0175 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 0178 */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 017B */ +0x14AD,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x122D,0x0000,0x0000, /* 017E */ +0x1235,0x0000,0x0000, 0x1239,0x0000,0x0000, 0x1239,0x0000,0x0000, /* 0181 */ +0x14FE,0x0000,0x0000, 0x14FE,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 0184 */ +0x1246,0x0000,0x0000, 0x1246,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0187 */ +0x125C,0x0000,0x0000, 0x1261,0x0000,0x0000, 0x1261,0x0000,0x0000, /* 018A */ +0x14AD,0x148D,0x0000, 0x1276,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 018D */ +0x1280,0x0000,0x0000, 0x12AA,0x0000,0x0000, 0x12AA,0x0000,0x0000, /* 0190 */ +0x12C1,0x0000,0x0000, 0x12CB,0x0000,0x0000, 0x12DB,0x0000,0x0000, /* 0193 */ +0x1300,0x0000,0x0000, 0x12FA,0x0000,0x0000, 0x1324,0x0000,0x0000, /* 0196 */ +0x1324,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x1357,0x0000,0x0000, /* 0199 */ +0x146D,0x0000,0x0000, 0x1378,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 019C */ +0x13A5,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 019F */ +0x12CF,0x0000,0x0000, 0x12CF,0x0000,0x0000, 0x13BC,0x0000,0x0000, /* 01A2 */ +0x13BC,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x14F6,0x0000,0x0000, /* 01A5 */ +0x14F6,0x0000,0x0000, 0x1421,0x0000,0x0000, 0x1426,0x0000,0x0000, /* 01A8 */ +0x143E,0x0000,0x0000, 0x1442,0x0000,0x0000, 0x1442,0x0000,0x0000, /* 01AB */ +0x1446,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01AE */ +0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x14A8,0x0000,0x0000, /* 01B1 */ +0x14A8,0x0000,0x0000, 0x14B2,0x0000,0x0000, 0x14B2,0x0000,0x0000, /* 01B4 */ +0x14CA,0x0000,0x0000, 0x14CF,0x0000,0x0000, 0x14CF,0x0000,0x0000, /* 01B7 */ +0x14D4,0x0000,0x0000, 0x14EF,0x0000,0x0000, 0x14FA,0x0000,0x0000, /* 01BA */ +0x14FA,0x0000,0x0000, 0x1433,0x1410,0x0000, 0x14E6,0x0000,0x0000, /* 01BD */ +0x1525,0x0000,0x0000, 0x1529,0x0000,0x0000, 0x152D,0x0000,0x0000, /* 01C0 */ +0x1531,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01C3 */ +0x1250,0x14AD,0x0000, 0x1330,0x1305,0x0000, 0x1330,0x1305,0x0000, /* 01C6 */ +0x1330,0x1305,0x0000, 0x136D,0x1305,0x0000, 0x136D,0x1305,0x0000, /* 01C9 */ +0x136D,0x1305,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01CC */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01CF */ +0x138E,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D2 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D5 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D8 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 01DB */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01DE */ +0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, /* 01E1 */ +0x12BC,0x0000,0x0000, 0x12BC,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01E4 */ +0x12B0,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 01E7 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01EA */ +0x138E,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 01ED */ +0x1305,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01F0 */ +0x1250,0x14AD,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01F3 */ +0x12DB,0x0000,0x0000, 0x14E6,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 01F6 */ +0x136D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01F9 */ +0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, 0x138E,0x0000,0x0000, /* 01FC */ +0x138E,0x0000,0x0000 }; + +static const uint16 uca520_p002[]= { /* 0200 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0200 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0203 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0206 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0209 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 020C */ +0x138E,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 020F */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0212 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0215 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0218 */ +0x1433,0x0000,0x0000, 0x14DC,0x0000,0x0000, 0x14DC,0x0000,0x0000, /* 021B */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 021E */ +0x1265,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13AE,0x0000,0x0000, /* 0221 */ +0x14B8,0x0000,0x0000, 0x14B8,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0224 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0227 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022A */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022D */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0230 */ +0x149C,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x1385,0x0000,0x0000, /* 0233 */ +0x144A,0x0000,0x0000, 0x1309,0x0000,0x0000, 0x1250,0x1225,0x0000, /* 0236 */ +0x13C8,0x13B3,0x0000, 0x1214,0x0000,0x0000, 0x1242,0x0000,0x0000, /* 0239 */ +0x1242,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x143C,0x0000,0x0000, /* 023C */ +0x141B,0x0000,0x0000, 0x14C4,0x0000,0x0000, 0x1506,0x0000,0x0000, /* 023F */ +0x1506,0x0000,0x0000, 0x122D,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0242 */ +0x1489,0x0000,0x0000, 0x1270,0x0000,0x0000, 0x1270,0x0000,0x0000, /* 0245 */ +0x130E,0x0000,0x0000, 0x130E,0x0000,0x0000, 0x13D2,0x0000,0x0000, /* 0248 */ +0x13D2,0x0000,0x0000, 0x13E4,0x0000,0x0000, 0x13E4,0x0000,0x0000, /* 024B */ +0x14A4,0x0000,0x0000, 0x14A4,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 024E */ +0x121C,0x0000,0x0000, 0x1221,0x0000,0x0000, 0x1235,0x0000,0x0000, /* 0251 */ +0x139A,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0254 */ +0x125C,0x0000,0x0000, 0x1285,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 0257 */ +0x1289,0x0000,0x0000, 0x1280,0x0000,0x0000, 0x128D,0x0000,0x0000, /* 025A */ +0x1293,0x0000,0x0000, 0x1297,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 025D */ +0x12C1,0x0000,0x0000, 0x12B4,0x0000,0x0000, 0x12B8,0x0000,0x0000, /* 0260 */ +0x12CB,0x0000,0x0000, 0x129F,0x0000,0x0000, 0x1461,0x0000,0x0000, /* 0263 */ +0x12DF,0x0000,0x0000, 0x12E6,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 0266 */ +0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x1340,0x0000,0x0000, /* 0269 */ +0x1344,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1352,0x0000,0x0000, /* 026C */ +0x146D,0x0000,0x0000, 0x1472,0x0000,0x0000, 0x1366,0x0000,0x0000, /* 026F */ +0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 0272 */ +0x13A5,0x0000,0x0000, 0x1394,0x0000,0x0000, 0x13AA,0x0000,0x0000, /* 0275 */ +0x13C3,0x0000,0x0000, 0x13E9,0x0000,0x0000, 0x13EE,0x0000,0x0000, /* 0278 */ +0x13F3,0x0000,0x0000, 0x13F8,0x0000,0x0000, 0x13FC,0x0000,0x0000, /* 027B */ +0x1400,0x0000,0x0000, 0x1405,0x0000,0x0000, 0x13DE,0x0000,0x0000, /* 027E */ +0x1409,0x0000,0x0000, 0x1417,0x0000,0x0000, 0x1421,0x0000,0x0000, /* 0281 */ +0x131A,0x0000,0x0000, 0x142A,0x0000,0x0000, 0x142F,0x0000,0x0000, /* 0284 */ +0x144F,0x0000,0x0000, 0x1446,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0287 */ +0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x1489,0x0000,0x0000, /* 028A */ +0x1493,0x0000,0x0000, 0x135B,0x0000,0x0000, 0x14A0,0x0000,0x0000, /* 028D */ +0x14BC,0x0000,0x0000, 0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 0290 */ +0x14D8,0x0000,0x0000, 0x1502,0x0000,0x0000, 0x1510,0x0000,0x0000, /* 0293 */ +0x1521,0x0000,0x0000, 0x1535,0x0000,0x0000, 0x1539,0x0000,0x0000, /* 0296 */ +0x1229,0x0000,0x0000, 0x129B,0x0000,0x0000, 0x12C5,0x0000,0x0000, /* 0299 */ +0x12D7,0x0000,0x0000, 0x1312,0x0000,0x0000, 0x132C,0x0000,0x0000, /* 029C */ +0x1334,0x0000,0x0000, 0x13CE,0x0000,0x0000, 0x1519,0x0000,0x0000, /* 029F */ +0x151D,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14CA,0x0000, /* 02A2 */ +0x1250,0x14C0,0x0000, 0x1433,0x1410,0x0000, 0x1433,0x1421,0x0000, /* 02A5 */ +0x1433,0x124A,0x0000, 0x12A3,0x138A,0x0000, 0x1330,0x1410,0x0000, /* 02A8 */ +0x1330,0x14AD,0x0000, 0x153D,0x0000,0x0000, 0x1541,0x0000,0x0000, /* 02AB */ +0x1465,0x0000,0x0000, 0x1469,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 02AE */ +0x12DF,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 02B1 */ +0x13E9,0x0000,0x0000, 0x13F3,0x0000,0x0000, 0x1409,0x0000,0x0000, /* 02B4 */ +0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x03E9,0x0000,0x0000, /* 02B7 */ +0x03EB,0x0000,0x0000, 0x12EA,0x0000,0x0000, 0x150B,0x0000,0x0000, /* 02BA */ +0x12EB,0x0000,0x0000, 0x150D,0x0000,0x0000, 0x1514,0x0000,0x0000, /* 02BD */ +0x150A,0x0000,0x0000, 0x1515,0x0000,0x0000, 0x03EC,0x0000,0x0000, /* 02C0 */ +0x03ED,0x0000,0x0000, 0x03EE,0x0000,0x0000, 0x03EF,0x0000,0x0000, /* 02C3 */ +0x03F0,0x0000,0x0000, 0x03F1,0x0000,0x0000, 0x03F2,0x0000,0x0000, /* 02C6 */ +0x03F3,0x0000,0x0000, 0x03F4,0x0000,0x0000, 0x03F5,0x0000,0x0000, /* 02C9 */ +0x03F6,0x0000,0x0000, 0x03F7,0x0000,0x0000, 0x03F8,0x0000,0x0000, /* 02CC */ +0x03F9,0x0000,0x0000, 0x11CE,0x0000,0x0000, 0x11CF,0x0000,0x0000, /* 02CF */ +0x03FA,0x0000,0x0000, 0x03FB,0x0000,0x0000, 0x03FC,0x0000,0x0000, /* 02D2 */ +0x03FD,0x0000,0x0000, 0x03FE,0x0000,0x0000, 0x03FF,0x0000,0x0000, /* 02D5 */ +0x0214,0x0000,0x0000, 0x0215,0x0000,0x0000, 0x0217,0x0000,0x0000, /* 02D8 */ +0x021C,0x0000,0x0000, 0x0210,0x0000,0x0000, 0x0218,0x0000,0x0000, /* 02DB */ +0x0400,0x0000,0x0000, 0x0401,0x0000,0x0000, 0x12CB,0x0000,0x0000, /* 02DE */ +0x1330,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 02E1 */ +0x1510,0x0000,0x0000, 0x0402,0x0000,0x0000, 0x0403,0x0000,0x0000, /* 02E4 */ +0x0404,0x0000,0x0000, 0x0405,0x0000,0x0000, 0x0406,0x0000,0x0000, /* 02E7 */ +0x0407,0x0000,0x0000, 0x0408,0x0000,0x0000, 0x0409,0x0000,0x0000, /* 02EA */ +0x040A,0x0000,0x0000, 0x150C,0x0000,0x0000, 0x040B,0x0000,0x0000, /* 02ED */ +0x040C,0x0000,0x0000, 0x040D,0x0000,0x0000, 0x040E,0x0000,0x0000, /* 02F0 */ +0x040F,0x0000,0x0000, 0x0410,0x0000,0x0000, 0x0411,0x0000,0x0000, /* 02F3 */ +0x0412,0x0000,0x0000, 0x0413,0x0000,0x0000, 0x0414,0x0000,0x0000, /* 02F6 */ +0x0415,0x0000,0x0000, 0x0416,0x0000,0x0000, 0x0417,0x0000,0x0000, /* 02F9 */ +0x0418,0x0000,0x0000, 0x0419,0x0000,0x0000, 0x041A,0x0000,0x0000, /* 02FC */ +0x041B,0x0000,0x0000 }; + +static const uint16 uca520_p003[]= { /* 0300 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0300 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0302 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0304 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0306 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0308 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0310 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0312 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0314 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0316 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0318 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0320 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0322 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0324 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0326 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0328 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0330 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0332 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0334 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0336 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0338 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0340 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0342 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0344 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0346 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0348 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0350 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0352 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0354 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0356 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0358 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0360 */ +0x0000,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0362 */ +0x126B,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0364 */ +0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0366 */ +0x123D,0x0000,0x0000,0x0000, 0x1250,0x0000,0x0000,0x0000, /* 0368 */ +0x12D3,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 036A */ +0x13DA,0x0000,0x0000,0x0000, 0x1433,0x0000,0x0000,0x0000, /* 036C */ +0x147B,0x0000,0x0000,0x0000, 0x1497,0x0000,0x0000,0x0000, /* 036E */ +0x154F,0x0000,0x0000,0x0000, 0x154F,0x0000,0x0000,0x0000, /* 0370 */ +0x156F,0x0000,0x0000,0x0000, 0x156F,0x0000,0x0000,0x0000, /* 0372 */ +0x03E9,0x0000,0x0000,0x0000, 0x03EA,0x0000,0x0000,0x0000, /* 0374 */ +0x154C,0x0000,0x0000,0x0000, 0x154C,0x0000,0x0000,0x0000, /* 0376 */ +0xFBC0,0x8378,0x0000,0x0000, 0xFBC0,0x8379,0x0000,0x0000, /* 0378 */ +0x1552,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 037A */ +0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000, /* 037C */ +0x0243,0x0000,0x0000,0x0000, 0xFBC0,0x837F,0x0000,0x0000, /* 037E */ +0xFBC0,0x8380,0x0000,0x0000, 0xFBC0,0x8381,0x0000,0x0000, /* 0380 */ +0xFBC0,0x8382,0x0000,0x0000, 0xFBC0,0x8383,0x0000,0x0000, /* 0382 */ +0x020F,0x0000,0x0000,0x0000, 0x0216,0x0000,0x0000,0x0000, /* 0384 */ +0x1545,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 0386 */ +0x154A,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0388 */ +0x1552,0x0000,0x0000,0x0000, 0xFBC0,0x838B,0x0000,0x0000, /* 038A */ +0x155A,0x0000,0x0000,0x0000, 0xFBC0,0x838D,0x0000,0x0000, /* 038C */ +0x1568,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 038E */ +0x1552,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 0390 */ +0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 0392 */ +0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 0394 */ +0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0396 */ +0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 0398 */ +0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 039A */ +0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 039C */ +0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 039E */ +0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03A0 */ +0xFBC0,0x83A2,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03A2 */ +0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03A4 */ +0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03A6 */ +0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03A8 */ +0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03AA */ +0x1545,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03AC */ +0x1550,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03AE */ +0x1568,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 03B0 */ +0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 03B2 */ +0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03B4 */ +0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 03B6 */ +0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03B8 */ +0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 03BA */ +0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 03BC */ +0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 03BE */ +0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03C0 */ +0x1563,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03C2 */ +0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03C4 */ +0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03C6 */ +0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03C8 */ +0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CA */ +0x155A,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CC */ +0x156D,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03CE */ +0x1546,0x0000,0x0000,0x0000, 0x1551,0x0000,0x0000,0x0000, /* 03D0 */ +0x1568,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03D2 */ +0x1568,0x0000,0x0000,0x0000, 0x1569,0x0000,0x0000,0x0000, /* 03D4 */ +0x155B,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03D6 */ +0x155F,0x0000,0x0000,0x0000, 0x155F,0x0000,0x0000,0x0000, /* 03D8 */ +0x154D,0x0000,0x0000,0x0000, 0x154D,0x0000,0x0000,0x0000, /* 03DA */ +0x154B,0x0000,0x0000,0x0000, 0x154B,0x0000,0x0000,0x0000, /* 03DC */ +0x155E,0x0000,0x0000,0x0000, 0x155E,0x0000,0x0000,0x0000, /* 03DE */ +0x156E,0x0000,0x0000,0x0000, 0x156E,0x0000,0x0000,0x0000, /* 03E0 */ +0x1590,0x0000,0x0000,0x0000, 0x1590,0x0000,0x0000,0x0000, /* 03E2 */ +0x1595,0x0000,0x0000,0x0000, 0x1595,0x0000,0x0000,0x0000, /* 03E4 */ +0x1596,0x0000,0x0000,0x0000, 0x1596,0x0000,0x0000,0x0000, /* 03E6 */ +0x1598,0x0000,0x0000,0x0000, 0x1598,0x0000,0x0000,0x0000, /* 03E8 */ +0x159F,0x0000,0x0000,0x0000, 0x159F,0x0000,0x0000,0x0000, /* 03EA */ +0x15A2,0x0000,0x0000,0x0000, 0x15A2,0x0000,0x0000,0x0000, /* 03EC */ +0x15A6,0x0000,0x0000,0x0000, 0x15A6,0x0000,0x0000,0x0000, /* 03EE */ +0x1554,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03F0 */ +0x1563,0x0000,0x0000,0x0000, 0x1553,0x0000,0x0000,0x0000, /* 03F2 */ +0x1551,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03F4 */ +0x054B,0x0000,0x0000,0x0000, 0x1570,0x0000,0x0000,0x0000, /* 03F6 */ +0x1570,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03F8 */ +0x155D,0x0000,0x0000,0x0000, 0x155D,0x0000,0x0000,0x0000, /* 03FA */ +0x1562,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 03FC */ +0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000 /* 03FE */ +}; + +static const uint16 uca520_p004[]= { /* 0400 (2 weights per char) */ +0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0400 */ +0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0404 */ +0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0408 */ +0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 040C */ +0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0410 */ +0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0414 */ +0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0418 */ +0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 041C */ +0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0420 */ +0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0424 */ +0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0428 */ +0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 042C */ +0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0430 */ +0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0434 */ +0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0438 */ +0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 043C */ +0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0440 */ +0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0444 */ +0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0448 */ +0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 044C */ +0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0450 */ +0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0454 */ +0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0458 */ +0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 045C */ +0x170A,0x0000, 0x170A,0x0000, 0x1768,0x0000, 0x1768,0x0000, /* 0460 */ +0x1780,0x0000, 0x1780,0x0000, 0x1784,0x0000, 0x1784,0x0000, /* 0464 */ +0x178E,0x0000, 0x178E,0x0000, 0x1789,0x0000, 0x1789,0x0000, /* 0468 */ +0x1793,0x0000, 0x1793,0x0000, 0x1797,0x0000, 0x1797,0x0000, /* 046C */ +0x179B,0x0000, 0x179B,0x0000, 0x179F,0x0000, 0x179F,0x0000, /* 0470 */ +0x17A3,0x0000, 0x17A3,0x0000, 0x17A7,0x0000, 0x17A7,0x0000, /* 0474 */ +0x16ED,0x0000, 0x16ED,0x0000, 0x1717,0x0000, 0x1717,0x0000, /* 0478 */ +0x1713,0x0000, 0x1713,0x0000, 0x170E,0x0000, 0x170E,0x0000, /* 047C */ +0x16AB,0x0000, 0x16AB,0x0000, 0x044C,0x0000, 0x0000,0x0000, /* 0480 */ +0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 0484 */ +0x0000,0x0000, 0x0000,0x0000, 0x1629,0x0000, 0x1629,0x0000, /* 0488 */ +0x1764,0x0000, 0x1764,0x0000, 0x16B3,0x0000, 0x16B3,0x0000, /* 048C */ +0x15CC,0x0000, 0x15CC,0x0000, 0x15D0,0x0000, 0x15D0,0x0000, /* 0490 */ +0x15D8,0x0000, 0x15D8,0x0000, 0x1609,0x0000, 0x1609,0x0000, /* 0494 */ +0x15F0,0x0000, 0x15F0,0x0000, 0x1647,0x0000, 0x1647,0x0000, /* 0498 */ +0x1657,0x0000, 0x1657,0x0000, 0x1653,0x0000, 0x1653,0x0000, /* 049C */ +0x164F,0x0000, 0x164F,0x0000, 0x1680,0x0000, 0x1680,0x0000, /* 04A0 */ +0x1689,0x0000, 0x1689,0x0000, 0x16A7,0x0000, 0x16A7,0x0000, /* 04A4 */ +0x17AC,0x0000, 0x17AC,0x0000, 0x16BD,0x0000, 0x16BD,0x0000, /* 04A8 */ +0x16C7,0x0000, 0x16C7,0x0000, 0x16E4,0x0000, 0x16E4,0x0000, /* 04AC */ +0x16E8,0x0000, 0x16E8,0x0000, 0x1701,0x0000, 0x1701,0x0000, /* 04B0 */ +0x1720,0x0000, 0x1720,0x0000, 0x172E,0x0000, 0x172E,0x0000, /* 04B4 */ +0x1736,0x0000, 0x1736,0x0000, 0x1705,0x0000, 0x1705,0x0000, /* 04B8 */ +0x173B,0x0000, 0x173B,0x0000, 0x173F,0x0000, 0x173F,0x0000, /* 04BC */ +0x17B1,0x0000, 0x1600,0x0000, 0x1600,0x0000, 0x164B,0x0000, /* 04C0 */ +0x164B,0x0000, 0x1662,0x0000, 0x1662,0x0000, 0x1684,0x0000, /* 04C4 */ +0x1684,0x0000, 0x167C,0x0000, 0x167C,0x0000, 0x1732,0x0000, /* 04C8 */ +0x1732,0x0000, 0x1673,0x0000, 0x1673,0x0000, 0x17B1,0x0000, /* 04CC */ +0x15B0,0x0000, 0x15B0,0x0000, 0x15B4,0x0000, 0x15B4,0x0000, /* 04D0 */ +0x15C0,0x0000, 0x15C0,0x0000, 0x15F8,0x0000, 0x15F8,0x0000, /* 04D4 */ +0x15B8,0x0000, 0x15B8,0x0000, 0x15BC,0x0000, 0x15BC,0x0000, /* 04D8 */ +0x1605,0x0000, 0x1605,0x0000, 0x1614,0x0000, 0x1614,0x0000, /* 04DC */ +0x161E,0x0000, 0x161E,0x0000, 0x1625,0x0000, 0x1625,0x0000, /* 04E0 */ +0x162D,0x0000, 0x162D,0x0000, 0x1696,0x0000, 0x1696,0x0000, /* 04E4 */ +0x169A,0x0000, 0x169A,0x0000, 0x169E,0x0000, 0x169E,0x0000, /* 04E8 */ +0x1771,0x0000, 0x1771,0x0000, 0x16D4,0x0000, 0x16D4,0x0000, /* 04EC */ +0x16DC,0x0000, 0x16DC,0x0000, 0x16E0,0x0000, 0x16E0,0x0000, /* 04F0 */ +0x172A,0x0000, 0x172A,0x0000, 0x15DC,0x0000, 0x15DC,0x0000, /* 04F4 */ +0x175C,0x0000, 0x175C,0x0000, 0x15D4,0x0000, 0x15D4,0x0000, /* 04F8 */ +0x16F9,0x0000, 0x16F9,0x0000, 0x16FD,0x0000, 0x16FD,0x0000 /* 04FC */ +}; + +static const uint16 uca520_p005[]= { /* 0500 (3 weights per char) */ +0x15E4,0x0000,0x0000, 0x15E4,0x0000,0x0000, 0x15EB,0x0000,0x0000, /* 0500 */ +0x15EB,0x0000,0x0000, 0x1612,0x0000,0x0000, 0x1612,0x0000,0x0000, /* 0503 */ +0x1623,0x0000,0x0000, 0x1623,0x0000,0x0000, 0x166D,0x0000,0x0000, /* 0506 */ +0x166D,0x0000,0x0000, 0x1691,0x0000,0x0000, 0x1691,0x0000,0x0000, /* 0509 */ +0x16BC,0x0000,0x0000, 0x16BC,0x0000,0x0000, 0x16C6,0x0000,0x0000, /* 050C */ +0x16C6,0x0000,0x0000, 0x1613,0x0000,0x0000, 0x1613,0x0000,0x0000, /* 050F */ +0x1666,0x0000,0x0000, 0x1666,0x0000,0x0000, 0x166E,0x0000,0x0000, /* 0512 */ +0x166E,0x0000,0x0000, 0x16B7,0x0000,0x0000, 0x16B7,0x0000,0x0000, /* 0515 */ +0x177F,0x0000,0x0000, 0x177F,0x0000,0x0000, 0x165C,0x0000,0x0000, /* 0518 */ +0x165C,0x0000,0x0000, 0x17B0,0x0000,0x0000, 0x17B0,0x0000,0x0000, /* 051B */ +0x165B,0x0000,0x0000, 0x165B,0x0000,0x0000, 0x1667,0x0000,0x0000, /* 051E */ +0x1667,0x0000,0x0000, 0x1688,0x0000,0x0000, 0x1688,0x0000,0x0000, /* 0521 */ +0x16A6,0x0000,0x0000, 0x16A6,0x0000,0x0000, 0xFBC0,0x8526,0x0000, /* 0524 */ +0xFBC0,0x8527,0x0000, 0xFBC0,0x8528,0x0000, 0xFBC0,0x8529,0x0000, /* 0527 */ +0xFBC0,0x852A,0x0000, 0xFBC0,0x852B,0x0000, 0xFBC0,0x852C,0x0000, /* 052A */ +0xFBC0,0x852D,0x0000, 0xFBC0,0x852E,0x0000, 0xFBC0,0x852F,0x0000, /* 052D */ +0xFBC0,0x8530,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0530 */ +0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0533 */ +0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0536 */ +0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0539 */ +0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 053C */ +0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 053F */ +0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0542 */ +0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0545 */ +0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0548 */ +0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 054B */ +0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 054E */ +0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0551 */ +0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0554 */ +0xFBC0,0x8557,0x0000, 0xFBC0,0x8558,0x0000, 0x185B,0x0000,0x0000, /* 0557 */ +0x0392,0x0000,0x0000, 0x0393,0x0000,0x0000, 0x0270,0x0000,0x0000, /* 055A */ +0x0235,0x0000,0x0000, 0x0276,0x0000,0x0000, 0x0394,0x0000,0x0000, /* 055D */ +0xFBC0,0x8560,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0560 */ +0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0563 */ +0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0566 */ +0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0569 */ +0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 056C */ +0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 056F */ +0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0572 */ +0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0575 */ +0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0578 */ +0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 057B */ +0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 057E */ +0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0581 */ +0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0584 */ +0x1839,0x1856,0x0000, 0xFBC0,0x8588,0x0000, 0x0248,0x0000,0x0000, /* 0587 */ +0x0224,0x0000,0x0000, 0xFBC0,0x858B,0x0000, 0xFBC0,0x858C,0x0000, /* 058A */ +0xFBC0,0x858D,0x0000, 0xFBC0,0x858E,0x0000, 0xFBC0,0x858F,0x0000, /* 058D */ +0xFBC0,0x8590,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0590 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0593 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0596 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0599 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BA */ +0x0000,0x0000,0x0000, 0x0395,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BD */ +0x0396,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C0 */ +0x0397,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C3 */ +0x0398,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x85C8,0x0000, /* 05C6 */ +0xFBC0,0x85C9,0x0000, 0xFBC0,0x85CA,0x0000, 0xFBC0,0x85CB,0x0000, /* 05C9 */ +0xFBC0,0x85CC,0x0000, 0xFBC0,0x85CD,0x0000, 0xFBC0,0x85CE,0x0000, /* 05CC */ +0xFBC0,0x85CF,0x0000, 0x185C,0x0000,0x0000, 0x185D,0x0000,0x0000, /* 05CF */ +0x185E,0x0000,0x0000, 0x185F,0x0000,0x0000, 0x1860,0x0000,0x0000, /* 05D2 */ +0x1861,0x0000,0x0000, 0x1862,0x0000,0x0000, 0x1863,0x0000,0x0000, /* 05D5 */ +0x1864,0x0000,0x0000, 0x1865,0x0000,0x0000, 0x1866,0x0000,0x0000, /* 05D8 */ +0x1866,0x0000,0x0000, 0x1867,0x0000,0x0000, 0x1868,0x0000,0x0000, /* 05DB */ +0x1868,0x0000,0x0000, 0x1869,0x0000,0x0000, 0x1869,0x0000,0x0000, /* 05DE */ +0x186A,0x0000,0x0000, 0x186B,0x0000,0x0000, 0x186C,0x0000,0x0000, /* 05E1 */ +0x186C,0x0000,0x0000, 0x186D,0x0000,0x0000, 0x186D,0x0000,0x0000, /* 05E4 */ +0x186E,0x0000,0x0000, 0x186F,0x0000,0x0000, 0x1870,0x0000,0x0000, /* 05E7 */ +0x1871,0x0000,0x0000, 0xFBC0,0x85EB,0x0000, 0xFBC0,0x85EC,0x0000, /* 05EA */ +0xFBC0,0x85ED,0x0000, 0xFBC0,0x85EE,0x0000, 0xFBC0,0x85EF,0x0000, /* 05ED */ +0x1861,0x1861,0x0000, 0x1861,0x1865,0x0000, 0x1865,0x1865,0x0000, /* 05F0 */ +0x0399,0x0000,0x0000, 0x039A,0x0000,0x0000, 0xFBC0,0x85F5,0x0000, /* 05F3 */ +0xFBC0,0x85F6,0x0000, 0xFBC0,0x85F7,0x0000, 0xFBC0,0x85F8,0x0000, /* 05F6 */ +0xFBC0,0x85F9,0x0000, 0xFBC0,0x85FA,0x0000, 0xFBC0,0x85FB,0x0000, /* 05F9 */ +0xFBC0,0x85FC,0x0000, 0xFBC0,0x85FD,0x0000, 0xFBC0,0x85FE,0x0000, /* 05FC */ +0xFBC0,0x85FF,0x0000 }; + +static const uint16 uca520_p006[]= { /* 0600 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0600 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8604,0x0000, 0xFBC0,0x8605,0x0000, /* 0603 */ +0x0566,0x0000,0x0000, 0x0568,0x0000,0x0000, 0x044D,0x0000,0x0000, /* 0606 */ +0x0366,0x0000,0x0000, 0x0368,0x0000,0x0000, 0x11E4,0x0000,0x0000, /* 0609 */ +0x0236,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x044E,0x0000,0x0000, /* 060C */ +0x044F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 060F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0612 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0615 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0618 */ +0x0244,0x0000,0x0000, 0xFBC0,0x861C,0x0000, 0xFBC0,0x861D,0x0000, /* 061B */ +0x0249,0x0000,0x0000, 0x0277,0x0000,0x0000, 0xFBC0,0x8620,0x0000, /* 061E */ +0x18A2,0x0000,0x0000, 0x18A3,0x0000,0x0000, 0x18A4,0x0000,0x0000, /* 0621 */ +0x18A7,0x0000,0x0000, 0x18A8,0x0000,0x0000, 0x18AC,0x0000,0x0000, /* 0624 */ +0x18AD,0x0000,0x0000, 0x18AF,0x0000,0x0000, 0x18BA,0x0000,0x0000, /* 0627 */ +0x18BB,0x0000,0x0000, 0x18BC,0x0000,0x0000, 0x18C2,0x0000,0x0000, /* 062A */ +0x18C8,0x0000,0x0000, 0x18C9,0x0000,0x0000, 0x18D3,0x0000,0x0000, /* 062D */ +0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, 0x18E2,0x0000,0x0000, /* 0630 */ +0x18F1,0x0000,0x0000, 0x18F2,0x0000,0x0000, 0x18FC,0x0000,0x0000, /* 0633 */ +0x18FD,0x0000,0x0000, 0x1901,0x0000,0x0000, 0x1902,0x0000,0x0000, /* 0636 */ +0x1904,0x0000,0x0000, 0x1905,0x0000,0x0000, 0x1927,0x0000,0x0000, /* 0639 */ +0x1928,0x0000,0x0000, 0x1956,0x0000,0x0000, 0x1957,0x0000,0x0000, /* 063C */ +0x1958,0x0000,0x0000, 0x020C,0x0000,0x0000, 0x190B,0x0000,0x0000, /* 063F */ +0x1915,0x0000,0x0000, 0x1918,0x0000,0x0000, 0x192B,0x0000,0x0000, /* 0642 */ +0x1931,0x0000,0x0000, 0x1934,0x0000,0x0000, 0x193D,0x0000,0x0000, /* 0645 */ +0x1943,0x0000,0x0000, 0x194F,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 0648 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0651 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0654 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0657 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 065A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x865F,0x0000, /* 065D */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0660 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0663 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0666 */ +0x120E,0x0000,0x0000, 0x0364,0x0000,0x0000, 0x0238,0x0000,0x0000, /* 0669 */ +0x0239,0x0000,0x0000, 0x035A,0x0000,0x0000, 0x18AE,0x0000,0x0000, /* 066C */ +0x1914,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000, /* 066F */ +0x18A5,0x0000,0x0000, 0x18A9,0x0000,0x0000, 0x18A2,0x0000,0x0000, /* 0672 */ +0x18AD,0x18A2,0x0000, 0x1943,0x18A2,0x0000, 0x1947,0x18A2,0x0000, /* 0675 */ +0x1950,0x18A2,0x0000, 0x18BD,0x0000,0x0000, 0x18BE,0x0000,0x0000, /* 0678 */ +0x18B0,0x0000,0x0000, 0x18BF,0x0000,0x0000, 0x18C0,0x0000,0x0000, /* 067B */ +0x18B1,0x0000,0x0000, 0x18C1,0x0000,0x0000, 0x18B2,0x0000,0x0000, /* 067E */ +0x18CA,0x0000,0x0000, 0x18CB,0x0000,0x0000, 0x18C3,0x0000,0x0000, /* 0681 */ +0x18C4,0x0000,0x0000, 0x18CC,0x0000,0x0000, 0x18C5,0x0000,0x0000, /* 0684 */ +0x18C7,0x0000,0x0000, 0x18D5,0x0000,0x0000, 0x18D6,0x0000,0x0000, /* 0687 */ +0x18D7,0x0000,0x0000, 0x18D8,0x0000,0x0000, 0x18D9,0x0000,0x0000, /* 068A */ +0x18DA,0x0000,0x0000, 0x18DB,0x0000,0x0000, 0x18DC,0x0000,0x0000, /* 068D */ +0x18DD,0x0000,0x0000, 0x18E3,0x0000,0x0000, 0x18E4,0x0000,0x0000, /* 0690 */ +0x18E5,0x0000,0x0000, 0x18E6,0x0000,0x0000, 0x18E7,0x0000,0x0000, /* 0693 */ +0x18E8,0x0000,0x0000, 0x18E9,0x0000,0x0000, 0x18EA,0x0000,0x0000, /* 0696 */ +0x18EB,0x0000,0x0000, 0x18F3,0x0000,0x0000, 0x18F4,0x0000,0x0000, /* 0699 */ +0x18F5,0x0000,0x0000, 0x18FE,0x0000,0x0000, 0x18FF,0x0000,0x0000, /* 069C */ +0x1903,0x0000,0x0000, 0x1906,0x0000,0x0000, 0x190C,0x0000,0x0000, /* 069F */ +0x190D,0x0000,0x0000, 0x190E,0x0000,0x0000, 0x190F,0x0000,0x0000, /* 06A2 */ +0x1910,0x0000,0x0000, 0x1911,0x0000,0x0000, 0x1916,0x0000,0x0000, /* 06A5 */ +0x1917,0x0000,0x0000, 0x1919,0x0000,0x0000, 0x191A,0x0000,0x0000, /* 06A8 */ +0x191B,0x0000,0x0000, 0x191C,0x0000,0x0000, 0x191E,0x0000,0x0000, /* 06AB */ +0x191F,0x0000,0x0000, 0x1920,0x0000,0x0000, 0x1921,0x0000,0x0000, /* 06AE */ +0x1922,0x0000,0x0000, 0x1923,0x0000,0x0000, 0x1924,0x0000,0x0000, /* 06B1 */ +0x1925,0x0000,0x0000, 0x192C,0x0000,0x0000, 0x192D,0x0000,0x0000, /* 06B4 */ +0x192E,0x0000,0x0000, 0x192F,0x0000,0x0000, 0x1939,0x0000,0x0000, /* 06B7 */ +0x1935,0x0000,0x0000, 0x1936,0x0000,0x0000, 0x1937,0x0000,0x0000, /* 06BA */ +0x1938,0x0000,0x0000, 0x193E,0x0000,0x0000, 0x18C6,0x0000,0x0000, /* 06BD */ +0x1942,0x0000,0x0000, 0x193F,0x0000,0x0000, 0x193F,0x0000,0x0000, /* 06C0 */ +0x1940,0x0000,0x0000, 0x1944,0x0000,0x0000, 0x1945,0x0000,0x0000, /* 06C3 */ +0x1946,0x0000,0x0000, 0x1947,0x0000,0x0000, 0x1948,0x0000,0x0000, /* 06C6 */ +0x1949,0x0000,0x0000, 0x194A,0x0000,0x0000, 0x194B,0x0000,0x0000, /* 06C9 */ +0x1951,0x0000,0x0000, 0x1952,0x0000,0x0000, 0x1953,0x0000,0x0000, /* 06CC */ +0x194C,0x0000,0x0000, 0x1954,0x0000,0x0000, 0x1955,0x0000,0x0000, /* 06CF */ +0x195C,0x0000,0x0000, 0x195C,0x0000,0x0000, 0x0283,0x0000,0x0000, /* 06D2 */ +0x1942,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06E1 */ +0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 06E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0450,0x0000,0x0000, /* 06E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06EA */ +0x0000,0x0000,0x0000, 0x18DE,0x0000,0x0000, 0x18EC,0x0000,0x0000, /* 06ED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 06F0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 06F3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 06F6 */ +0x120E,0x0000,0x0000, 0x18F6,0x0000,0x0000, 0x1900,0x0000,0x0000, /* 06F9 */ +0x1907,0x0000,0x0000, 0x18A2,0x0000,0x0000, 0x1931,0x0000,0x0000, /* 06FC */ +0x1941,0x0000,0x0000 }; + +static const uint16 uca520_p007[]= { /* 0700 (3 weights per char) */ +0x02B5,0x0000,0x0000, 0x0284,0x0000,0x0000, 0x0285,0x0000,0x0000, /* 0700 */ +0x024A,0x0000,0x0000, 0x024B,0x0000,0x0000, 0x024C,0x0000,0x0000, /* 0703 */ +0x024D,0x0000,0x0000, 0x024E,0x0000,0x0000, 0x024F,0x0000,0x0000, /* 0706 */ +0x0278,0x0000,0x0000, 0x039B,0x0000,0x0000, 0x039C,0x0000,0x0000, /* 0709 */ +0x039D,0x0000,0x0000, 0x039E,0x0000,0x0000, 0xFBC0,0x870E,0x0000, /* 070C */ +0x0000,0x0000,0x0000, 0x195F,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 070F */ +0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1961,0x0000,0x0000, /* 0712 */ +0x1963,0x0000,0x0000, 0x1962,0x0000,0x0000, 0x1964,0x0000,0x0000, /* 0715 */ +0x1965,0x0000,0x0000, 0x1966,0x0000,0x0000, 0x1968,0x0000,0x0000, /* 0718 */ +0x1969,0x0000,0x0000, 0x1969,0x0000,0x0000, 0x196A,0x0000,0x0000, /* 071B */ +0x196B,0x0000,0x0000, 0x196C,0x0000,0x0000, 0x196E,0x0000,0x0000, /* 071E */ +0x196F,0x0000,0x0000, 0x1970,0x0000,0x0000, 0x1971,0x0000,0x0000, /* 0721 */ +0x1971,0x0000,0x0000, 0x1972,0x0000,0x0000, 0x1973,0x0000,0x0000, /* 0724 */ +0x1973,0x0000,0x0000, 0x1975,0x0000,0x0000, 0x1976,0x0000,0x0000, /* 0727 */ +0x1977,0x0000,0x0000, 0x1978,0x0000,0x0000, 0x1979,0x0000,0x0000, /* 072A */ +0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1963,0x0000,0x0000, /* 072D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0730 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0733 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0736 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0739 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0742 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0745 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0748 */ +0xFBC0,0x874B,0x0000, 0xFBC0,0x874C,0x0000, 0x1967,0x0000,0x0000, /* 074B */ +0x196D,0x0000,0x0000, 0x1974,0x0000,0x0000, 0x18B3,0x0000,0x0000, /* 074E */ +0x18B4,0x0000,0x0000, 0x18B5,0x0000,0x0000, 0x18B6,0x0000,0x0000, /* 0751 */ +0x18B7,0x0000,0x0000, 0x18B8,0x0000,0x0000, 0x18B9,0x0000,0x0000, /* 0754 */ +0x18CD,0x0000,0x0000, 0x18CE,0x0000,0x0000, 0x18DF,0x0000,0x0000, /* 0757 */ +0x18E0,0x0000,0x0000, 0x18ED,0x0000,0x0000, 0x18F7,0x0000,0x0000, /* 075A */ +0x1908,0x0000,0x0000, 0x1909,0x0000,0x0000, 0x190A,0x0000,0x0000, /* 075D */ +0x1912,0x0000,0x0000, 0x1913,0x0000,0x0000, 0x1926,0x0000,0x0000, /* 0760 */ +0x1929,0x0000,0x0000, 0x192A,0x0000,0x0000, 0x1932,0x0000,0x0000, /* 0763 */ +0x1933,0x0000,0x0000, 0x193A,0x0000,0x0000, 0x193B,0x0000,0x0000, /* 0766 */ +0x193C,0x0000,0x0000, 0x1930,0x0000,0x0000, 0x18EE,0x0000,0x0000, /* 0769 */ +0x18EF,0x0000,0x0000, 0x18F8,0x0000,0x0000, 0x18CF,0x0000,0x0000, /* 076C */ +0x18D0,0x0000,0x0000, 0x18F9,0x0000,0x0000, 0x18F0,0x0000,0x0000, /* 076F */ +0x18D1,0x0000,0x0000, 0x18AA,0x0000,0x0000, 0x18AB,0x0000,0x0000, /* 0772 */ +0x1959,0x0000,0x0000, 0x195A,0x0000,0x0000, 0x195B,0x0000,0x0000, /* 0775 */ +0x194D,0x0000,0x0000, 0x194E,0x0000,0x0000, 0x195D,0x0000,0x0000, /* 0778 */ +0x195E,0x0000,0x0000, 0x18D2,0x0000,0x0000, 0x18FA,0x0000,0x0000, /* 077B */ +0x18FB,0x0000,0x0000, 0x191D,0x0000,0x0000, 0x197A,0x0000,0x0000, /* 077E */ +0x197D,0x0000,0x0000, 0x197E,0x0000,0x0000, 0x197F,0x0000,0x0000, /* 0781 */ +0x1981,0x0000,0x0000, 0x1982,0x0000,0x0000, 0x1983,0x0000,0x0000, /* 0784 */ +0x1984,0x0000,0x0000, 0x1987,0x0000,0x0000, 0x1989,0x0000,0x0000, /* 0787 */ +0x198A,0x0000,0x0000, 0x198B,0x0000,0x0000, 0x198D,0x0000,0x0000, /* 078A */ +0x1991,0x0000,0x0000, 0x1992,0x0000,0x0000, 0x1994,0x0000,0x0000, /* 078D */ +0x1995,0x0000,0x0000, 0x1999,0x0000,0x0000, 0x199A,0x0000,0x0000, /* 0790 */ +0x199B,0x0000,0x0000, 0x199C,0x0000,0x0000, 0x199D,0x0000,0x0000, /* 0793 */ +0x199E,0x0000,0x0000, 0x199F,0x0000,0x0000, 0x198E,0x0000,0x0000, /* 0796 */ +0x197B,0x0000,0x0000, 0x197C,0x0000,0x0000, 0x198C,0x0000,0x0000, /* 0799 */ +0x1980,0x0000,0x0000, 0x1996,0x0000,0x0000, 0x1997,0x0000,0x0000, /* 079C */ +0x1998,0x0000,0x0000, 0x198F,0x0000,0x0000, 0x1990,0x0000,0x0000, /* 079F */ +0x1985,0x0000,0x0000, 0x1986,0x0000,0x0000, 0x1993,0x0000,0x0000, /* 07A2 */ +0x1988,0x0000,0x0000, 0x19A1,0x0000,0x0000, 0x19A2,0x0000,0x0000, /* 07A5 */ +0x19A3,0x0000,0x0000, 0x19A4,0x0000,0x0000, 0x19A5,0x0000,0x0000, /* 07A8 */ +0x19A6,0x0000,0x0000, 0x19A7,0x0000,0x0000, 0x19A8,0x0000,0x0000, /* 07AB */ +0x19A9,0x0000,0x0000, 0x19AA,0x0000,0x0000, 0x19AB,0x0000,0x0000, /* 07AE */ +0x19A0,0x0000,0x0000, 0xFBC0,0x87B2,0x0000, 0xFBC0,0x87B3,0x0000, /* 07B1 */ +0xFBC0,0x87B4,0x0000, 0xFBC0,0x87B5,0x0000, 0xFBC0,0x87B6,0x0000, /* 07B4 */ +0xFBC0,0x87B7,0x0000, 0xFBC0,0x87B8,0x0000, 0xFBC0,0x87B9,0x0000, /* 07B7 */ +0xFBC0,0x87BA,0x0000, 0xFBC0,0x87BB,0x0000, 0xFBC0,0x87BC,0x0000, /* 07BA */ +0xFBC0,0x87BD,0x0000, 0xFBC0,0x87BE,0x0000, 0xFBC0,0x87BF,0x0000, /* 07BD */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 07C0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 07C3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 07C6 */ +0x120E,0x0000,0x0000, 0x19AC,0x0000,0x0000, 0x19AD,0x0000,0x0000, /* 07C9 */ +0x19AE,0x0000,0x0000, 0x19AF,0x0000,0x0000, 0x19B0,0x0000,0x0000, /* 07CC */ +0x19B1,0x0000,0x0000, 0x19B2,0x0000,0x0000, 0x19B3,0x0000,0x0000, /* 07CF */ +0x19B4,0x0000,0x0000, 0x19B5,0x0000,0x0000, 0x19B6,0x0000,0x0000, /* 07D2 */ +0x19B7,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07D5 */ +0x19BA,0x0000,0x0000, 0x19BB,0x0000,0x0000, 0x19BC,0x0000,0x0000, /* 07D8 */ +0x19BD,0x0000,0x0000, 0x19BE,0x0000,0x0000, 0x19BF,0x0000,0x0000, /* 07DB */ +0x19C0,0x0000,0x0000, 0x19C1,0x0000,0x0000, 0x19C2,0x0000,0x0000, /* 07DE */ +0x19C3,0x0000,0x0000, 0x19C4,0x0000,0x0000, 0x19C5,0x0000,0x0000, /* 07E1 */ +0x19C6,0x0000,0x0000, 0x19C7,0x0000,0x0000, 0x19C8,0x0000,0x0000, /* 07E4 */ +0x19C9,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07E7 */ +0x19BB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07F0 */ +0x0000,0x0000,0x0000, 0x19CA,0x0000,0x0000, 0x19CB,0x0000,0x0000, /* 07F3 */ +0x0452,0x0000,0x0000, 0x02B6,0x0000,0x0000, 0x023A,0x0000,0x0000, /* 07F6 */ +0x0271,0x0000,0x0000, 0x020D,0x0000,0x0000, 0xFBC0,0x87FB,0x0000, /* 07F9 */ +0xFBC0,0x87FC,0x0000, 0xFBC0,0x87FD,0x0000, 0xFBC0,0x87FE,0x0000, /* 07FC */ +0xFBC0,0x87FF,0x0000 }; + +static const uint16 uca520_p008[]= { /* 0800 (3 weights per char) */ +0x1888,0x0000,0x0000, 0x1889,0x0000,0x0000, 0x188A,0x0000,0x0000, /* 0800 */ +0x188B,0x0000,0x0000, 0x188C,0x0000,0x0000, 0x188D,0x0000,0x0000, /* 0803 */ +0x188E,0x0000,0x0000, 0x188F,0x0000,0x0000, 0x1890,0x0000,0x0000, /* 0806 */ +0x1891,0x0000,0x0000, 0x1892,0x0000,0x0000, 0x1893,0x0000,0x0000, /* 0809 */ +0x1894,0x0000,0x0000, 0x1895,0x0000,0x0000, 0x1896,0x0000,0x0000, /* 080C */ +0x1897,0x0000,0x0000, 0x1898,0x0000,0x0000, 0x1899,0x0000,0x0000, /* 080F */ +0x189A,0x0000,0x0000, 0x189B,0x0000,0x0000, 0x189C,0x0000,0x0000, /* 0812 */ +0x189D,0x0000,0x0000, 0x189E,0x0000,0x0000, 0x189F,0x0000,0x0000, /* 0815 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A0,0x0000,0x0000, /* 0818 */ +0x18A1,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0821 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0824 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0827 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 082A */ +0x0000,0x0000,0x0000, 0xFBC0,0x882E,0x0000, 0xFBC0,0x882F,0x0000, /* 082D */ +0x0250,0x0000,0x0000, 0x0251,0x0000,0x0000, 0x0252,0x0000,0x0000, /* 0830 */ +0x0253,0x0000,0x0000, 0x0254,0x0000,0x0000, 0x0255,0x0000,0x0000, /* 0833 */ +0x0256,0x0000,0x0000, 0x0257,0x0000,0x0000, 0x0258,0x0000,0x0000, /* 0836 */ +0x0259,0x0000,0x0000, 0x025A,0x0000,0x0000, 0x025B,0x0000,0x0000, /* 0839 */ +0x025C,0x0000,0x0000, 0x025D,0x0000,0x0000, 0x025E,0x0000,0x0000, /* 083C */ +0xFBC0,0x883F,0x0000, 0xFBC0,0x8840,0x0000, 0xFBC0,0x8841,0x0000, /* 083F */ +0xFBC0,0x8842,0x0000, 0xFBC0,0x8843,0x0000, 0xFBC0,0x8844,0x0000, /* 0842 */ +0xFBC0,0x8845,0x0000, 0xFBC0,0x8846,0x0000, 0xFBC0,0x8847,0x0000, /* 0845 */ +0xFBC0,0x8848,0x0000, 0xFBC0,0x8849,0x0000, 0xFBC0,0x884A,0x0000, /* 0848 */ +0xFBC0,0x884B,0x0000, 0xFBC0,0x884C,0x0000, 0xFBC0,0x884D,0x0000, /* 084B */ +0xFBC0,0x884E,0x0000, 0xFBC0,0x884F,0x0000, 0xFBC0,0x8850,0x0000, /* 084E */ +0xFBC0,0x8851,0x0000, 0xFBC0,0x8852,0x0000, 0xFBC0,0x8853,0x0000, /* 0851 */ +0xFBC0,0x8854,0x0000, 0xFBC0,0x8855,0x0000, 0xFBC0,0x8856,0x0000, /* 0854 */ +0xFBC0,0x8857,0x0000, 0xFBC0,0x8858,0x0000, 0xFBC0,0x8859,0x0000, /* 0857 */ +0xFBC0,0x885A,0x0000, 0xFBC0,0x885B,0x0000, 0xFBC0,0x885C,0x0000, /* 085A */ +0xFBC0,0x885D,0x0000, 0xFBC0,0x885E,0x0000, 0xFBC0,0x885F,0x0000, /* 085D */ +0xFBC0,0x8860,0x0000, 0xFBC0,0x8861,0x0000, 0xFBC0,0x8862,0x0000, /* 0860 */ +0xFBC0,0x8863,0x0000, 0xFBC0,0x8864,0x0000, 0xFBC0,0x8865,0x0000, /* 0863 */ +0xFBC0,0x8866,0x0000, 0xFBC0,0x8867,0x0000, 0xFBC0,0x8868,0x0000, /* 0866 */ +0xFBC0,0x8869,0x0000, 0xFBC0,0x886A,0x0000, 0xFBC0,0x886B,0x0000, /* 0869 */ +0xFBC0,0x886C,0x0000, 0xFBC0,0x886D,0x0000, 0xFBC0,0x886E,0x0000, /* 086C */ +0xFBC0,0x886F,0x0000, 0xFBC0,0x8870,0x0000, 0xFBC0,0x8871,0x0000, /* 086F */ +0xFBC0,0x8872,0x0000, 0xFBC0,0x8873,0x0000, 0xFBC0,0x8874,0x0000, /* 0872 */ +0xFBC0,0x8875,0x0000, 0xFBC0,0x8876,0x0000, 0xFBC0,0x8877,0x0000, /* 0875 */ +0xFBC0,0x8878,0x0000, 0xFBC0,0x8879,0x0000, 0xFBC0,0x887A,0x0000, /* 0878 */ +0xFBC0,0x887B,0x0000, 0xFBC0,0x887C,0x0000, 0xFBC0,0x887D,0x0000, /* 087B */ +0xFBC0,0x887E,0x0000, 0xFBC0,0x887F,0x0000, 0xFBC0,0x8880,0x0000, /* 087E */ +0xFBC0,0x8881,0x0000, 0xFBC0,0x8882,0x0000, 0xFBC0,0x8883,0x0000, /* 0881 */ +0xFBC0,0x8884,0x0000, 0xFBC0,0x8885,0x0000, 0xFBC0,0x8886,0x0000, /* 0884 */ +0xFBC0,0x8887,0x0000, 0xFBC0,0x8888,0x0000, 0xFBC0,0x8889,0x0000, /* 0887 */ +0xFBC0,0x888A,0x0000, 0xFBC0,0x888B,0x0000, 0xFBC0,0x888C,0x0000, /* 088A */ +0xFBC0,0x888D,0x0000, 0xFBC0,0x888E,0x0000, 0xFBC0,0x888F,0x0000, /* 088D */ +0xFBC0,0x8890,0x0000, 0xFBC0,0x8891,0x0000, 0xFBC0,0x8892,0x0000, /* 0890 */ +0xFBC0,0x8893,0x0000, 0xFBC0,0x8894,0x0000, 0xFBC0,0x8895,0x0000, /* 0893 */ +0xFBC0,0x8896,0x0000, 0xFBC0,0x8897,0x0000, 0xFBC0,0x8898,0x0000, /* 0896 */ +0xFBC0,0x8899,0x0000, 0xFBC0,0x889A,0x0000, 0xFBC0,0x889B,0x0000, /* 0899 */ +0xFBC0,0x889C,0x0000, 0xFBC0,0x889D,0x0000, 0xFBC0,0x889E,0x0000, /* 089C */ +0xFBC0,0x889F,0x0000, 0xFBC0,0x88A0,0x0000, 0xFBC0,0x88A1,0x0000, /* 089F */ +0xFBC0,0x88A2,0x0000, 0xFBC0,0x88A3,0x0000, 0xFBC0,0x88A4,0x0000, /* 08A2 */ +0xFBC0,0x88A5,0x0000, 0xFBC0,0x88A6,0x0000, 0xFBC0,0x88A7,0x0000, /* 08A5 */ +0xFBC0,0x88A8,0x0000, 0xFBC0,0x88A9,0x0000, 0xFBC0,0x88AA,0x0000, /* 08A8 */ +0xFBC0,0x88AB,0x0000, 0xFBC0,0x88AC,0x0000, 0xFBC0,0x88AD,0x0000, /* 08AB */ +0xFBC0,0x88AE,0x0000, 0xFBC0,0x88AF,0x0000, 0xFBC0,0x88B0,0x0000, /* 08AE */ +0xFBC0,0x88B1,0x0000, 0xFBC0,0x88B2,0x0000, 0xFBC0,0x88B3,0x0000, /* 08B1 */ +0xFBC0,0x88B4,0x0000, 0xFBC0,0x88B5,0x0000, 0xFBC0,0x88B6,0x0000, /* 08B4 */ +0xFBC0,0x88B7,0x0000, 0xFBC0,0x88B8,0x0000, 0xFBC0,0x88B9,0x0000, /* 08B7 */ +0xFBC0,0x88BA,0x0000, 0xFBC0,0x88BB,0x0000, 0xFBC0,0x88BC,0x0000, /* 08BA */ +0xFBC0,0x88BD,0x0000, 0xFBC0,0x88BE,0x0000, 0xFBC0,0x88BF,0x0000, /* 08BD */ +0xFBC0,0x88C0,0x0000, 0xFBC0,0x88C1,0x0000, 0xFBC0,0x88C2,0x0000, /* 08C0 */ +0xFBC0,0x88C3,0x0000, 0xFBC0,0x88C4,0x0000, 0xFBC0,0x88C5,0x0000, /* 08C3 */ +0xFBC0,0x88C6,0x0000, 0xFBC0,0x88C7,0x0000, 0xFBC0,0x88C8,0x0000, /* 08C6 */ +0xFBC0,0x88C9,0x0000, 0xFBC0,0x88CA,0x0000, 0xFBC0,0x88CB,0x0000, /* 08C9 */ +0xFBC0,0x88CC,0x0000, 0xFBC0,0x88CD,0x0000, 0xFBC0,0x88CE,0x0000, /* 08CC */ +0xFBC0,0x88CF,0x0000, 0xFBC0,0x88D0,0x0000, 0xFBC0,0x88D1,0x0000, /* 08CF */ +0xFBC0,0x88D2,0x0000, 0xFBC0,0x88D3,0x0000, 0xFBC0,0x88D4,0x0000, /* 08D2 */ +0xFBC0,0x88D5,0x0000, 0xFBC0,0x88D6,0x0000, 0xFBC0,0x88D7,0x0000, /* 08D5 */ +0xFBC0,0x88D8,0x0000, 0xFBC0,0x88D9,0x0000, 0xFBC0,0x88DA,0x0000, /* 08D8 */ +0xFBC0,0x88DB,0x0000, 0xFBC0,0x88DC,0x0000, 0xFBC0,0x88DD,0x0000, /* 08DB */ +0xFBC0,0x88DE,0x0000, 0xFBC0,0x88DF,0x0000, 0xFBC0,0x88E0,0x0000, /* 08DE */ +0xFBC0,0x88E1,0x0000, 0xFBC0,0x88E2,0x0000, 0xFBC0,0x88E3,0x0000, /* 08E1 */ +0xFBC0,0x88E4,0x0000, 0xFBC0,0x88E5,0x0000, 0xFBC0,0x88E6,0x0000, /* 08E4 */ +0xFBC0,0x88E7,0x0000, 0xFBC0,0x88E8,0x0000, 0xFBC0,0x88E9,0x0000, /* 08E7 */ +0xFBC0,0x88EA,0x0000, 0xFBC0,0x88EB,0x0000, 0xFBC0,0x88EC,0x0000, /* 08EA */ +0xFBC0,0x88ED,0x0000, 0xFBC0,0x88EE,0x0000, 0xFBC0,0x88EF,0x0000, /* 08ED */ +0xFBC0,0x88F0,0x0000, 0xFBC0,0x88F1,0x0000, 0xFBC0,0x88F2,0x0000, /* 08F0 */ +0xFBC0,0x88F3,0x0000, 0xFBC0,0x88F4,0x0000, 0xFBC0,0x88F5,0x0000, /* 08F3 */ +0xFBC0,0x88F6,0x0000, 0xFBC0,0x88F7,0x0000, 0xFBC0,0x88F8,0x0000, /* 08F6 */ +0xFBC0,0x88F9,0x0000, 0xFBC0,0x88FA,0x0000, 0xFBC0,0x88FB,0x0000, /* 08F9 */ +0xFBC0,0x88FC,0x0000, 0xFBC0,0x88FD,0x0000, 0xFBC0,0x88FE,0x0000, /* 08FC */ +0xFBC0,0x88FF,0x0000 }; + +static const uint16 uca520_p009[]= { /* 0900 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0900 */ +0x0000,0x0000,0x0000, 0x1BAA,0x0000,0x0000, 0x1BAB,0x0000,0x0000, /* 0903 */ +0x1BAC,0x0000,0x0000, 0x1BAD,0x0000,0x0000, 0x1BAE,0x0000,0x0000, /* 0906 */ +0x1BAF,0x0000,0x0000, 0x1BB0,0x0000,0x0000, 0x1BB1,0x0000,0x0000, /* 0909 */ +0x1BB3,0x0000,0x0000, 0x1BB5,0x0000,0x0000, 0x1BB6,0x0000,0x0000, /* 090C */ +0x1BB7,0x0000,0x0000, 0x1BB8,0x0000,0x0000, 0x1BB9,0x0000,0x0000, /* 090F */ +0x1BBA,0x0000,0x0000, 0x1BBB,0x0000,0x0000, 0x1BBC,0x0000,0x0000, /* 0912 */ +0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, 0x1BBF,0x0000,0x0000, /* 0915 */ +0x1BC1,0x0000,0x0000, 0x1BC2,0x0000,0x0000, 0x1BC3,0x0000,0x0000, /* 0918 */ +0x1BC4,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BC8,0x0000,0x0000, /* 091B */ +0x1BC9,0x0000,0x0000, 0x1BCA,0x0000,0x0000, 0x1BCB,0x0000,0x0000, /* 091E */ +0x1BCC,0x0000,0x0000, 0x1BCE,0x0000,0x0000, 0x1BCF,0x0000,0x0000, /* 0921 */ +0x1BD0,0x0000,0x0000, 0x1BD1,0x0000,0x0000, 0x1BD2,0x0000,0x0000, /* 0924 */ +0x1BD3,0x0000,0x0000, 0x1BD4,0x0000,0x0000, 0x1BD4,0x0000,0x0000, /* 0927 */ +0x1BD5,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BD7,0x0000,0x0000, /* 092A */ +0x1BD9,0x0000,0x0000, 0x1BDA,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 092D */ +0x1BDD,0x0000,0x0000, 0x1BDD,0x0000,0x0000, 0x1BDE,0x0000,0x0000, /* 0930 */ +0x1BDF,0x0000,0x0000, 0x1BDF,0x0000,0x0000, 0x1BE0,0x0000,0x0000, /* 0933 */ +0x1BE1,0x0000,0x0000, 0x1BE2,0x0000,0x0000, 0x1BE3,0x0000,0x0000, /* 0936 */ +0x1BE4,0x0000,0x0000, 0xFBC0,0x893A,0x0000, 0xFBC0,0x893B,0x0000, /* 0939 */ +0x0000,0x0000,0x0000, 0x1BE5,0x0000,0x0000, 0x1BEA,0x0000,0x0000, /* 093C */ +0x1BEB,0x0000,0x0000, 0x1BEC,0x0000,0x0000, 0x1BED,0x0000,0x0000, /* 093F */ +0x1BEE,0x0000,0x0000, 0x1BEF,0x0000,0x0000, 0x1BF0,0x0000,0x0000, /* 0942 */ +0x1BF3,0x0000,0x0000, 0x1BF5,0x0000,0x0000, 0x1BF6,0x0000,0x0000, /* 0945 */ +0x1BF8,0x0000,0x0000, 0x1BF9,0x0000,0x0000, 0x1BFA,0x0000,0x0000, /* 0948 */ +0x1BFB,0x0000,0x0000, 0x1BFC,0x0000,0x0000, 0x1BFD,0x0000,0x0000, /* 094B */ +0x1BF7,0x0000,0x0000, 0xFBC0,0x894F,0x0000, 0x1BA8,0x0000,0x0000, /* 094E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0951 */ +0x0000,0x0000,0x0000, 0x1BF4,0x0000,0x0000, 0xFBC0,0x8956,0x0000, /* 0954 */ +0xFBC0,0x8957,0x0000, 0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, /* 0957 */ +0x1BBF,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BCC,0x0000,0x0000, /* 095A */ +0x1BCE,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 095D */ +0x1BB2,0x0000,0x0000, 0x1BB4,0x0000,0x0000, 0x1BF1,0x0000,0x0000, /* 0960 */ +0x1BF2,0x0000,0x0000, 0x0294,0x0000,0x0000, 0x0295,0x0000,0x0000, /* 0963 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0966 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0969 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 096C */ +0x120E,0x0000,0x0000, 0x03A1,0x0000,0x0000, 0x11D0,0x0000,0x0000, /* 096F */ +0x1BA9,0x0000,0x0000, 0xFBC0,0x8973,0x0000, 0xFBC0,0x8974,0x0000, /* 0972 */ +0xFBC0,0x8975,0x0000, 0xFBC0,0x8976,0x0000, 0xFBC0,0x8977,0x0000, /* 0975 */ +0xFBC0,0x8978,0x0000, 0x1BC6,0x0000,0x0000, 0x1BDC,0x0000,0x0000, /* 0978 */ +0x1BC0,0x0000,0x0000, 0x1BC7,0x0000,0x0000, 0x1BE6,0x0000,0x0000, /* 097B */ +0x1BCD,0x0000,0x0000, 0x1BD8,0x0000,0x0000, 0xFBC0,0x8980,0x0000, /* 097E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0981 */ +0xFBC0,0x8984,0x0000, 0x1BFE,0x0000,0x0000, 0x1BFF,0x0000,0x0000, /* 0984 */ +0x1C00,0x0000,0x0000, 0x1C01,0x0000,0x0000, 0x1C02,0x0000,0x0000, /* 0987 */ +0x1C03,0x0000,0x0000, 0x1C04,0x0000,0x0000, 0x1C06,0x0000,0x0000, /* 098A */ +0xFBC0,0x898D,0x0000, 0xFBC0,0x898E,0x0000, 0x1C08,0x0000,0x0000, /* 098D */ +0x1C09,0x0000,0x0000, 0xFBC0,0x8991,0x0000, 0xFBC0,0x8992,0x0000, /* 0990 */ +0x1C0A,0x0000,0x0000, 0x1C0B,0x0000,0x0000, 0x1C0C,0x0000,0x0000, /* 0993 */ +0x1C0D,0x0000,0x0000, 0x1C0E,0x0000,0x0000, 0x1C0F,0x0000,0x0000, /* 0996 */ +0x1C10,0x0000,0x0000, 0x1C11,0x0000,0x0000, 0x1C12,0x0000,0x0000, /* 0999 */ +0x1C13,0x0000,0x0000, 0x1C14,0x0000,0x0000, 0x1C15,0x0000,0x0000, /* 099C */ +0x1C16,0x0000,0x0000, 0x1C17,0x0000,0x0000, 0x1C18,0x0000,0x0000, /* 099F */ +0x1C19,0x0000,0x0000, 0x1C1A,0x0000,0x0000, 0x1C1B,0x0000,0x0000, /* 09A2 */ +0x1C1C,0x0000,0x0000, 0x1C1D,0x0000,0x0000, 0x1C1E,0x0000,0x0000, /* 09A5 */ +0x1C1F,0x0000,0x0000, 0xFBC0,0x89A9,0x0000, 0x1C20,0x0000,0x0000, /* 09A8 */ +0x1C21,0x0000,0x0000, 0x1C22,0x0000,0x0000, 0x1C23,0x0000,0x0000, /* 09AB */ +0x1C24,0x0000,0x0000, 0x1C25,0x0000,0x0000, 0x1C26,0x0000,0x0000, /* 09AE */ +0xFBC0,0x89B1,0x0000, 0x1C28,0x0000,0x0000, 0xFBC0,0x89B3,0x0000, /* 09B1 */ +0xFBC0,0x89B4,0x0000, 0xFBC0,0x89B5,0x0000, 0x1C2A,0x0000,0x0000, /* 09B4 */ +0x1C2B,0x0000,0x0000, 0x1C2C,0x0000,0x0000, 0x1C2D,0x0000,0x0000, /* 09B7 */ +0xFBC0,0x89BA,0x0000, 0xFBC0,0x89BB,0x0000, 0x0000,0x0000,0x0000, /* 09BA */ +0x1C2E,0x0000,0x0000, 0x1C2F,0x0000,0x0000, 0x1C30,0x0000,0x0000, /* 09BD */ +0x1C31,0x0000,0x0000, 0x1C32,0x0000,0x0000, 0x1C33,0x0000,0x0000, /* 09C0 */ +0x1C34,0x0000,0x0000, 0x1C35,0x0000,0x0000, 0xFBC0,0x89C5,0x0000, /* 09C3 */ +0xFBC0,0x89C6,0x0000, 0x1C38,0x0000,0x0000, 0x1C39,0x0000,0x0000, /* 09C6 */ +0xFBC0,0x89C9,0x0000, 0xFBC0,0x89CA,0x0000, 0x1C3A,0x0000,0x0000, /* 09C9 */ +0x1C3B,0x0000,0x0000, 0x1C3C,0x0000,0x0000, 0x1C1B,0x1C3C,0x0000, /* 09CC */ +0xFBC0,0x89CF,0x0000, 0xFBC0,0x89D0,0x0000, 0xFBC0,0x89D1,0x0000, /* 09CF */ +0xFBC0,0x89D2,0x0000, 0xFBC0,0x89D3,0x0000, 0xFBC0,0x89D4,0x0000, /* 09D2 */ +0xFBC0,0x89D5,0x0000, 0xFBC0,0x89D6,0x0000, 0x1C3D,0x0000,0x0000, /* 09D5 */ +0xFBC0,0x89D8,0x0000, 0xFBC0,0x89D9,0x0000, 0xFBC0,0x89DA,0x0000, /* 09D8 */ +0xFBC0,0x89DB,0x0000, 0x1C18,0x0000,0x0000, 0x1C19,0x0000,0x0000, /* 09DB */ +0xFBC0,0x89DE,0x0000, 0x1C25,0x0000,0x0000, 0x1C05,0x0000,0x0000, /* 09DE */ +0x1C07,0x0000,0x0000, 0x1C36,0x0000,0x0000, 0x1C37,0x0000,0x0000, /* 09E1 */ +0xFBC0,0x89E4,0x0000, 0xFBC0,0x89E5,0x0000, 0x1205,0x0000,0x0000, /* 09E4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 09E7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 09EA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 09ED */ +0x1C27,0x0000,0x0000, 0x1C29,0x0000,0x0000, 0x11E5,0x0000,0x0000, /* 09F0 */ +0x11E6,0x0000,0x0000, 0x1110,0x0000,0x0000, 0x1111,0x0000,0x0000, /* 09F3 */ +0x1112,0x0000,0x0000, 0x1113,0x0000,0x0000, 0x1114,0x0000,0x0000, /* 09F6 */ +0x1115,0x0000,0x0000, 0x0453,0x0000,0x0000, 0x11E7,0x0000,0x0000, /* 09F9 */ +0xFBC0,0x89FC,0x0000, 0xFBC0,0x89FD,0x0000, 0xFBC0,0x89FE,0x0000, /* 09FC */ +0xFBC0,0x89FF,0x0000 }; + +static const uint16 uca520_p00A[]= { /* 0A00 (3 weights per char) */ +0xFBC0,0x8A00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8A04,0x0000, 0x1C43,0x0000,0x0000, /* 0A03 */ +0x1C44,0x0000,0x0000, 0x1C48,0x0000,0x0000, 0x1C49,0x0000,0x0000, /* 0A06 */ +0x1C40,0x0000,0x0000, 0x1C41,0x0000,0x0000, 0xFBC0,0x8A0B,0x0000, /* 0A09 */ +0xFBC0,0x8A0C,0x0000, 0xFBC0,0x8A0D,0x0000, 0xFBC0,0x8A0E,0x0000, /* 0A0C */ +0x1C4A,0x0000,0x0000, 0x1C45,0x0000,0x0000, 0xFBC0,0x8A11,0x0000, /* 0A0F */ +0xFBC0,0x8A12,0x0000, 0x1C42,0x0000,0x0000, 0x1C46,0x0000,0x0000, /* 0A12 */ +0x1C4E,0x0000,0x0000, 0x1C4F,0x0000,0x0000, 0x1C50,0x0000,0x0000, /* 0A15 */ +0x1C51,0x0000,0x0000, 0x1C52,0x0000,0x0000, 0x1C53,0x0000,0x0000, /* 0A18 */ +0x1C54,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C56,0x0000,0x0000, /* 0A1B */ +0x1C57,0x0000,0x0000, 0x1C58,0x0000,0x0000, 0x1C59,0x0000,0x0000, /* 0A1E */ +0x1C5A,0x0000,0x0000, 0x1C5B,0x0000,0x0000, 0x1C5C,0x0000,0x0000, /* 0A21 */ +0x1C5D,0x0000,0x0000, 0x1C5E,0x0000,0x0000, 0x1C5F,0x0000,0x0000, /* 0A24 */ +0x1C60,0x0000,0x0000, 0x1C61,0x0000,0x0000, 0xFBC0,0x8A29,0x0000, /* 0A27 */ +0x1C62,0x0000,0x0000, 0x1C63,0x0000,0x0000, 0x1C64,0x0000,0x0000, /* 0A2A */ +0x1C65,0x0000,0x0000, 0x1C66,0x0000,0x0000, 0x1C67,0x0000,0x0000, /* 0A2D */ +0x1C69,0x0000,0x0000, 0xFBC0,0x8A31,0x0000, 0x1C6A,0x0000,0x0000, /* 0A30 */ +0x1C6A,0x0000,0x0000, 0xFBC0,0x8A34,0x0000, 0x1C6B,0x0000,0x0000, /* 0A33 */ +0x1C4B,0x0000,0x0000, 0xFBC0,0x8A37,0x0000, 0x1C4B,0x0000,0x0000, /* 0A36 */ +0x1C4C,0x0000,0x0000, 0xFBC0,0x8A3A,0x0000, 0xFBC0,0x8A3B,0x0000, /* 0A39 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8A3D,0x0000, 0x1C6D,0x0000,0x0000, /* 0A3C */ +0x1C6E,0x0000,0x0000, 0x1C6F,0x0000,0x0000, 0x1C70,0x0000,0x0000, /* 0A3F */ +0x1C71,0x0000,0x0000, 0xFBC0,0x8A43,0x0000, 0xFBC0,0x8A44,0x0000, /* 0A42 */ +0xFBC0,0x8A45,0x0000, 0xFBC0,0x8A46,0x0000, 0x1C72,0x0000,0x0000, /* 0A45 */ +0x1C73,0x0000,0x0000, 0xFBC0,0x8A49,0x0000, 0xFBC0,0x8A4A,0x0000, /* 0A48 */ +0x1C74,0x0000,0x0000, 0x1C75,0x0000,0x0000, 0x1C76,0x0000,0x0000, /* 0A4B */ +0xFBC0,0x8A4E,0x0000, 0xFBC0,0x8A4F,0x0000, 0xFBC0,0x8A50,0x0000, /* 0A4E */ +0x1C4D,0x0000,0x0000, 0xFBC0,0x8A52,0x0000, 0xFBC0,0x8A53,0x0000, /* 0A51 */ +0xFBC0,0x8A54,0x0000, 0xFBC0,0x8A55,0x0000, 0xFBC0,0x8A56,0x0000, /* 0A54 */ +0xFBC0,0x8A57,0x0000, 0xFBC0,0x8A58,0x0000, 0x1C4F,0x0000,0x0000, /* 0A57 */ +0x1C50,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C6C,0x0000,0x0000, /* 0A5A */ +0xFBC0,0x8A5D,0x0000, 0x1C63,0x0000,0x0000, 0xFBC0,0x8A5F,0x0000, /* 0A5D */ +0xFBC0,0x8A60,0x0000, 0xFBC0,0x8A61,0x0000, 0xFBC0,0x8A62,0x0000, /* 0A60 */ +0xFBC0,0x8A63,0x0000, 0xFBC0,0x8A64,0x0000, 0xFBC0,0x8A65,0x0000, /* 0A63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0A66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0A69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0A6C */ +0x120E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A6F */ +0x1C47,0x0000,0x0000, 0x1C3F,0x0000,0x0000, 0x1C3E,0x0000,0x0000, /* 0A72 */ +0x1C68,0x0000,0x0000, 0xFBC0,0x8A76,0x0000, 0xFBC0,0x8A77,0x0000, /* 0A75 */ +0xFBC0,0x8A78,0x0000, 0xFBC0,0x8A79,0x0000, 0xFBC0,0x8A7A,0x0000, /* 0A78 */ +0xFBC0,0x8A7B,0x0000, 0xFBC0,0x8A7C,0x0000, 0xFBC0,0x8A7D,0x0000, /* 0A7B */ +0xFBC0,0x8A7E,0x0000, 0xFBC0,0x8A7F,0x0000, 0xFBC0,0x8A80,0x0000, /* 0A7E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A81 */ +0xFBC0,0x8A84,0x0000, 0x1C78,0x0000,0x0000, 0x1C79,0x0000,0x0000, /* 0A84 */ +0x1C7A,0x0000,0x0000, 0x1C7B,0x0000,0x0000, 0x1C7C,0x0000,0x0000, /* 0A87 */ +0x1C7D,0x0000,0x0000, 0x1C7E,0x0000,0x0000, 0x1C80,0x0000,0x0000, /* 0A8A */ +0x1C82,0x0000,0x0000, 0xFBC0,0x8A8E,0x0000, 0x1C83,0x0000,0x0000, /* 0A8D */ +0x1C84,0x0000,0x0000, 0x1C85,0x0000,0x0000, 0xFBC0,0x8A92,0x0000, /* 0A90 */ +0x1C86,0x0000,0x0000, 0x1C87,0x0000,0x0000, 0x1C88,0x0000,0x0000, /* 0A93 */ +0x1C89,0x0000,0x0000, 0x1C8A,0x0000,0x0000, 0x1C8B,0x0000,0x0000, /* 0A96 */ +0x1C8C,0x0000,0x0000, 0x1C8D,0x0000,0x0000, 0x1C8E,0x0000,0x0000, /* 0A99 */ +0x1C8F,0x0000,0x0000, 0x1C90,0x0000,0x0000, 0x1C91,0x0000,0x0000, /* 0A9C */ +0x1C92,0x0000,0x0000, 0x1C93,0x0000,0x0000, 0x1C94,0x0000,0x0000, /* 0A9F */ +0x1C95,0x0000,0x0000, 0x1C96,0x0000,0x0000, 0x1C97,0x0000,0x0000, /* 0AA2 */ +0x1C98,0x0000,0x0000, 0x1C99,0x0000,0x0000, 0x1C9A,0x0000,0x0000, /* 0AA5 */ +0x1C9B,0x0000,0x0000, 0xFBC0,0x8AA9,0x0000, 0x1C9C,0x0000,0x0000, /* 0AA8 */ +0x1C9D,0x0000,0x0000, 0x1C9E,0x0000,0x0000, 0x1C9F,0x0000,0x0000, /* 0AAB */ +0x1CA0,0x0000,0x0000, 0x1CA1,0x0000,0x0000, 0x1CA2,0x0000,0x0000, /* 0AAE */ +0xFBC0,0x8AB1,0x0000, 0x1CA3,0x0000,0x0000, 0x1CA9,0x0000,0x0000, /* 0AB1 */ +0xFBC0,0x8AB4,0x0000, 0x1CA4,0x0000,0x0000, 0x1CA5,0x0000,0x0000, /* 0AB4 */ +0x1CA6,0x0000,0x0000, 0x1CA7,0x0000,0x0000, 0x1CA8,0x0000,0x0000, /* 0AB7 */ +0xFBC0,0x8ABA,0x0000, 0xFBC0,0x8ABB,0x0000, 0x0000,0x0000,0x0000, /* 0ABA */ +0x1CAA,0x0000,0x0000, 0x1CAB,0x0000,0x0000, 0x1CAC,0x0000,0x0000, /* 0ABD */ +0x1CAD,0x0000,0x0000, 0x1CAE,0x0000,0x0000, 0x1CAF,0x0000,0x0000, /* 0AC0 */ +0x1CB0,0x0000,0x0000, 0x1CB1,0x0000,0x0000, 0x1CB4,0x0000,0x0000, /* 0AC3 */ +0xFBC0,0x8AC6,0x0000, 0x1CB5,0x0000,0x0000, 0x1CB6,0x0000,0x0000, /* 0AC6 */ +0x1CB7,0x0000,0x0000, 0xFBC0,0x8ACA,0x0000, 0x1CB8,0x0000,0x0000, /* 0AC9 */ +0x1CB9,0x0000,0x0000, 0x1CBA,0x0000,0x0000, 0xFBC0,0x8ACE,0x0000, /* 0ACC */ +0xFBC0,0x8ACF,0x0000, 0x1C77,0x0000,0x0000, 0xFBC0,0x8AD1,0x0000, /* 0ACF */ +0xFBC0,0x8AD2,0x0000, 0xFBC0,0x8AD3,0x0000, 0xFBC0,0x8AD4,0x0000, /* 0AD2 */ +0xFBC0,0x8AD5,0x0000, 0xFBC0,0x8AD6,0x0000, 0xFBC0,0x8AD7,0x0000, /* 0AD5 */ +0xFBC0,0x8AD8,0x0000, 0xFBC0,0x8AD9,0x0000, 0xFBC0,0x8ADA,0x0000, /* 0AD8 */ +0xFBC0,0x8ADB,0x0000, 0xFBC0,0x8ADC,0x0000, 0xFBC0,0x8ADD,0x0000, /* 0ADB */ +0xFBC0,0x8ADE,0x0000, 0xFBC0,0x8ADF,0x0000, 0x1C7F,0x0000,0x0000, /* 0ADE */ +0x1C81,0x0000,0x0000, 0x1CB2,0x0000,0x0000, 0x1CB3,0x0000,0x0000, /* 0AE1 */ +0xFBC0,0x8AE4,0x0000, 0xFBC0,0x8AE5,0x0000, 0x1205,0x0000,0x0000, /* 0AE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0AE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0AEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0AED */ +0xFBC0,0x8AF0,0x0000, 0x11E8,0x0000,0x0000, 0xFBC0,0x8AF2,0x0000, /* 0AF0 */ +0xFBC0,0x8AF3,0x0000, 0xFBC0,0x8AF4,0x0000, 0xFBC0,0x8AF5,0x0000, /* 0AF3 */ +0xFBC0,0x8AF6,0x0000, 0xFBC0,0x8AF7,0x0000, 0xFBC0,0x8AF8,0x0000, /* 0AF6 */ +0xFBC0,0x8AF9,0x0000, 0xFBC0,0x8AFA,0x0000, 0xFBC0,0x8AFB,0x0000, /* 0AF9 */ +0xFBC0,0x8AFC,0x0000, 0xFBC0,0x8AFD,0x0000, 0xFBC0,0x8AFE,0x0000, /* 0AFC */ +0xFBC0,0x8AFF,0x0000 }; + +static const uint16 uca520_p00B[]= { /* 0B00 (3 weights per char) */ +0xFBC0,0x8B00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0B00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8B04,0x0000, 0x1CBB,0x0000,0x0000, /* 0B03 */ +0x1CBC,0x0000,0x0000, 0x1CBD,0x0000,0x0000, 0x1CBE,0x0000,0x0000, /* 0B06 */ +0x1CBF,0x0000,0x0000, 0x1CC0,0x0000,0x0000, 0x1CC1,0x0000,0x0000, /* 0B09 */ +0x1CC3,0x0000,0x0000, 0xFBC0,0x8B0D,0x0000, 0xFBC0,0x8B0E,0x0000, /* 0B0C */ +0x1CC5,0x0000,0x0000, 0x1CC6,0x0000,0x0000, 0xFBC0,0x8B11,0x0000, /* 0B0F */ +0xFBC0,0x8B12,0x0000, 0x1CC7,0x0000,0x0000, 0x1CC8,0x0000,0x0000, /* 0B12 */ +0x1CC9,0x0000,0x0000, 0x1CCA,0x0000,0x0000, 0x1CCB,0x0000,0x0000, /* 0B15 */ +0x1CCC,0x0000,0x0000, 0x1CCD,0x0000,0x0000, 0x1CCE,0x0000,0x0000, /* 0B18 */ +0x1CCF,0x0000,0x0000, 0x1CD0,0x0000,0x0000, 0x1CD1,0x0000,0x0000, /* 0B1B */ +0x1CD2,0x0000,0x0000, 0x1CD3,0x0000,0x0000, 0x1CD4,0x0000,0x0000, /* 0B1E */ +0x1CD5,0x0000,0x0000, 0x1CD6,0x0000,0x0000, 0x1CD7,0x0000,0x0000, /* 0B21 */ +0x1CD8,0x0000,0x0000, 0x1CD9,0x0000,0x0000, 0x1CDA,0x0000,0x0000, /* 0B24 */ +0x1CDB,0x0000,0x0000, 0x1CDC,0x0000,0x0000, 0xFBC0,0x8B29,0x0000, /* 0B27 */ +0x1CDD,0x0000,0x0000, 0x1CDE,0x0000,0x0000, 0x1CDF,0x0000,0x0000, /* 0B2A */ +0x1CE0,0x0000,0x0000, 0x1CE1,0x0000,0x0000, 0x1CE2,0x0000,0x0000, /* 0B2D */ +0x1CE4,0x0000,0x0000, 0xFBC0,0x8B31,0x0000, 0x1CE5,0x0000,0x0000, /* 0B30 */ +0x1CE6,0x0000,0x0000, 0xFBC0,0x8B34,0x0000, 0x1CE7,0x0000,0x0000, /* 0B33 */ +0x1CE9,0x0000,0x0000, 0x1CEA,0x0000,0x0000, 0x1CEB,0x0000,0x0000, /* 0B36 */ +0x1CEC,0x0000,0x0000, 0xFBC0,0x8B3A,0x0000, 0xFBC0,0x8B3B,0x0000, /* 0B39 */ +0x0000,0x0000,0x0000, 0x1CED,0x0000,0x0000, 0x1CEE,0x0000,0x0000, /* 0B3C */ +0x1CEF,0x0000,0x0000, 0x1CF0,0x0000,0x0000, 0x1CF1,0x0000,0x0000, /* 0B3F */ +0x1CF2,0x0000,0x0000, 0x1CF3,0x0000,0x0000, 0x1CF4,0x0000,0x0000, /* 0B42 */ +0xFBC0,0x8B45,0x0000, 0xFBC0,0x8B46,0x0000, 0x1CF7,0x0000,0x0000, /* 0B45 */ +0x1CF8,0x0000,0x0000, 0xFBC0,0x8B49,0x0000, 0xFBC0,0x8B4A,0x0000, /* 0B48 */ +0x1CF9,0x0000,0x0000, 0x1CFA,0x0000,0x0000, 0x1CFB,0x0000,0x0000, /* 0B4B */ +0xFBC0,0x8B4E,0x0000, 0xFBC0,0x8B4F,0x0000, 0xFBC0,0x8B50,0x0000, /* 0B4E */ +0xFBC0,0x8B51,0x0000, 0xFBC0,0x8B52,0x0000, 0xFBC0,0x8B53,0x0000, /* 0B51 */ +0xFBC0,0x8B54,0x0000, 0xFBC0,0x8B55,0x0000, 0x1CFC,0x0000,0x0000, /* 0B54 */ +0x1CFD,0x0000,0x0000, 0xFBC0,0x8B58,0x0000, 0xFBC0,0x8B59,0x0000, /* 0B57 */ +0xFBC0,0x8B5A,0x0000, 0xFBC0,0x8B5B,0x0000, 0x1CD5,0x0000,0x0000, /* 0B5A */ +0x1CD6,0x0000,0x0000, 0xFBC0,0x8B5E,0x0000, 0x1CE3,0x0000,0x0000, /* 0B5D */ +0x1CC2,0x0000,0x0000, 0x1CC4,0x0000,0x0000, 0x1CF5,0x0000,0x0000, /* 0B60 */ +0x1CF6,0x0000,0x0000, 0xFBC0,0x8B64,0x0000, 0xFBC0,0x8B65,0x0000, /* 0B63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0B66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0B69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0B6C */ +0x120E,0x0000,0x0000, 0x0454,0x0000,0x0000, 0x1CE8,0x0000,0x0000, /* 0B6F */ +0xFBC0,0x8B72,0x0000, 0xFBC0,0x8B73,0x0000, 0xFBC0,0x8B74,0x0000, /* 0B72 */ +0xFBC0,0x8B75,0x0000, 0xFBC0,0x8B76,0x0000, 0xFBC0,0x8B77,0x0000, /* 0B75 */ +0xFBC0,0x8B78,0x0000, 0xFBC0,0x8B79,0x0000, 0xFBC0,0x8B7A,0x0000, /* 0B78 */ +0xFBC0,0x8B7B,0x0000, 0xFBC0,0x8B7C,0x0000, 0xFBC0,0x8B7D,0x0000, /* 0B7B */ +0xFBC0,0x8B7E,0x0000, 0xFBC0,0x8B7F,0x0000, 0xFBC0,0x8B80,0x0000, /* 0B7E */ +0xFBC0,0x8B81,0x0000, 0x0000,0x0000,0x0000, 0x1D0B,0x0000,0x0000, /* 0B81 */ +0xFBC0,0x8B84,0x0000, 0x1CFF,0x0000,0x0000, 0x1D00,0x0000,0x0000, /* 0B84 */ +0x1D01,0x0000,0x0000, 0x1D02,0x0000,0x0000, 0x1D03,0x0000,0x0000, /* 0B87 */ +0x1D04,0x0000,0x0000, 0xFBC0,0x8B8B,0x0000, 0xFBC0,0x8B8C,0x0000, /* 0B8A */ +0xFBC0,0x8B8D,0x0000, 0x1D05,0x0000,0x0000, 0x1D06,0x0000,0x0000, /* 0B8D */ +0x1D07,0x0000,0x0000, 0xFBC0,0x8B91,0x0000, 0x1D08,0x0000,0x0000, /* 0B90 */ +0x1D09,0x0000,0x0000, 0x1D0A,0x0000,0x0000, 0x1D0C,0x0000,0x0000, /* 0B93 */ +0xFBC0,0x8B96,0x0000, 0xFBC0,0x8B97,0x0000, 0xFBC0,0x8B98,0x0000, /* 0B96 */ +0x1D0D,0x0000,0x0000, 0x1D0E,0x0000,0x0000, 0xFBC0,0x8B9B,0x0000, /* 0B99 */ +0x1D1E,0x0000,0x0000, 0xFBC0,0x8B9D,0x0000, 0x1D0F,0x0000,0x0000, /* 0B9C */ +0x1D10,0x0000,0x0000, 0xFBC0,0x8BA0,0x0000, 0xFBC0,0x8BA1,0x0000, /* 0B9F */ +0xFBC0,0x8BA2,0x0000, 0x1D11,0x0000,0x0000, 0x1D12,0x0000,0x0000, /* 0BA2 */ +0xFBC0,0x8BA5,0x0000, 0xFBC0,0x8BA6,0x0000, 0xFBC0,0x8BA7,0x0000, /* 0BA5 */ +0x1D13,0x0000,0x0000, 0x1D1D,0x0000,0x0000, 0x1D14,0x0000,0x0000, /* 0BA8 */ +0xFBC0,0x8BAB,0x0000, 0xFBC0,0x8BAC,0x0000, 0xFBC0,0x8BAD,0x0000, /* 0BAB */ +0x1D15,0x0000,0x0000, 0x1D16,0x0000,0x0000, 0x1D17,0x0000,0x0000, /* 0BAE */ +0x1D1C,0x0000,0x0000, 0x1D18,0x0000,0x0000, 0x1D1B,0x0000,0x0000, /* 0BB1 */ +0x1D1A,0x0000,0x0000, 0x1D19,0x0000,0x0000, 0x1D1F,0x0000,0x0000, /* 0BB4 */ +0x1D20,0x0000,0x0000, 0x1D21,0x0000,0x0000, 0x1D22,0x0000,0x0000, /* 0BB7 */ +0xFBC0,0x8BBA,0x0000, 0xFBC0,0x8BBB,0x0000, 0xFBC0,0x8BBC,0x0000, /* 0BBA */ +0xFBC0,0x8BBD,0x0000, 0x1D23,0x0000,0x0000, 0x1D24,0x0000,0x0000, /* 0BBD */ +0x1D25,0x0000,0x0000, 0x1D26,0x0000,0x0000, 0x1D27,0x0000,0x0000, /* 0BC0 */ +0xFBC0,0x8BC3,0x0000, 0xFBC0,0x8BC4,0x0000, 0xFBC0,0x8BC5,0x0000, /* 0BC3 */ +0x1D28,0x0000,0x0000, 0x1D29,0x0000,0x0000, 0x1D2A,0x0000,0x0000, /* 0BC6 */ +0xFBC0,0x8BC9,0x0000, 0x1D2B,0x0000,0x0000, 0x1D2C,0x0000,0x0000, /* 0BC9 */ +0x1D2D,0x0000,0x0000, 0x1D2E,0x0000,0x0000, 0xFBC0,0x8BCE,0x0000, /* 0BCC */ +0xFBC0,0x8BCF,0x0000, 0x1CFE,0x0000,0x0000, 0xFBC0,0x8BD1,0x0000, /* 0BCF */ +0xFBC0,0x8BD2,0x0000, 0xFBC0,0x8BD3,0x0000, 0xFBC0,0x8BD4,0x0000, /* 0BD2 */ +0xFBC0,0x8BD5,0x0000, 0xFBC0,0x8BD6,0x0000, 0x1D2F,0x0000,0x0000, /* 0BD5 */ +0xFBC0,0x8BD8,0x0000, 0xFBC0,0x8BD9,0x0000, 0xFBC0,0x8BDA,0x0000, /* 0BD8 */ +0xFBC0,0x8BDB,0x0000, 0xFBC0,0x8BDC,0x0000, 0xFBC0,0x8BDD,0x0000, /* 0BDB */ +0xFBC0,0x8BDE,0x0000, 0xFBC0,0x8BDF,0x0000, 0xFBC0,0x8BE0,0x0000, /* 0BDE */ +0xFBC0,0x8BE1,0x0000, 0xFBC0,0x8BE2,0x0000, 0xFBC0,0x8BE3,0x0000, /* 0BE1 */ +0xFBC0,0x8BE4,0x0000, 0xFBC0,0x8BE5,0x0000, 0x1205,0x0000,0x0000, /* 0BE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0BE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0BEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0BED */ +0x111C,0x0000,0x0000, 0x111D,0x0000,0x0000, 0x111E,0x0000,0x0000, /* 0BF0 */ +0x0455,0x0000,0x0000, 0x0456,0x0000,0x0000, 0x0457,0x0000,0x0000, /* 0BF3 */ +0x0458,0x0000,0x0000, 0x0459,0x0000,0x0000, 0x045A,0x0000,0x0000, /* 0BF6 */ +0x11EA,0x0000,0x0000, 0x045B,0x0000,0x0000, 0xFBC0,0x8BFB,0x0000, /* 0BF9 */ +0xFBC0,0x8BFC,0x0000, 0xFBC0,0x8BFD,0x0000, 0xFBC0,0x8BFE,0x0000, /* 0BFC */ +0xFBC0,0x8BFF,0x0000 }; + +static const uint16 uca520_p00C[]= { /* 0C00 (3 weights per char) */ +0xFBC0,0x8C00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8C04,0x0000, 0x1D30,0x0000,0x0000, /* 0C03 */ +0x1D31,0x0000,0x0000, 0x1D32,0x0000,0x0000, 0x1D33,0x0000,0x0000, /* 0C06 */ +0x1D34,0x0000,0x0000, 0x1D35,0x0000,0x0000, 0x1D36,0x0000,0x0000, /* 0C09 */ +0x1D38,0x0000,0x0000, 0xFBC0,0x8C0D,0x0000, 0x1D3A,0x0000,0x0000, /* 0C0C */ +0x1D3B,0x0000,0x0000, 0x1D3C,0x0000,0x0000, 0xFBC0,0x8C11,0x0000, /* 0C0F */ +0x1D3D,0x0000,0x0000, 0x1D3E,0x0000,0x0000, 0x1D3F,0x0000,0x0000, /* 0C12 */ +0x1D40,0x0000,0x0000, 0x1D41,0x0000,0x0000, 0x1D42,0x0000,0x0000, /* 0C15 */ +0x1D43,0x0000,0x0000, 0x1D44,0x0000,0x0000, 0x1D45,0x0000,0x0000, /* 0C18 */ +0x1D47,0x0000,0x0000, 0x1D48,0x0000,0x0000, 0x1D4A,0x0000,0x0000, /* 0C1B */ +0x1D4B,0x0000,0x0000, 0x1D4C,0x0000,0x0000, 0x1D4D,0x0000,0x0000, /* 0C1E */ +0x1D4E,0x0000,0x0000, 0x1D4F,0x0000,0x0000, 0x1D50,0x0000,0x0000, /* 0C21 */ +0x1D51,0x0000,0x0000, 0x1D52,0x0000,0x0000, 0x1D53,0x0000,0x0000, /* 0C24 */ +0x1D54,0x0000,0x0000, 0x1D55,0x0000,0x0000, 0xFBC0,0x8C29,0x0000, /* 0C27 */ +0x1D56,0x0000,0x0000, 0x1D57,0x0000,0x0000, 0x1D58,0x0000,0x0000, /* 0C2A */ +0x1D59,0x0000,0x0000, 0x1D5A,0x0000,0x0000, 0x1D5B,0x0000,0x0000, /* 0C2D */ +0x1D5C,0x0000,0x0000, 0x1D5D,0x0000,0x0000, 0x1D5E,0x0000,0x0000, /* 0C30 */ +0x1D64,0x0000,0x0000, 0xFBC0,0x8C34,0x0000, 0x1D5F,0x0000,0x0000, /* 0C33 */ +0x1D60,0x0000,0x0000, 0x1D61,0x0000,0x0000, 0x1D62,0x0000,0x0000, /* 0C36 */ +0x1D63,0x0000,0x0000, 0xFBC0,0x8C3A,0x0000, 0xFBC0,0x8C3B,0x0000, /* 0C39 */ +0xFBC0,0x8C3C,0x0000, 0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, /* 0C3C */ +0x1D67,0x0000,0x0000, 0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, /* 0C3F */ +0x1D6A,0x0000,0x0000, 0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, /* 0C42 */ +0xFBC0,0x8C45,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000, /* 0C45 */ +0x1D71,0x0000,0x0000, 0xFBC0,0x8C49,0x0000, 0x1D72,0x0000,0x0000, /* 0C48 */ +0x1D73,0x0000,0x0000, 0x1D74,0x0000,0x0000, 0x1D75,0x0000,0x0000, /* 0C4B */ +0xFBC0,0x8C4E,0x0000, 0xFBC0,0x8C4F,0x0000, 0xFBC0,0x8C50,0x0000, /* 0C4E */ +0xFBC0,0x8C51,0x0000, 0xFBC0,0x8C52,0x0000, 0xFBC0,0x8C53,0x0000, /* 0C51 */ +0xFBC0,0x8C54,0x0000, 0x1D76,0x0000,0x0000, 0x1D77,0x0000,0x0000, /* 0C54 */ +0xFBC0,0x8C57,0x0000, 0x1D46,0x0000,0x0000, 0x1D49,0x0000,0x0000, /* 0C57 */ +0xFBC0,0x8C5A,0x0000, 0xFBC0,0x8C5B,0x0000, 0xFBC0,0x8C5C,0x0000, /* 0C5A */ +0xFBC0,0x8C5D,0x0000, 0xFBC0,0x8C5E,0x0000, 0xFBC0,0x8C5F,0x0000, /* 0C5D */ +0x1D37,0x0000,0x0000, 0x1D39,0x0000,0x0000, 0x1D6D,0x0000,0x0000, /* 0C60 */ +0x1D6E,0x0000,0x0000, 0xFBC0,0x8C64,0x0000, 0xFBC0,0x8C65,0x0000, /* 0C63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0C69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0C6C */ +0x120E,0x0000,0x0000, 0xFBC0,0x8C70,0x0000, 0xFBC0,0x8C71,0x0000, /* 0C6F */ +0xFBC0,0x8C72,0x0000, 0xFBC0,0x8C73,0x0000, 0xFBC0,0x8C74,0x0000, /* 0C72 */ +0xFBC0,0x8C75,0x0000, 0xFBC0,0x8C76,0x0000, 0xFBC0,0x8C77,0x0000, /* 0C75 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C78 */ +0x1208,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C7B */ +0x1208,0x0000,0x0000, 0x045C,0x0000,0x0000, 0xFBC0,0x8C80,0x0000, /* 0C7E */ +0xFBC0,0x8C81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C81 */ +0xFBC0,0x8C84,0x0000, 0x1D78,0x0000,0x0000, 0x1D79,0x0000,0x0000, /* 0C84 */ +0x1D7A,0x0000,0x0000, 0x1D7B,0x0000,0x0000, 0x1D7C,0x0000,0x0000, /* 0C87 */ +0x1D7D,0x0000,0x0000, 0x1D7E,0x0000,0x0000, 0x1D80,0x0000,0x0000, /* 0C8A */ +0xFBC0,0x8C8D,0x0000, 0x1D82,0x0000,0x0000, 0x1D83,0x0000,0x0000, /* 0C8D */ +0x1D84,0x0000,0x0000, 0xFBC0,0x8C91,0x0000, 0x1D85,0x0000,0x0000, /* 0C90 */ +0x1D86,0x0000,0x0000, 0x1D87,0x0000,0x0000, 0x1D88,0x0000,0x0000, /* 0C93 */ +0x1D89,0x0000,0x0000, 0x1D8A,0x0000,0x0000, 0x1D8B,0x0000,0x0000, /* 0C96 */ +0x1D8C,0x0000,0x0000, 0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, /* 0C99 */ +0x1D8F,0x0000,0x0000, 0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, /* 0C9C */ +0x1D92,0x0000,0x0000, 0x1D93,0x0000,0x0000, 0x1D94,0x0000,0x0000, /* 0C9F */ +0x1D95,0x0000,0x0000, 0x1D96,0x0000,0x0000, 0x1D97,0x0000,0x0000, /* 0CA2 */ +0x1D98,0x0000,0x0000, 0x1D99,0x0000,0x0000, 0x1D9A,0x0000,0x0000, /* 0CA5 */ +0x1D9B,0x0000,0x0000, 0xFBC0,0x8CA9,0x0000, 0x1D9C,0x0000,0x0000, /* 0CA8 */ +0x1D9D,0x0000,0x0000, 0x1D9E,0x0000,0x0000, 0x1D9F,0x0000,0x0000, /* 0CAB */ +0x1DA0,0x0000,0x0000, 0x1DA1,0x0000,0x0000, 0x1DA2,0x0000,0x0000, /* 0CAE */ +0x1DA3,0x0000,0x0000, 0x1DA4,0x0000,0x0000, 0x1DAA,0x0000,0x0000, /* 0CB1 */ +0xFBC0,0x8CB4,0x0000, 0x1DA5,0x0000,0x0000, 0x1DA6,0x0000,0x0000, /* 0CB4 */ +0x1DA7,0x0000,0x0000, 0x1DA8,0x0000,0x0000, 0x1DA9,0x0000,0x0000, /* 0CB7 */ +0xFBC0,0x8CBA,0x0000, 0xFBC0,0x8CBB,0x0000, 0x0000,0x0000,0x0000, /* 0CBA */ +0x1DAC,0x0000,0x0000, 0x1DAD,0x0000,0x0000, 0x1DAE,0x0000,0x0000, /* 0CBD */ +0x1DAF,0x0000,0x0000, 0x1DB0,0x0000,0x0000, 0x1DB1,0x0000,0x0000, /* 0CC0 */ +0x1DB2,0x0000,0x0000, 0x1DB3,0x0000,0x0000, 0xFBC0,0x8CC5,0x0000, /* 0CC3 */ +0x1DB6,0x0000,0x0000, 0x1DB7,0x0000,0x0000, 0x1DB8,0x0000,0x0000, /* 0CC6 */ +0xFBC0,0x8CC9,0x0000, 0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, /* 0CC9 */ +0x1DBB,0x0000,0x0000, 0x1DBC,0x0000,0x0000, 0xFBC0,0x8CCE,0x0000, /* 0CCC */ +0xFBC0,0x8CCF,0x0000, 0xFBC0,0x8CD0,0x0000, 0xFBC0,0x8CD1,0x0000, /* 0CCF */ +0xFBC0,0x8CD2,0x0000, 0xFBC0,0x8CD3,0x0000, 0xFBC0,0x8CD4,0x0000, /* 0CD2 */ +0x1DBD,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0xFBC0,0x8CD7,0x0000, /* 0CD5 */ +0xFBC0,0x8CD8,0x0000, 0xFBC0,0x8CD9,0x0000, 0xFBC0,0x8CDA,0x0000, /* 0CD8 */ +0xFBC0,0x8CDB,0x0000, 0xFBC0,0x8CDC,0x0000, 0xFBC0,0x8CDD,0x0000, /* 0CDB */ +0x1DAB,0x0000,0x0000, 0xFBC0,0x8CDF,0x0000, 0x1D7F,0x0000,0x0000, /* 0CDE */ +0x1D81,0x0000,0x0000, 0x1DB4,0x0000,0x0000, 0x1DB5,0x0000,0x0000, /* 0CE1 */ +0xFBC0,0x8CE4,0x0000, 0xFBC0,0x8CE5,0x0000, 0x1205,0x0000,0x0000, /* 0CE4 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0CE7 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0CEA */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0CED */ +0xFBC0,0x8CF0,0x0000, 0x045D,0x0000,0x0000, 0x045E,0x0000,0x0000, /* 0CF0 */ +0xFBC0,0x8CF3,0x0000, 0xFBC0,0x8CF4,0x0000, 0xFBC0,0x8CF5,0x0000, /* 0CF3 */ +0xFBC0,0x8CF6,0x0000, 0xFBC0,0x8CF7,0x0000, 0xFBC0,0x8CF8,0x0000, /* 0CF6 */ +0xFBC0,0x8CF9,0x0000, 0xFBC0,0x8CFA,0x0000, 0xFBC0,0x8CFB,0x0000, /* 0CF9 */ +0xFBC0,0x8CFC,0x0000, 0xFBC0,0x8CFD,0x0000, 0xFBC0,0x8CFE,0x0000, /* 0CFC */ +0xFBC0,0x8CFF,0x0000 }; + +static const uint16 uca520_p00D[]= { /* 0D00 (3 weights per char) */ +0xFBC0,0x8D00,0x0000, 0xFBC0,0x8D01,0x0000, 0x0000,0x0000,0x0000, /* 0D00 */ +0x0000,0x0000,0x0000, 0xFBC0,0x8D04,0x0000, 0x1DBF,0x0000,0x0000, /* 0D03 */ +0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000, /* 0D06 */ +0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, /* 0D09 */ +0x1DC7,0x0000,0x0000, 0xFBC0,0x8D0D,0x0000, 0x1DC9,0x0000,0x0000, /* 0D0C */ +0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, 0xFBC0,0x8D11,0x0000, /* 0D0F */ +0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, /* 0D12 */ +0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000, /* 0D15 */ +0x1DD2,0x0000,0x0000, 0x1DD3,0x0000,0x0000, 0x1DD4,0x0000,0x0000, /* 0D18 */ +0x1DD5,0x0000,0x0000, 0x1DD6,0x0000,0x0000, 0x1DD7,0x0000,0x0000, /* 0D1B */ +0x1DD8,0x0000,0x0000, 0x1DD9,0x0000,0x0000, 0x1DDA,0x0000,0x0000, /* 0D1E */ +0x1DDB,0x0000,0x0000, 0x1DDC,0x0000,0x0000, 0x1DDD,0x0000,0x0000, /* 0D21 */ +0x1DDE,0x0000,0x0000, 0x1DDF,0x0000,0x0000, 0x1DE0,0x0000,0x0000, /* 0D24 */ +0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0xFBC0,0x8D29,0x0000, /* 0D27 */ +0x1DE3,0x0000,0x0000, 0x1DE4,0x0000,0x0000, 0x1DE5,0x0000,0x0000, /* 0D2A */ +0x1DE6,0x0000,0x0000, 0x1DE7,0x0000,0x0000, 0x1DE8,0x0000,0x0000, /* 0D2D */ +0x1DE9,0x0000,0x0000, 0x1DF2,0x0000,0x0000, 0x1DEA,0x0000,0x0000, /* 0D30 */ +0x1DF0,0x0000,0x0000, 0x1DF1,0x0000,0x0000, 0x1DEB,0x0000,0x0000, /* 0D33 */ +0x1DEC,0x0000,0x0000, 0x1DED,0x0000,0x0000, 0x1DEE,0x0000,0x0000, /* 0D36 */ +0x1DEF,0x0000,0x0000, 0xFBC0,0x8D3A,0x0000, 0xFBC0,0x8D3B,0x0000, /* 0D39 */ +0xFBC0,0x8D3C,0x0000, 0x1DF3,0x0000,0x0000, 0x1DF4,0x0000,0x0000, /* 0D3C */ +0x1DF5,0x0000,0x0000, 0x1DF6,0x0000,0x0000, 0x1DF7,0x0000,0x0000, /* 0D3F */ +0x1DF8,0x0000,0x0000, 0x1DF9,0x0000,0x0000, 0x1DFA,0x0000,0x0000, /* 0D42 */ +0xFBC0,0x8D45,0x0000, 0x1DFD,0x0000,0x0000, 0x1DFE,0x0000,0x0000, /* 0D45 */ +0x1DFF,0x0000,0x0000, 0xFBC0,0x8D49,0x0000, 0x1E00,0x0000,0x0000, /* 0D48 */ +0x1E01,0x0000,0x0000, 0x1E02,0x0000,0x0000, 0x1E04,0x0000,0x0000, /* 0D4B */ +0xFBC0,0x8D4E,0x0000, 0xFBC0,0x8D4F,0x0000, 0xFBC0,0x8D50,0x0000, /* 0D4E */ +0xFBC0,0x8D51,0x0000, 0xFBC0,0x8D52,0x0000, 0xFBC0,0x8D53,0x0000, /* 0D51 */ +0xFBC0,0x8D54,0x0000, 0xFBC0,0x8D55,0x0000, 0xFBC0,0x8D56,0x0000, /* 0D54 */ +0x1E03,0x0000,0x0000, 0xFBC0,0x8D58,0x0000, 0xFBC0,0x8D59,0x0000, /* 0D57 */ +0xFBC0,0x8D5A,0x0000, 0xFBC0,0x8D5B,0x0000, 0xFBC0,0x8D5C,0x0000, /* 0D5A */ +0xFBC0,0x8D5D,0x0000, 0xFBC0,0x8D5E,0x0000, 0xFBC0,0x8D5F,0x0000, /* 0D5D */ +0x1DC6,0x0000,0x0000, 0x1DC8,0x0000,0x0000, 0x1DFB,0x0000,0x0000, /* 0D60 */ +0x1DFC,0x0000,0x0000, 0xFBC0,0x8D64,0x0000, 0xFBC0,0x8D65,0x0000, /* 0D63 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0D66 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0D69 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0D6C */ +0x120E,0x0000,0x0000, 0x111F,0x0000,0x0000, 0x1120,0x0000,0x0000, /* 0D6F */ +0x1121,0x0000,0x0000, 0x1122,0x0000,0x0000, 0x1123,0x0000,0x0000, /* 0D72 */ +0x1124,0x0000,0x0000, 0xFBC0,0x8D76,0x0000, 0xFBC0,0x8D77,0x0000, /* 0D75 */ +0xFBC0,0x8D78,0x0000, 0x045F,0x0000,0x0000, 0x1DDD,0x1E04,0x0000, /* 0D78 */ +0x1DE2,0x1E04,0x0000, 0x1DE9,0x1E04,0x0000, 0x1DEA,0x1E04,0x0000, /* 0D7B */ +0x1DF0,0x1E04,0x0000, 0x1DCF,0x1E04,0x0000, 0xFBC0,0x8D80,0x0000, /* 0D7E */ +0xFBC0,0x8D81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0D81 */ +0xFBC0,0x8D84,0x0000, 0x1E05,0x0000,0x0000, 0x1E06,0x0000,0x0000, /* 0D84 */ +0x1E07,0x0000,0x0000, 0x1E08,0x0000,0x0000, 0x1E09,0x0000,0x0000, /* 0D87 */ +0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, 0x1E0C,0x0000,0x0000, /* 0D8A */ +0x1E0D,0x0000,0x0000, 0x1E0E,0x0000,0x0000, 0x1E0F,0x0000,0x0000, /* 0D8D */ +0x1E10,0x0000,0x0000, 0x1E11,0x0000,0x0000, 0x1E12,0x0000,0x0000, /* 0D90 */ +0x1E13,0x0000,0x0000, 0x1E14,0x0000,0x0000, 0x1E15,0x0000,0x0000, /* 0D93 */ +0x1E16,0x0000,0x0000, 0xFBC0,0x8D97,0x0000, 0xFBC0,0x8D98,0x0000, /* 0D96 */ +0xFBC0,0x8D99,0x0000, 0x1E17,0x0000,0x0000, 0x1E18,0x0000,0x0000, /* 0D99 */ +0x1E19,0x0000,0x0000, 0x1E1A,0x0000,0x0000, 0x1E1B,0x0000,0x0000, /* 0D9C */ +0x1E1C,0x0000,0x0000, 0x1E1D,0x0000,0x0000, 0x1E1E,0x0000,0x0000, /* 0D9F */ +0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000, 0x1E21,0x0000,0x0000, /* 0DA2 */ +0x1E22,0x0000,0x0000, 0x1E23,0x0000,0x0000, 0x1E24,0x0000,0x0000, /* 0DA5 */ +0x1E25,0x0000,0x0000, 0x1E26,0x0000,0x0000, 0x1E27,0x0000,0x0000, /* 0DA8 */ +0x1E28,0x0000,0x0000, 0x1E29,0x0000,0x0000, 0x1E2A,0x0000,0x0000, /* 0DAB */ +0x1E2B,0x0000,0x0000, 0x1E2C,0x0000,0x0000, 0x1E2D,0x0000,0x0000, /* 0DAE */ +0x1E2E,0x0000,0x0000, 0xFBC0,0x8DB2,0x0000, 0x1E2F,0x0000,0x0000, /* 0DB1 */ +0x1E30,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1E32,0x0000,0x0000, /* 0DB4 */ +0x1E33,0x0000,0x0000, 0x1E34,0x0000,0x0000, 0x1E35,0x0000,0x0000, /* 0DB7 */ +0x1E36,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0xFBC0,0x8DBC,0x0000, /* 0DBA */ +0x1E38,0x0000,0x0000, 0xFBC0,0x8DBE,0x0000, 0xFBC0,0x8DBF,0x0000, /* 0DBD */ +0x1E39,0x0000,0x0000, 0x1E3A,0x0000,0x0000, 0x1E3B,0x0000,0x0000, /* 0DC0 */ +0x1E3C,0x0000,0x0000, 0x1E3D,0x0000,0x0000, 0x1E3E,0x0000,0x0000, /* 0DC3 */ +0x1E3F,0x0000,0x0000, 0xFBC0,0x8DC7,0x0000, 0xFBC0,0x8DC8,0x0000, /* 0DC6 */ +0xFBC0,0x8DC9,0x0000, 0x1E51,0x0000,0x0000, 0xFBC0,0x8DCB,0x0000, /* 0DC9 */ +0xFBC0,0x8DCC,0x0000, 0xFBC0,0x8DCD,0x0000, 0xFBC0,0x8DCE,0x0000, /* 0DCC */ +0x1E40,0x0000,0x0000, 0x1E41,0x0000,0x0000, 0x1E42,0x0000,0x0000, /* 0DCF */ +0x1E43,0x0000,0x0000, 0x1E44,0x0000,0x0000, 0x1E45,0x0000,0x0000, /* 0DD2 */ +0xFBC0,0x8DD5,0x0000, 0x1E46,0x0000,0x0000, 0xFBC0,0x8DD7,0x0000, /* 0DD5 */ +0x1E47,0x0000,0x0000, 0x1E4B,0x0000,0x0000, 0x1E4C,0x0000,0x0000, /* 0DD8 */ +0x1E4D,0x0000,0x0000, 0x1E4E,0x0000,0x0000, 0x1E4F,0x0000,0x0000, /* 0DDB */ +0x1E50,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0xFBC0,0x8DE0,0x0000, /* 0DDE */ +0xFBC0,0x8DE1,0x0000, 0xFBC0,0x8DE2,0x0000, 0xFBC0,0x8DE3,0x0000, /* 0DE1 */ +0xFBC0,0x8DE4,0x0000, 0xFBC0,0x8DE5,0x0000, 0xFBC0,0x8DE6,0x0000, /* 0DE4 */ +0xFBC0,0x8DE7,0x0000, 0xFBC0,0x8DE8,0x0000, 0xFBC0,0x8DE9,0x0000, /* 0DE7 */ +0xFBC0,0x8DEA,0x0000, 0xFBC0,0x8DEB,0x0000, 0xFBC0,0x8DEC,0x0000, /* 0DEA */ +0xFBC0,0x8DED,0x0000, 0xFBC0,0x8DEE,0x0000, 0xFBC0,0x8DEF,0x0000, /* 0DED */ +0xFBC0,0x8DF0,0x0000, 0xFBC0,0x8DF1,0x0000, 0x1E48,0x0000,0x0000, /* 0DF0 */ +0x1E4A,0x0000,0x0000, 0x03A5,0x0000,0x0000, 0xFBC0,0x8DF5,0x0000, /* 0DF3 */ +0xFBC0,0x8DF6,0x0000, 0xFBC0,0x8DF7,0x0000, 0xFBC0,0x8DF8,0x0000, /* 0DF6 */ +0xFBC0,0x8DF9,0x0000, 0xFBC0,0x8DFA,0x0000, 0xFBC0,0x8DFB,0x0000, /* 0DF9 */ +0xFBC0,0x8DFC,0x0000, 0xFBC0,0x8DFD,0x0000, 0xFBC0,0x8DFE,0x0000, /* 0DFC */ +0xFBC0,0x8DFF,0x0000 }; + +static const uint16 uca520_p00E[]= { /* 0E00 (3 weights per char) */ +0xFBC0,0x8E00,0x0000, 0x1F70,0x0000,0x0000, 0x1F71,0x0000,0x0000, /* 0E00 */ +0x1F72,0x0000,0x0000, 0x1F73,0x0000,0x0000, 0x1F74,0x0000,0x0000, /* 0E03 */ +0x1F75,0x0000,0x0000, 0x1F76,0x0000,0x0000, 0x1F77,0x0000,0x0000, /* 0E06 */ +0x1F78,0x0000,0x0000, 0x1F79,0x0000,0x0000, 0x1F7A,0x0000,0x0000, /* 0E09 */ +0x1F7B,0x0000,0x0000, 0x1F7C,0x0000,0x0000, 0x1F7D,0x0000,0x0000, /* 0E0C */ +0x1F7E,0x0000,0x0000, 0x1F7F,0x0000,0x0000, 0x1F80,0x0000,0x0000, /* 0E0F */ +0x1F81,0x0000,0x0000, 0x1F82,0x0000,0x0000, 0x1F83,0x0000,0x0000, /* 0E12 */ +0x1F84,0x0000,0x0000, 0x1F85,0x0000,0x0000, 0x1F86,0x0000,0x0000, /* 0E15 */ +0x1F87,0x0000,0x0000, 0x1F88,0x0000,0x0000, 0x1F89,0x0000,0x0000, /* 0E18 */ +0x1F8A,0x0000,0x0000, 0x1F8B,0x0000,0x0000, 0x1F8C,0x0000,0x0000, /* 0E1B */ +0x1F8D,0x0000,0x0000, 0x1F8E,0x0000,0x0000, 0x1F8F,0x0000,0x0000, /* 0E1E */ +0x1F90,0x0000,0x0000, 0x1F91,0x0000,0x0000, 0x1F92,0x0000,0x0000, /* 0E21 */ +0x1F93,0x0000,0x0000, 0x1F94,0x0000,0x0000, 0x1F95,0x0000,0x0000, /* 0E24 */ +0x1F96,0x0000,0x0000, 0x1F97,0x0000,0x0000, 0x1F98,0x0000,0x0000, /* 0E27 */ +0x1F99,0x0000,0x0000, 0x1F9A,0x0000,0x0000, 0x1F9B,0x0000,0x0000, /* 0E2A */ +0x1F9C,0x0000,0x0000, 0x1F9D,0x0000,0x0000, 0x1F9E,0x0000,0x0000, /* 0E2D */ +0x1F9F,0x0000,0x0000, 0x1FA0,0x0000,0x0000, 0x1FA1,0x0000,0x0000, /* 0E30 */ +0x1FA2,0x0000,0x0000, 0x1FA3,0x0000,0x0000, 0x1FA4,0x0000,0x0000, /* 0E33 */ +0x1FA5,0x0000,0x0000, 0x1FA6,0x0000,0x0000, 0x1FA7,0x0000,0x0000, /* 0E36 */ +0x1FA8,0x0000,0x0000, 0x1FA9,0x0000,0x0000, 0xFBC0,0x8E3B,0x0000, /* 0E39 */ +0xFBC0,0x8E3C,0x0000, 0xFBC0,0x8E3D,0x0000, 0xFBC0,0x8E3E,0x0000, /* 0E3C */ +0x11EB,0x0000,0x0000, 0x1FAA,0x0000,0x0000, 0x1FAB,0x0000,0x0000, /* 0E3F */ +0x1FAC,0x0000,0x0000, 0x1FAD,0x0000,0x0000, 0x1FAE,0x0000,0x0000, /* 0E42 */ +0x1FAF,0x0000,0x0000, 0x11D1,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E45 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E48 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E4B */ +0x0000,0x0000,0x0000, 0x0467,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0E4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0E51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0E54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0E57 */ +0x03A6,0x0000,0x0000, 0x03A7,0x0000,0x0000, 0xFBC0,0x8E5C,0x0000, /* 0E5A */ +0xFBC0,0x8E5D,0x0000, 0xFBC0,0x8E5E,0x0000, 0xFBC0,0x8E5F,0x0000, /* 0E5D */ +0xFBC0,0x8E60,0x0000, 0xFBC0,0x8E61,0x0000, 0xFBC0,0x8E62,0x0000, /* 0E60 */ +0xFBC0,0x8E63,0x0000, 0xFBC0,0x8E64,0x0000, 0xFBC0,0x8E65,0x0000, /* 0E63 */ +0xFBC0,0x8E66,0x0000, 0xFBC0,0x8E67,0x0000, 0xFBC0,0x8E68,0x0000, /* 0E66 */ +0xFBC0,0x8E69,0x0000, 0xFBC0,0x8E6A,0x0000, 0xFBC0,0x8E6B,0x0000, /* 0E69 */ +0xFBC0,0x8E6C,0x0000, 0xFBC0,0x8E6D,0x0000, 0xFBC0,0x8E6E,0x0000, /* 0E6C */ +0xFBC0,0x8E6F,0x0000, 0xFBC0,0x8E70,0x0000, 0xFBC0,0x8E71,0x0000, /* 0E6F */ +0xFBC0,0x8E72,0x0000, 0xFBC0,0x8E73,0x0000, 0xFBC0,0x8E74,0x0000, /* 0E72 */ +0xFBC0,0x8E75,0x0000, 0xFBC0,0x8E76,0x0000, 0xFBC0,0x8E77,0x0000, /* 0E75 */ +0xFBC0,0x8E78,0x0000, 0xFBC0,0x8E79,0x0000, 0xFBC0,0x8E7A,0x0000, /* 0E78 */ +0xFBC0,0x8E7B,0x0000, 0xFBC0,0x8E7C,0x0000, 0xFBC0,0x8E7D,0x0000, /* 0E7B */ +0xFBC0,0x8E7E,0x0000, 0xFBC0,0x8E7F,0x0000, 0xFBC0,0x8E80,0x0000, /* 0E7E */ +0x1FB0,0x0000,0x0000, 0x1FB1,0x0000,0x0000, 0xFBC0,0x8E83,0x0000, /* 0E81 */ +0x1FB2,0x0000,0x0000, 0xFBC0,0x8E85,0x0000, 0xFBC0,0x8E86,0x0000, /* 0E84 */ +0x1FB3,0x0000,0x0000, 0x1FB4,0x0000,0x0000, 0xFBC0,0x8E89,0x0000, /* 0E87 */ +0x1FB6,0x0000,0x0000, 0xFBC0,0x8E8B,0x0000, 0xFBC0,0x8E8C,0x0000, /* 0E8A */ +0x1FB7,0x0000,0x0000, 0xFBC0,0x8E8E,0x0000, 0xFBC0,0x8E8F,0x0000, /* 0E8D */ +0xFBC0,0x8E90,0x0000, 0xFBC0,0x8E91,0x0000, 0xFBC0,0x8E92,0x0000, /* 0E90 */ +0xFBC0,0x8E93,0x0000, 0x1FB8,0x0000,0x0000, 0x1FB9,0x0000,0x0000, /* 0E93 */ +0x1FBA,0x0000,0x0000, 0x1FBB,0x0000,0x0000, 0xFBC0,0x8E98,0x0000, /* 0E96 */ +0x1FBC,0x0000,0x0000, 0x1FBD,0x0000,0x0000, 0x1FBE,0x0000,0x0000, /* 0E99 */ +0x1FBF,0x0000,0x0000, 0x1FC0,0x0000,0x0000, 0x1FC1,0x0000,0x0000, /* 0E9C */ +0x1FC2,0x0000,0x0000, 0xFBC0,0x8EA0,0x0000, 0x1FC3,0x0000,0x0000, /* 0E9F */ +0x1FC4,0x0000,0x0000, 0x1FC5,0x0000,0x0000, 0xFBC0,0x8EA4,0x0000, /* 0EA2 */ +0x1FC6,0x0000,0x0000, 0xFBC0,0x8EA6,0x0000, 0x1FC7,0x0000,0x0000, /* 0EA5 */ +0xFBC0,0x8EA8,0x0000, 0xFBC0,0x8EA9,0x0000, 0x1FB5,0x0000,0x0000, /* 0EA8 */ +0x1FC8,0x0000,0x0000, 0xFBC0,0x8EAC,0x0000, 0x1FC9,0x0000,0x0000, /* 0EAB */ +0x1FCA,0x0000,0x0000, 0x1FCB,0x0000,0x0000, 0x1FCC,0x0000,0x0000, /* 0EAE */ +0x1FCD,0x0000,0x0000, 0x1FCE,0x0000,0x0000, 0x1FCF,0x0000,0x0000, /* 0EB1 */ +0x1FD0,0x0000,0x0000, 0x1FD1,0x0000,0x0000, 0x1FD2,0x0000,0x0000, /* 0EB4 */ +0x1FD3,0x0000,0x0000, 0x1FD4,0x0000,0x0000, 0x1FD5,0x0000,0x0000, /* 0EB7 */ +0xFBC0,0x8EBA,0x0000, 0x1FD6,0x0000,0x0000, 0x1FD7,0x0000,0x0000, /* 0EBA */ +0x1FD8,0x0000,0x0000, 0xFBC0,0x8EBE,0x0000, 0xFBC0,0x8EBF,0x0000, /* 0EBD */ +0x1FD9,0x0000,0x0000, 0x1FDA,0x0000,0x0000, 0x1FDB,0x0000,0x0000, /* 0EC0 */ +0x1FDC,0x0000,0x0000, 0x1FDD,0x0000,0x0000, 0xFBC0,0x8EC5,0x0000, /* 0EC3 */ +0x11D2,0x0000,0x0000, 0xFBC0,0x8EC7,0x0000, 0x0000,0x0000,0x0000, /* 0EC6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0EC9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x8ECE,0x0000, /* 0ECC */ +0xFBC0,0x8ECF,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 0ECF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 0ED2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 0ED5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x8EDA,0x0000, /* 0ED8 */ +0xFBC0,0x8EDB,0x0000, 0x1FC8,0x1FBC,0x0000, 0x1FC8,0x1FC3,0x0000, /* 0EDB */ +0xFBC0,0x8EDE,0x0000, 0xFBC0,0x8EDF,0x0000, 0xFBC0,0x8EE0,0x0000, /* 0EDE */ +0xFBC0,0x8EE1,0x0000, 0xFBC0,0x8EE2,0x0000, 0xFBC0,0x8EE3,0x0000, /* 0EE1 */ +0xFBC0,0x8EE4,0x0000, 0xFBC0,0x8EE5,0x0000, 0xFBC0,0x8EE6,0x0000, /* 0EE4 */ +0xFBC0,0x8EE7,0x0000, 0xFBC0,0x8EE8,0x0000, 0xFBC0,0x8EE9,0x0000, /* 0EE7 */ +0xFBC0,0x8EEA,0x0000, 0xFBC0,0x8EEB,0x0000, 0xFBC0,0x8EEC,0x0000, /* 0EEA */ +0xFBC0,0x8EED,0x0000, 0xFBC0,0x8EEE,0x0000, 0xFBC0,0x8EEF,0x0000, /* 0EED */ +0xFBC0,0x8EF0,0x0000, 0xFBC0,0x8EF1,0x0000, 0xFBC0,0x8EF2,0x0000, /* 0EF0 */ +0xFBC0,0x8EF3,0x0000, 0xFBC0,0x8EF4,0x0000, 0xFBC0,0x8EF5,0x0000, /* 0EF3 */ +0xFBC0,0x8EF6,0x0000, 0xFBC0,0x8EF7,0x0000, 0xFBC0,0x8EF8,0x0000, /* 0EF6 */ +0xFBC0,0x8EF9,0x0000, 0xFBC0,0x8EFA,0x0000, 0xFBC0,0x8EFB,0x0000, /* 0EF9 */ +0xFBC0,0x8EFC,0x0000, 0xFBC0,0x8EFD,0x0000, 0xFBC0,0x8EFE,0x0000, /* 0EFC */ +0xFBC0,0x8EFF,0x0000 }; + +static const uint16 uca520_p00F[]= { /* 0F00 (3 weights per char) */ +0x2067,0x207A,0x0000, 0x0468,0x0000,0x0000, 0x0469,0x0000,0x0000, /* 0F00 */ +0x046A,0x0000,0x0000, 0x03AA,0x0000,0x0000, 0x03AB,0x0000,0x0000, /* 0F03 */ +0x03AC,0x0000,0x0000, 0x03AD,0x0000,0x0000, 0x03AE,0x0000,0x0000, /* 0F06 */ +0x03AF,0x0000,0x0000, 0x03B0,0x0000,0x0000, 0x03B3,0x0000,0x0000, /* 0F09 */ +0x03B3,0x0000,0x0000, 0x03B4,0x0000,0x0000, 0x03B5,0x0000,0x0000, /* 0F0C */ +0x03B6,0x0000,0x0000, 0x03B7,0x0000,0x0000, 0x03B8,0x0000,0x0000, /* 0F0F */ +0x03B9,0x0000,0x0000, 0x046B,0x0000,0x0000, 0x0266,0x0000,0x0000, /* 0F12 */ +0x046C,0x0000,0x0000, 0x046D,0x0000,0x0000, 0x046E,0x0000,0x0000, /* 0F15 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x046F,0x0000,0x0000, /* 0F18 */ +0x0470,0x0000,0x0000, 0x0471,0x0000,0x0000, 0x0472,0x0000,0x0000, /* 0F1B */ +0x0473,0x0000,0x0000, 0x0474,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0F1E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F21 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F24 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F27 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F2A */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F2D */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F30 */ +0x1205,0x0000,0x0000, 0x0475,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F33 */ +0x0476,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0477,0x0000,0x0000, /* 0F36 */ +0x0000,0x0000,0x0000, 0x0305,0x0000,0x0000, 0x0306,0x0000,0x0000, /* 0F39 */ +0x0307,0x0000,0x0000, 0x0308,0x0000,0x0000, 0x0478,0x0000,0x0000, /* 0F3C */ +0x0479,0x0000,0x0000, 0x2021,0x0000,0x0000, 0x2024,0x0000,0x0000, /* 0F3F */ +0x2026,0x0000,0x0000, 0x2026,0x2066,0x0000, 0x2028,0x0000,0x0000, /* 0F42 */ +0x202A,0x0000,0x0000, 0x202C,0x0000,0x0000, 0x202E,0x0000,0x0000, /* 0F45 */ +0xFBC0,0x8F48,0x0000, 0x2030,0x0000,0x0000, 0x2032,0x0000,0x0000, /* 0F48 */ +0x2034,0x0000,0x0000, 0x2036,0x0000,0x0000, 0x2036,0x2066,0x0000, /* 0F4B */ +0x2038,0x0000,0x0000, 0x203A,0x0000,0x0000, 0x203C,0x0000,0x0000, /* 0F4E */ +0x203E,0x0000,0x0000, 0x203E,0x2066,0x0000, 0x2040,0x0000,0x0000, /* 0F51 */ +0x2042,0x0000,0x0000, 0x2044,0x0000,0x0000, 0x2046,0x0000,0x0000, /* 0F54 */ +0x2046,0x2066,0x0000, 0x2048,0x0000,0x0000, 0x204A,0x0000,0x0000, /* 0F57 */ +0x204C,0x0000,0x0000, 0x204E,0x0000,0x0000, 0x204E,0x2066,0x0000, /* 0F5A */ +0x2050,0x0000,0x0000, 0x2052,0x0000,0x0000, 0x2054,0x0000,0x0000, /* 0F5D */ +0x2056,0x0000,0x0000, 0x2058,0x0000,0x0000, 0x205A,0x0000,0x0000, /* 0F60 */ +0x205D,0x0000,0x0000, 0x205F,0x0000,0x0000, 0x2061,0x0000,0x0000, /* 0F63 */ +0x2063,0x0000,0x0000, 0x2065,0x0000,0x0000, 0x2067,0x0000,0x0000, /* 0F66 */ +0x2021,0x2062,0x0000, 0x205A,0x0000,0x0000, 0x2023,0x0000,0x0000, /* 0F69 */ +0x205C,0x0000,0x0000, 0xFBC0,0x8F6D,0x0000, 0xFBC0,0x8F6E,0x0000, /* 0F6C */ +0xFBC0,0x8F6F,0x0000, 0xFBC0,0x8F70,0x0000, 0x206D,0x0000,0x0000, /* 0F6F */ +0x206E,0x0000,0x0000, 0x206F,0x0000,0x0000, 0x2072,0x0000,0x0000, /* 0F72 */ +0x2073,0x0000,0x0000, 0x2074,0x0000,0x0000, 0x2075,0x0000,0x0000, /* 0F75 */ +0x2076,0x0000,0x0000, 0x2077,0x0000,0x0000, 0x2078,0x0000,0x0000, /* 0F78 */ +0x2079,0x0000,0x0000, 0x207A,0x0000,0x0000, 0x207B,0x0000,0x0000, /* 0F7B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x2070,0x0000,0x0000, /* 0F7E */ +0x2071,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F81 */ +0x207C,0x0000,0x0000, 0x03BA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F84 */ +0x0000,0x0000,0x0000, 0x2069,0x0000,0x0000, 0x206A,0x0000,0x0000, /* 0F87 */ +0x206B,0x0000,0x0000, 0x206C,0x0000,0x0000, 0xFBC0,0x8F8C,0x0000, /* 0F8A */ +0xFBC0,0x8F8D,0x0000, 0xFBC0,0x8F8E,0x0000, 0xFBC0,0x8F8F,0x0000, /* 0F8D */ +0x2022,0x0000,0x0000, 0x2025,0x0000,0x0000, 0x2027,0x0000,0x0000, /* 0F90 */ +0x2027,0x2066,0x0000, 0x2029,0x0000,0x0000, 0x202B,0x0000,0x0000, /* 0F93 */ +0x202D,0x0000,0x0000, 0x202F,0x0000,0x0000, 0xFBC0,0x8F98,0x0000, /* 0F96 */ +0x2031,0x0000,0x0000, 0x2033,0x0000,0x0000, 0x2035,0x0000,0x0000, /* 0F99 */ +0x2037,0x0000,0x0000, 0x2037,0x2066,0x0000, 0x2039,0x0000,0x0000, /* 0F9C */ +0x203B,0x0000,0x0000, 0x203D,0x0000,0x0000, 0x203F,0x0000,0x0000, /* 0F9F */ +0x203F,0x2066,0x0000, 0x2041,0x0000,0x0000, 0x2043,0x0000,0x0000, /* 0FA2 */ +0x2045,0x0000,0x0000, 0x2047,0x0000,0x0000, 0x2047,0x2066,0x0000, /* 0FA5 */ +0x2049,0x0000,0x0000, 0x204B,0x0000,0x0000, 0x204D,0x0000,0x0000, /* 0FA8 */ +0x204F,0x0000,0x0000, 0x204F,0x2066,0x0000, 0x2051,0x0000,0x0000, /* 0FAB */ +0x2053,0x0000,0x0000, 0x2055,0x0000,0x0000, 0x2057,0x0000,0x0000, /* 0FAE */ +0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, 0x205E,0x0000,0x0000, /* 0FB1 */ +0x2060,0x0000,0x0000, 0x2062,0x0000,0x0000, 0x2064,0x0000,0x0000, /* 0FB4 */ +0x2066,0x0000,0x0000, 0x2068,0x0000,0x0000, 0x2022,0x2062,0x0000, /* 0FB7 */ +0x2051,0x0000,0x0000, 0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, /* 0FBA */ +0xFBC0,0x8FBD,0x0000, 0x047A,0x0000,0x0000, 0x047B,0x0000,0x0000, /* 0FBD */ +0x047C,0x0000,0x0000, 0x047D,0x0000,0x0000, 0x047E,0x0000,0x0000, /* 0FC0 */ +0x047F,0x0000,0x0000, 0x0480,0x0000,0x0000, 0x0481,0x0000,0x0000, /* 0FC3 */ +0x0000,0x0000,0x0000, 0x0482,0x0000,0x0000, 0x0483,0x0000,0x0000, /* 0FC6 */ +0x0484,0x0000,0x0000, 0x0485,0x0000,0x0000, 0x0486,0x0000,0x0000, /* 0FC9 */ +0x0487,0x0000,0x0000, 0xFBC0,0x8FCD,0x0000, 0x0488,0x0000,0x0000, /* 0FCC */ +0x0489,0x0000,0x0000, 0x03B1,0x0000,0x0000, 0x03B2,0x0000,0x0000, /* 0FCF */ +0x03BB,0x0000,0x0000, 0x03BC,0x0000,0x0000, 0x03BD,0x0000,0x0000, /* 0FD2 */ +0x048A,0x0000,0x0000, 0x048B,0x0000,0x0000, 0x048C,0x0000,0x0000, /* 0FD5 */ +0x048D,0x0000,0x0000, 0xFBC0,0x8FD9,0x0000, 0xFBC0,0x8FDA,0x0000, /* 0FD8 */ +0xFBC0,0x8FDB,0x0000, 0xFBC0,0x8FDC,0x0000, 0xFBC0,0x8FDD,0x0000, /* 0FDB */ +0xFBC0,0x8FDE,0x0000, 0xFBC0,0x8FDF,0x0000, 0xFBC0,0x8FE0,0x0000, /* 0FDE */ +0xFBC0,0x8FE1,0x0000, 0xFBC0,0x8FE2,0x0000, 0xFBC0,0x8FE3,0x0000, /* 0FE1 */ +0xFBC0,0x8FE4,0x0000, 0xFBC0,0x8FE5,0x0000, 0xFBC0,0x8FE6,0x0000, /* 0FE4 */ +0xFBC0,0x8FE7,0x0000, 0xFBC0,0x8FE8,0x0000, 0xFBC0,0x8FE9,0x0000, /* 0FE7 */ +0xFBC0,0x8FEA,0x0000, 0xFBC0,0x8FEB,0x0000, 0xFBC0,0x8FEC,0x0000, /* 0FEA */ +0xFBC0,0x8FED,0x0000, 0xFBC0,0x8FEE,0x0000, 0xFBC0,0x8FEF,0x0000, /* 0FED */ +0xFBC0,0x8FF0,0x0000, 0xFBC0,0x8FF1,0x0000, 0xFBC0,0x8FF2,0x0000, /* 0FF0 */ +0xFBC0,0x8FF3,0x0000, 0xFBC0,0x8FF4,0x0000, 0xFBC0,0x8FF5,0x0000, /* 0FF3 */ +0xFBC0,0x8FF6,0x0000, 0xFBC0,0x8FF7,0x0000, 0xFBC0,0x8FF8,0x0000, /* 0FF6 */ +0xFBC0,0x8FF9,0x0000, 0xFBC0,0x8FFA,0x0000, 0xFBC0,0x8FFB,0x0000, /* 0FF9 */ +0xFBC0,0x8FFC,0x0000, 0xFBC0,0x8FFD,0x0000, 0xFBC0,0x8FFE,0x0000, /* 0FFC */ +0xFBC0,0x8FFF,0x0000 }; + +static const uint16 uca520_p010[]= { /* 1000 (4 weights per char) */ +0x21CD,0x0000,0x0000,0x0000, 0x21CF,0x0000,0x0000,0x0000, /* 1000 */ +0x21D1,0x0000,0x0000,0x0000, 0x21D4,0x0000,0x0000,0x0000, /* 1002 */ +0x21D5,0x0000,0x0000,0x0000, 0x21D7,0x0000,0x0000,0x0000, /* 1004 */ +0x21DA,0x0000,0x0000,0x0000, 0x21DC,0x0000,0x0000,0x0000, /* 1006 */ +0x21E0,0x0000,0x0000,0x0000, 0x21E4,0x0000,0x0000,0x0000, /* 1008 */ +0x21E7,0x0000,0x0000,0x0000, 0x21E8,0x0000,0x0000,0x0000, /* 100A */ +0x21EA,0x0000,0x0000,0x0000, 0x21EC,0x0000,0x0000,0x0000, /* 100C */ +0x21EE,0x0000,0x0000,0x0000, 0x21F0,0x0000,0x0000,0x0000, /* 100E */ +0x21F2,0x0000,0x0000,0x0000, 0x21F3,0x0000,0x0000,0x0000, /* 1010 */ +0x21F4,0x0000,0x0000,0x0000, 0x21F6,0x0000,0x0000,0x0000, /* 1012 */ +0x21F8,0x0000,0x0000,0x0000, 0x21FC,0x0000,0x0000,0x0000, /* 1014 */ +0x21FD,0x0000,0x0000,0x0000, 0x2202,0x0000,0x0000,0x0000, /* 1016 */ +0x2204,0x0000,0x0000,0x0000, 0x2205,0x0000,0x0000,0x0000, /* 1018 */ +0x2207,0x0000,0x0000,0x0000, 0x2209,0x0000,0x0000,0x0000, /* 101A */ +0x220D,0x0000,0x0000,0x0000, 0x220F,0x0000,0x0000,0x0000, /* 101C */ +0x2216,0x0000,0x0000,0x0000, 0x2218,0x0000,0x0000,0x0000, /* 101E */ +0x221E,0x0000,0x0000,0x0000, 0x2224,0x0000,0x0000,0x0000, /* 1020 */ +0x2225,0x0000,0x0000,0x0000, 0x2226,0x0000,0x0000,0x0000, /* 1022 */ +0x2227,0x0000,0x0000,0x0000, 0x2228,0x0000,0x0000,0x0000, /* 1024 */ +0x2229,0x0000,0x0000,0x0000, 0x222E,0x0000,0x0000,0x0000, /* 1026 */ +0x222F,0x0000,0x0000,0x0000, 0x2230,0x0000,0x0000,0x0000, /* 1028 */ +0x2231,0x0000,0x0000,0x0000, 0x2232,0x0000,0x0000,0x0000, /* 102A */ +0x2232,0x0000,0x0000,0x0000, 0x2236,0x0000,0x0000,0x0000, /* 102C */ +0x2238,0x0000,0x0000,0x0000, 0x223A,0x0000,0x0000,0x0000, /* 102E */ +0x223D,0x0000,0x0000,0x0000, 0x2242,0x0000,0x0000,0x0000, /* 1030 */ +0x2246,0x0000,0x0000,0x0000, 0x2239,0x0000,0x0000,0x0000, /* 1032 */ +0x2248,0x0000,0x0000,0x0000, 0x2244,0x0000,0x0000,0x0000, /* 1034 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1036 */ +0x0000,0x0000,0x0000,0x0000, 0x224D,0x0000,0x0000,0x0000, /* 1038 */ +0x224E,0x0000,0x0000,0x0000, 0x2208,0x0000,0x0000,0x0000, /* 103A */ +0x220C,0x0000,0x0000,0x0000, 0x2210,0x0000,0x0000,0x0000, /* 103C */ +0x221B,0x0000,0x0000,0x0000, 0x2216,0x224D,0x2216,0x0000, /* 103E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1040 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1042 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1044 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1046 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1048 */ +0x029F,0x0000,0x0000,0x0000, 0x02A0,0x0000,0x0000,0x0000, /* 104A */ +0x03C2,0x0000,0x0000,0x0000, 0x03C3,0x0000,0x0000,0x0000, /* 104C */ +0x03C4,0x0000,0x0000,0x0000, 0x03C5,0x0000,0x0000,0x0000, /* 104E */ +0x2213,0x0000,0x0000,0x0000, 0x2214,0x0000,0x0000,0x0000, /* 1050 */ +0x222A,0x0000,0x0000,0x0000, 0x222B,0x0000,0x0000,0x0000, /* 1052 */ +0x222C,0x0000,0x0000,0x0000, 0x222D,0x0000,0x0000,0x0000, /* 1054 */ +0x223E,0x0000,0x0000,0x0000, 0x223F,0x0000,0x0000,0x0000, /* 1056 */ +0x2240,0x0000,0x0000,0x0000, 0x2241,0x0000,0x0000,0x0000, /* 1058 */ +0x21D6,0x0000,0x0000,0x0000, 0x21E1,0x0000,0x0000,0x0000, /* 105A */ +0x221F,0x0000,0x0000,0x0000, 0x2220,0x0000,0x0000,0x0000, /* 105C */ +0x21FB,0x0000,0x0000,0x0000, 0x2206,0x0000,0x0000,0x0000, /* 105E */ +0x220E,0x0000,0x0000,0x0000, 0x21E3,0x0000,0x0000,0x0000, /* 1060 */ +0x2249,0x0000,0x0000,0x0000, 0x224F,0x0000,0x0000,0x0000, /* 1062 */ +0x2250,0x0000,0x0000,0x0000, 0x2215,0x0000,0x0000,0x0000, /* 1064 */ +0x2223,0x0000,0x0000,0x0000, 0x224A,0x0000,0x0000,0x0000, /* 1066 */ +0x224B,0x0000,0x0000,0x0000, 0x2251,0x0000,0x0000,0x0000, /* 1068 */ +0x2252,0x0000,0x0000,0x0000, 0x2253,0x0000,0x0000,0x0000, /* 106A */ +0x2254,0x0000,0x0000,0x0000, 0x2255,0x0000,0x0000,0x0000, /* 106C */ +0x21F1,0x0000,0x0000,0x0000, 0x2221,0x0000,0x0000,0x0000, /* 106E */ +0x2222,0x0000,0x0000,0x0000, 0x2237,0x0000,0x0000,0x0000, /* 1070 */ +0x2234,0x0000,0x0000,0x0000, 0x223B,0x0000,0x0000,0x0000, /* 1072 */ +0x223C,0x0000,0x0000,0x0000, 0x21CE,0x0000,0x0000,0x0000, /* 1074 */ +0x21D0,0x0000,0x0000,0x0000, 0x21D2,0x0000,0x0000,0x0000, /* 1076 */ +0x21D8,0x0000,0x0000,0x0000, 0x21DE,0x0000,0x0000,0x0000, /* 1078 */ +0x21E5,0x0000,0x0000,0x0000, 0x21F5,0x0000,0x0000,0x0000, /* 107A */ +0x21F9,0x0000,0x0000,0x0000, 0x21FE,0x0000,0x0000,0x0000, /* 107C */ +0x21FF,0x0000,0x0000,0x0000, 0x2203,0x0000,0x0000,0x0000, /* 107E */ +0x2212,0x0000,0x0000,0x0000, 0x2219,0x0000,0x0000,0x0000, /* 1080 */ +0x2211,0x0000,0x0000,0x0000, 0x2233,0x0000,0x0000,0x0000, /* 1082 */ +0x2243,0x0000,0x0000,0x0000, 0x2245,0x0000,0x0000,0x0000, /* 1084 */ +0x224C,0x0000,0x0000,0x0000, 0x2256,0x0000,0x0000,0x0000, /* 1086 */ +0x2258,0x0000,0x0000,0x0000, 0x225A,0x0000,0x0000,0x0000, /* 1088 */ +0x225B,0x0000,0x0000,0x0000, 0x2257,0x0000,0x0000,0x0000, /* 108A */ +0x2259,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 108C */ +0x2201,0x0000,0x0000,0x0000, 0x225C,0x0000,0x0000,0x0000, /* 108E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1090 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1092 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1094 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1096 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1098 */ +0x225D,0x0000,0x0000,0x0000, 0x225E,0x0000,0x0000,0x0000, /* 109A */ +0x2235,0x0000,0x0000,0x0000, 0x2247,0x0000,0x0000,0x0000, /* 109C */ +0x03C6,0x0000,0x0000,0x0000, 0x03C7,0x0000,0x0000,0x0000, /* 109E */ +0x17E5,0x0000,0x0000,0x0000, 0x17E7,0x0000,0x0000,0x0000, /* 10A0 */ +0x17E9,0x0000,0x0000,0x0000, 0x17EB,0x0000,0x0000,0x0000, /* 10A2 */ +0x17ED,0x0000,0x0000,0x0000, 0x17EF,0x0000,0x0000,0x0000, /* 10A4 */ +0x17F1,0x0000,0x0000,0x0000, 0x17F5,0x0000,0x0000,0x0000, /* 10A6 */ +0x17F7,0x0000,0x0000,0x0000, 0x17F9,0x0000,0x0000,0x0000, /* 10A8 */ +0x17FB,0x0000,0x0000,0x0000, 0x17FD,0x0000,0x0000,0x0000, /* 10AA */ +0x17FF,0x0000,0x0000,0x0000, 0x1803,0x0000,0x0000,0x0000, /* 10AC */ +0x1805,0x0000,0x0000,0x0000, 0x1807,0x0000,0x0000,0x0000, /* 10AE */ +0x1809,0x0000,0x0000,0x0000, 0x180B,0x0000,0x0000,0x0000, /* 10B0 */ +0x180D,0x0000,0x0000,0x0000, 0x1811,0x0000,0x0000,0x0000, /* 10B2 */ +0x1813,0x0000,0x0000,0x0000, 0x1815,0x0000,0x0000,0x0000, /* 10B4 */ +0x1817,0x0000,0x0000,0x0000, 0x1819,0x0000,0x0000,0x0000, /* 10B6 */ +0x181B,0x0000,0x0000,0x0000, 0x181D,0x0000,0x0000,0x0000, /* 10B8 */ +0x181F,0x0000,0x0000,0x0000, 0x1821,0x0000,0x0000,0x0000, /* 10BA */ +0x1823,0x0000,0x0000,0x0000, 0x1825,0x0000,0x0000,0x0000, /* 10BC */ +0x1827,0x0000,0x0000,0x0000, 0x182B,0x0000,0x0000,0x0000, /* 10BE */ +0x182D,0x0000,0x0000,0x0000, 0x17F3,0x0000,0x0000,0x0000, /* 10C0 */ +0x1801,0x0000,0x0000,0x0000, 0x180F,0x0000,0x0000,0x0000, /* 10C2 */ +0x1829,0x0000,0x0000,0x0000, 0x182F,0x0000,0x0000,0x0000, /* 10C4 */ +0xFBC0,0x90C6,0x0000,0x0000, 0xFBC0,0x90C7,0x0000,0x0000, /* 10C6 */ +0xFBC0,0x90C8,0x0000,0x0000, 0xFBC0,0x90C9,0x0000,0x0000, /* 10C8 */ +0xFBC0,0x90CA,0x0000,0x0000, 0xFBC0,0x90CB,0x0000,0x0000, /* 10CA */ +0xFBC0,0x90CC,0x0000,0x0000, 0xFBC0,0x90CD,0x0000,0x0000, /* 10CC */ +0xFBC0,0x90CE,0x0000,0x0000, 0xFBC0,0x90CF,0x0000,0x0000, /* 10CE */ +0x17E4,0x0000,0x0000,0x0000, 0x17E6,0x0000,0x0000,0x0000, /* 10D0 */ +0x17E8,0x0000,0x0000,0x0000, 0x17EA,0x0000,0x0000,0x0000, /* 10D2 */ +0x17EC,0x0000,0x0000,0x0000, 0x17EE,0x0000,0x0000,0x0000, /* 10D4 */ +0x17F0,0x0000,0x0000,0x0000, 0x17F4,0x0000,0x0000,0x0000, /* 10D6 */ +0x17F6,0x0000,0x0000,0x0000, 0x17F8,0x0000,0x0000,0x0000, /* 10D8 */ +0x17FA,0x0000,0x0000,0x0000, 0x17FC,0x0000,0x0000,0x0000, /* 10DA */ +0x17FE,0x0000,0x0000,0x0000, 0x1802,0x0000,0x0000,0x0000, /* 10DC */ +0x1804,0x0000,0x0000,0x0000, 0x1806,0x0000,0x0000,0x0000, /* 10DE */ +0x1808,0x0000,0x0000,0x0000, 0x180A,0x0000,0x0000,0x0000, /* 10E0 */ +0x180C,0x0000,0x0000,0x0000, 0x1810,0x0000,0x0000,0x0000, /* 10E2 */ +0x1812,0x0000,0x0000,0x0000, 0x1814,0x0000,0x0000,0x0000, /* 10E4 */ +0x1816,0x0000,0x0000,0x0000, 0x1818,0x0000,0x0000,0x0000, /* 10E6 */ +0x181A,0x0000,0x0000,0x0000, 0x181C,0x0000,0x0000,0x0000, /* 10E8 */ +0x181E,0x0000,0x0000,0x0000, 0x1820,0x0000,0x0000,0x0000, /* 10EA */ +0x1822,0x0000,0x0000,0x0000, 0x1824,0x0000,0x0000,0x0000, /* 10EC */ +0x1826,0x0000,0x0000,0x0000, 0x182A,0x0000,0x0000,0x0000, /* 10EE */ +0x182C,0x0000,0x0000,0x0000, 0x17F2,0x0000,0x0000,0x0000, /* 10F0 */ +0x1800,0x0000,0x0000,0x0000, 0x180E,0x0000,0x0000,0x0000, /* 10F2 */ +0x1828,0x0000,0x0000,0x0000, 0x182E,0x0000,0x0000,0x0000, /* 10F4 */ +0x1830,0x0000,0x0000,0x0000, 0x1831,0x0000,0x0000,0x0000, /* 10F6 */ +0x1832,0x0000,0x0000,0x0000, 0x1833,0x0000,0x0000,0x0000, /* 10F8 */ +0x1834,0x0000,0x0000,0x0000, 0x02B7,0x0000,0x0000,0x0000, /* 10FA */ +0x17FE,0x0000,0x0000,0x0000, 0xFBC0,0x90FD,0x0000,0x0000, /* 10FC */ +0xFBC0,0x90FE,0x0000,0x0000, 0xFBC0,0x90FF,0x0000,0x0000 /* 10FE */ +}; + +static const uint16 uca520_p011[]= { /* 1100 (2 weights per char) */ +0x29B0,0x0000, 0x29B1,0x0000, 0x29B2,0x0000, 0x29B3,0x0000, /* 1100 */ +0x29B4,0x0000, 0x29B5,0x0000, 0x29B6,0x0000, 0x29B7,0x0000, /* 1104 */ +0x29B8,0x0000, 0x29B9,0x0000, 0x29BA,0x0000, 0x29BB,0x0000, /* 1108 */ +0x29BC,0x0000, 0x29BD,0x0000, 0x29BE,0x0000, 0x29BF,0x0000, /* 110C */ +0x29C0,0x0000, 0x29C1,0x0000, 0x29C2,0x0000, 0x29C3,0x0000, /* 1110 */ +0x29C4,0x0000, 0x29C5,0x0000, 0x29C6,0x0000, 0x29C7,0x0000, /* 1114 */ +0x29C8,0x0000, 0x29C9,0x0000, 0x29CA,0x0000, 0x29CB,0x0000, /* 1118 */ +0x29CC,0x0000, 0x29CD,0x0000, 0x29CE,0x0000, 0x29CF,0x0000, /* 111C */ +0x29D0,0x0000, 0x29D1,0x0000, 0x29D2,0x0000, 0x29D3,0x0000, /* 1120 */ +0x29D4,0x0000, 0x29D5,0x0000, 0x29D6,0x0000, 0x29D7,0x0000, /* 1124 */ +0x29D8,0x0000, 0x29D9,0x0000, 0x29DA,0x0000, 0x29DB,0x0000, /* 1128 */ +0x29DC,0x0000, 0x29DD,0x0000, 0x29DE,0x0000, 0x29DF,0x0000, /* 112C */ +0x29E0,0x0000, 0x29E1,0x0000, 0x29E2,0x0000, 0x29E3,0x0000, /* 1130 */ +0x29E4,0x0000, 0x29E5,0x0000, 0x29E6,0x0000, 0x29E7,0x0000, /* 1134 */ +0x29E8,0x0000, 0x29E9,0x0000, 0x29EA,0x0000, 0x29EB,0x0000, /* 1138 */ +0x29EC,0x0000, 0x29ED,0x0000, 0x29EE,0x0000, 0x29EF,0x0000, /* 113C */ +0x29F0,0x0000, 0x29F1,0x0000, 0x29F2,0x0000, 0x29F3,0x0000, /* 1140 */ +0x29F4,0x0000, 0x29F5,0x0000, 0x29F6,0x0000, 0x29F7,0x0000, /* 1144 */ +0x29F8,0x0000, 0x29F9,0x0000, 0x29FA,0x0000, 0x29FB,0x0000, /* 1148 */ +0x29FC,0x0000, 0x29FD,0x0000, 0x29FE,0x0000, 0x29FF,0x0000, /* 114C */ +0x2A00,0x0000, 0x2A01,0x0000, 0x2A02,0x0000, 0x2A03,0x0000, /* 1150 */ +0x2A04,0x0000, 0x2A05,0x0000, 0x2A06,0x0000, 0x2A07,0x0000, /* 1154 */ +0x2A08,0x0000, 0x2A09,0x0000, 0x2A0A,0x0000, 0x2A0B,0x0000, /* 1158 */ +0x2A0C,0x0000, 0x2A0D,0x0000, 0x2A0E,0x0000, 0x2A2C,0x0000, /* 115C */ +0x2A2D,0x0000, 0x2A2E,0x0000, 0x2A2F,0x0000, 0x2A30,0x0000, /* 1160 */ +0x2A31,0x0000, 0x2A32,0x0000, 0x2A33,0x0000, 0x2A34,0x0000, /* 1164 */ +0x2A35,0x0000, 0x2A36,0x0000, 0x2A37,0x0000, 0x2A38,0x0000, /* 1168 */ +0x2A39,0x0000, 0x2A3A,0x0000, 0x2A3B,0x0000, 0x2A3C,0x0000, /* 116C */ +0x2A3D,0x0000, 0x2A3E,0x0000, 0x2A3F,0x0000, 0x2A40,0x0000, /* 1170 */ +0x2A41,0x0000, 0x2A42,0x0000, 0x2A43,0x0000, 0x2A44,0x0000, /* 1174 */ +0x2A45,0x0000, 0x2A46,0x0000, 0x2A47,0x0000, 0x2A48,0x0000, /* 1178 */ +0x2A49,0x0000, 0x2A4A,0x0000, 0x2A4B,0x0000, 0x2A4C,0x0000, /* 117C */ +0x2A4D,0x0000, 0x2A4E,0x0000, 0x2A4F,0x0000, 0x2A50,0x0000, /* 1180 */ +0x2A51,0x0000, 0x2A52,0x0000, 0x2A53,0x0000, 0x2A54,0x0000, /* 1184 */ +0x2A55,0x0000, 0x2A56,0x0000, 0x2A57,0x0000, 0x2A58,0x0000, /* 1188 */ +0x2A59,0x0000, 0x2A5A,0x0000, 0x2A5B,0x0000, 0x2A5C,0x0000, /* 118C */ +0x2A5D,0x0000, 0x2A5E,0x0000, 0x2A5F,0x0000, 0x2A60,0x0000, /* 1190 */ +0x2A61,0x0000, 0x2A62,0x0000, 0x2A63,0x0000, 0x2A64,0x0000, /* 1194 */ +0x2A65,0x0000, 0x2A66,0x0000, 0x2A67,0x0000, 0x2A68,0x0000, /* 1198 */ +0x2A69,0x0000, 0x2A6A,0x0000, 0x2A6B,0x0000, 0x2A6C,0x0000, /* 119C */ +0x2A6D,0x0000, 0x2A6E,0x0000, 0x2A6F,0x0000, 0x2A70,0x0000, /* 11A0 */ +0x2A71,0x0000, 0x2A72,0x0000, 0x2A73,0x0000, 0x2A74,0x0000, /* 11A4 */ +0x2A8C,0x0000, 0x2A8D,0x0000, 0x2A8E,0x0000, 0x2A8F,0x0000, /* 11A8 */ +0x2A90,0x0000, 0x2A91,0x0000, 0x2A92,0x0000, 0x2A93,0x0000, /* 11AC */ +0x2A94,0x0000, 0x2A95,0x0000, 0x2A96,0x0000, 0x2A97,0x0000, /* 11B0 */ +0x2A98,0x0000, 0x2A99,0x0000, 0x2A9A,0x0000, 0x2A9B,0x0000, /* 11B4 */ +0x2A9C,0x0000, 0x2A9D,0x0000, 0x2A9E,0x0000, 0x2A9F,0x0000, /* 11B8 */ +0x2AA0,0x0000, 0x2AA1,0x0000, 0x2AA2,0x0000, 0x2AA3,0x0000, /* 11BC */ +0x2AA4,0x0000, 0x2AA5,0x0000, 0x2AA6,0x0000, 0x2AA7,0x0000, /* 11C0 */ +0x2AA8,0x0000, 0x2AA9,0x0000, 0x2AAA,0x0000, 0x2AAB,0x0000, /* 11C4 */ +0x2AAC,0x0000, 0x2AAD,0x0000, 0x2AAE,0x0000, 0x2AAF,0x0000, /* 11C8 */ +0x2AB0,0x0000, 0x2AB1,0x0000, 0x2AB2,0x0000, 0x2AB3,0x0000, /* 11CC */ +0x2AB4,0x0000, 0x2AB5,0x0000, 0x2AB6,0x0000, 0x2AB7,0x0000, /* 11D0 */ +0x2AB8,0x0000, 0x2AB9,0x0000, 0x2ABA,0x0000, 0x2ABB,0x0000, /* 11D4 */ +0x2ABC,0x0000, 0x2ABD,0x0000, 0x2ABE,0x0000, 0x2ABF,0x0000, /* 11D8 */ +0x2AC0,0x0000, 0x2AC1,0x0000, 0x2AC2,0x0000, 0x2AC3,0x0000, /* 11DC */ +0x2AC4,0x0000, 0x2AC5,0x0000, 0x2AC6,0x0000, 0x2AC7,0x0000, /* 11E0 */ +0x2AC8,0x0000, 0x2AC9,0x0000, 0x2ACA,0x0000, 0x2ACB,0x0000, /* 11E4 */ +0x2ACC,0x0000, 0x2ACD,0x0000, 0x2ACE,0x0000, 0x2ACF,0x0000, /* 11E8 */ +0x2AD0,0x0000, 0x2AD1,0x0000, 0x2AD2,0x0000, 0x2AD3,0x0000, /* 11EC */ +0x2AD4,0x0000, 0x2AD5,0x0000, 0x2AD6,0x0000, 0x2AD7,0x0000, /* 11F0 */ +0x2AD8,0x0000, 0x2AD9,0x0000, 0x2ADA,0x0000, 0x2ADB,0x0000, /* 11F4 */ +0x2ADC,0x0000, 0x2ADD,0x0000, 0x2ADE,0x0000, 0x2ADF,0x0000, /* 11F8 */ +0x2AE0,0x0000, 0x2AE1,0x0000, 0x2AE2,0x0000, 0x2AE3,0x0000 /* 11FC */ +}; + +static const uint16 uca520_p012[]= { /* 1200 (3 weights per char) */ +0x1A03,0x0000,0x0000, 0x1A04,0x0000,0x0000, 0x1A05,0x0000,0x0000, /* 1200 */ +0x1A06,0x0000,0x0000, 0x1A07,0x0000,0x0000, 0x1A08,0x0000,0x0000, /* 1203 */ +0x1A09,0x0000,0x0000, 0x1A0A,0x0000,0x0000, 0x1A0B,0x0000,0x0000, /* 1206 */ +0x1A0C,0x0000,0x0000, 0x1A0D,0x0000,0x0000, 0x1A0E,0x0000,0x0000, /* 1209 */ +0x1A0F,0x0000,0x0000, 0x1A10,0x0000,0x0000, 0x1A11,0x0000,0x0000, /* 120C */ +0x1A12,0x0000,0x0000, 0x1A14,0x0000,0x0000, 0x1A15,0x0000,0x0000, /* 120F */ +0x1A16,0x0000,0x0000, 0x1A17,0x0000,0x0000, 0x1A18,0x0000,0x0000, /* 1212 */ +0x1A19,0x0000,0x0000, 0x1A1A,0x0000,0x0000, 0x1A1B,0x0000,0x0000, /* 1215 */ +0x1A1C,0x0000,0x0000, 0x1A1D,0x0000,0x0000, 0x1A1E,0x0000,0x0000, /* 1218 */ +0x1A1F,0x0000,0x0000, 0x1A20,0x0000,0x0000, 0x1A21,0x0000,0x0000, /* 121B */ +0x1A22,0x0000,0x0000, 0x1A23,0x0000,0x0000, 0x1A29,0x0000,0x0000, /* 121E */ +0x1A2A,0x0000,0x0000, 0x1A2B,0x0000,0x0000, 0x1A2C,0x0000,0x0000, /* 1221 */ +0x1A2D,0x0000,0x0000, 0x1A2E,0x0000,0x0000, 0x1A2F,0x0000,0x0000, /* 1224 */ +0x1A30,0x0000,0x0000, 0x1A31,0x0000,0x0000, 0x1A32,0x0000,0x0000, /* 1227 */ +0x1A33,0x0000,0x0000, 0x1A34,0x0000,0x0000, 0x1A35,0x0000,0x0000, /* 122A */ +0x1A36,0x0000,0x0000, 0x1A37,0x0000,0x0000, 0x1A38,0x0000,0x0000, /* 122D */ +0x1A3A,0x0000,0x0000, 0x1A3B,0x0000,0x0000, 0x1A3C,0x0000,0x0000, /* 1230 */ +0x1A3D,0x0000,0x0000, 0x1A3E,0x0000,0x0000, 0x1A3F,0x0000,0x0000, /* 1233 */ +0x1A40,0x0000,0x0000, 0x1A41,0x0000,0x0000, 0x1A43,0x0000,0x0000, /* 1236 */ +0x1A44,0x0000,0x0000, 0x1A45,0x0000,0x0000, 0x1A46,0x0000,0x0000, /* 1239 */ +0x1A47,0x0000,0x0000, 0x1A48,0x0000,0x0000, 0x1A49,0x0000,0x0000, /* 123C */ +0x1A4A,0x0000,0x0000, 0x1A4C,0x0000,0x0000, 0x1A4D,0x0000,0x0000, /* 123F */ +0x1A4E,0x0000,0x0000, 0x1A4F,0x0000,0x0000, 0x1A50,0x0000,0x0000, /* 1242 */ +0x1A51,0x0000,0x0000, 0x1A52,0x0000,0x0000, 0x1A53,0x0000,0x0000, /* 1245 */ +0x1A54,0x0000,0x0000, 0xFBC0,0x9249,0x0000, 0x1A55,0x0000,0x0000, /* 1248 */ +0x1A56,0x0000,0x0000, 0x1A57,0x0000,0x0000, 0x1A58,0x0000,0x0000, /* 124B */ +0xFBC0,0x924E,0x0000, 0xFBC0,0x924F,0x0000, 0x1A59,0x0000,0x0000, /* 124E */ +0x1A5A,0x0000,0x0000, 0x1A5B,0x0000,0x0000, 0x1A5C,0x0000,0x0000, /* 1251 */ +0x1A5D,0x0000,0x0000, 0x1A5E,0x0000,0x0000, 0x1A5F,0x0000,0x0000, /* 1254 */ +0xFBC0,0x9257,0x0000, 0x1A60,0x0000,0x0000, 0xFBC0,0x9259,0x0000, /* 1257 */ +0x1A61,0x0000,0x0000, 0x1A62,0x0000,0x0000, 0x1A63,0x0000,0x0000, /* 125A */ +0x1A64,0x0000,0x0000, 0xFBC0,0x925E,0x0000, 0xFBC0,0x925F,0x0000, /* 125D */ +0x1A65,0x0000,0x0000, 0x1A66,0x0000,0x0000, 0x1A67,0x0000,0x0000, /* 1260 */ +0x1A68,0x0000,0x0000, 0x1A69,0x0000,0x0000, 0x1A6A,0x0000,0x0000, /* 1263 */ +0x1A6B,0x0000,0x0000, 0x1A6C,0x0000,0x0000, 0x1A72,0x0000,0x0000, /* 1266 */ +0x1A73,0x0000,0x0000, 0x1A74,0x0000,0x0000, 0x1A75,0x0000,0x0000, /* 1269 */ +0x1A76,0x0000,0x0000, 0x1A77,0x0000,0x0000, 0x1A78,0x0000,0x0000, /* 126C */ +0x1A79,0x0000,0x0000, 0x1A7A,0x0000,0x0000, 0x1A7B,0x0000,0x0000, /* 126F */ +0x1A7C,0x0000,0x0000, 0x1A7D,0x0000,0x0000, 0x1A7E,0x0000,0x0000, /* 1272 */ +0x1A7F,0x0000,0x0000, 0x1A80,0x0000,0x0000, 0x1A81,0x0000,0x0000, /* 1275 */ +0x1A83,0x0000,0x0000, 0x1A84,0x0000,0x0000, 0x1A85,0x0000,0x0000, /* 1278 */ +0x1A86,0x0000,0x0000, 0x1A87,0x0000,0x0000, 0x1A88,0x0000,0x0000, /* 127B */ +0x1A89,0x0000,0x0000, 0x1A8A,0x0000,0x0000, 0x1A8C,0x0000,0x0000, /* 127E */ +0x1A8D,0x0000,0x0000, 0x1A8E,0x0000,0x0000, 0x1A8F,0x0000,0x0000, /* 1281 */ +0x1A90,0x0000,0x0000, 0x1A91,0x0000,0x0000, 0x1A92,0x0000,0x0000, /* 1284 */ +0x1A93,0x0000,0x0000, 0x1A94,0x0000,0x0000, 0xFBC0,0x9289,0x0000, /* 1287 */ +0x1A95,0x0000,0x0000, 0x1A96,0x0000,0x0000, 0x1A97,0x0000,0x0000, /* 128A */ +0x1A98,0x0000,0x0000, 0xFBC0,0x928E,0x0000, 0xFBC0,0x928F,0x0000, /* 128D */ +0x1A99,0x0000,0x0000, 0x1A9A,0x0000,0x0000, 0x1A9B,0x0000,0x0000, /* 1290 */ +0x1A9C,0x0000,0x0000, 0x1A9D,0x0000,0x0000, 0x1A9E,0x0000,0x0000, /* 1293 */ +0x1A9F,0x0000,0x0000, 0x1AA0,0x0000,0x0000, 0x1AA2,0x0000,0x0000, /* 1296 */ +0x1AA3,0x0000,0x0000, 0x1AA4,0x0000,0x0000, 0x1AA5,0x0000,0x0000, /* 1299 */ +0x1AA6,0x0000,0x0000, 0x1AA7,0x0000,0x0000, 0x1AA8,0x0000,0x0000, /* 129C */ +0x1AA9,0x0000,0x0000, 0x1AAB,0x0000,0x0000, 0x1AAC,0x0000,0x0000, /* 129F */ +0x1AAD,0x0000,0x0000, 0x1AAE,0x0000,0x0000, 0x1AAF,0x0000,0x0000, /* 12A2 */ +0x1AB0,0x0000,0x0000, 0x1AB1,0x0000,0x0000, 0x1AB2,0x0000,0x0000, /* 12A5 */ +0x1AB4,0x0000,0x0000, 0x1AB5,0x0000,0x0000, 0x1AB6,0x0000,0x0000, /* 12A8 */ +0x1AB7,0x0000,0x0000, 0x1AB8,0x0000,0x0000, 0x1AB9,0x0000,0x0000, /* 12AB */ +0x1ABA,0x0000,0x0000, 0x1ABB,0x0000,0x0000, 0x1ABC,0x0000,0x0000, /* 12AE */ +0xFBC0,0x92B1,0x0000, 0x1ABD,0x0000,0x0000, 0x1ABE,0x0000,0x0000, /* 12B1 */ +0x1ABF,0x0000,0x0000, 0x1AC0,0x0000,0x0000, 0xFBC0,0x92B6,0x0000, /* 12B4 */ +0xFBC0,0x92B7,0x0000, 0x1AC1,0x0000,0x0000, 0x1AC2,0x0000,0x0000, /* 12B7 */ +0x1AC3,0x0000,0x0000, 0x1AC4,0x0000,0x0000, 0x1AC5,0x0000,0x0000, /* 12BA */ +0x1AC6,0x0000,0x0000, 0x1AC7,0x0000,0x0000, 0xFBC0,0x92BF,0x0000, /* 12BD */ +0x1AC8,0x0000,0x0000, 0xFBC0,0x92C1,0x0000, 0x1AC9,0x0000,0x0000, /* 12C0 */ +0x1ACA,0x0000,0x0000, 0x1ACB,0x0000,0x0000, 0x1ACC,0x0000,0x0000, /* 12C3 */ +0xFBC0,0x92C6,0x0000, 0xFBC0,0x92C7,0x0000, 0x1ACD,0x0000,0x0000, /* 12C6 */ +0x1ACE,0x0000,0x0000, 0x1ACF,0x0000,0x0000, 0x1AD0,0x0000,0x0000, /* 12C9 */ +0x1AD1,0x0000,0x0000, 0x1AD2,0x0000,0x0000, 0x1AD3,0x0000,0x0000, /* 12CC */ +0x1AD4,0x0000,0x0000, 0x1AD5,0x0000,0x0000, 0x1AD6,0x0000,0x0000, /* 12CF */ +0x1AD7,0x0000,0x0000, 0x1AD8,0x0000,0x0000, 0x1AD9,0x0000,0x0000, /* 12D2 */ +0x1ADA,0x0000,0x0000, 0x1ADB,0x0000,0x0000, 0xFBC0,0x92D7,0x0000, /* 12D5 */ +0x1ADC,0x0000,0x0000, 0x1ADD,0x0000,0x0000, 0x1ADE,0x0000,0x0000, /* 12D8 */ +0x1ADF,0x0000,0x0000, 0x1AE0,0x0000,0x0000, 0x1AE1,0x0000,0x0000, /* 12DB */ +0x1AE2,0x0000,0x0000, 0x1AE3,0x0000,0x0000, 0x1AE5,0x0000,0x0000, /* 12DE */ +0x1AE6,0x0000,0x0000, 0x1AE7,0x0000,0x0000, 0x1AE8,0x0000,0x0000, /* 12E1 */ +0x1AE9,0x0000,0x0000, 0x1AEA,0x0000,0x0000, 0x1AEB,0x0000,0x0000, /* 12E4 */ +0x1AEC,0x0000,0x0000, 0x1AED,0x0000,0x0000, 0x1AEE,0x0000,0x0000, /* 12E7 */ +0x1AEF,0x0000,0x0000, 0x1AF0,0x0000,0x0000, 0x1AF1,0x0000,0x0000, /* 12EA */ +0x1AF2,0x0000,0x0000, 0x1AF3,0x0000,0x0000, 0x1AF4,0x0000,0x0000, /* 12ED */ +0x1AF5,0x0000,0x0000, 0x1AF6,0x0000,0x0000, 0x1AF7,0x0000,0x0000, /* 12F0 */ +0x1AF8,0x0000,0x0000, 0x1AF9,0x0000,0x0000, 0x1AFA,0x0000,0x0000, /* 12F3 */ +0x1AFB,0x0000,0x0000, 0x1AFC,0x0000,0x0000, 0x1AFE,0x0000,0x0000, /* 12F6 */ +0x1AFF,0x0000,0x0000, 0x1B00,0x0000,0x0000, 0x1B01,0x0000,0x0000, /* 12F9 */ +0x1B02,0x0000,0x0000, 0x1B03,0x0000,0x0000, 0x1B04,0x0000,0x0000, /* 12FC */ +0x1B05,0x0000,0x0000 }; + +static const uint16 uca520_p013[]= { /* 1300 (3 weights per char) */ +0x1B07,0x0000,0x0000, 0x1B08,0x0000,0x0000, 0x1B09,0x0000,0x0000, /* 1300 */ +0x1B0A,0x0000,0x0000, 0x1B0B,0x0000,0x0000, 0x1B0C,0x0000,0x0000, /* 1303 */ +0x1B0D,0x0000,0x0000, 0x1B0E,0x0000,0x0000, 0x1B10,0x0000,0x0000, /* 1306 */ +0x1B11,0x0000,0x0000, 0x1B12,0x0000,0x0000, 0x1B13,0x0000,0x0000, /* 1309 */ +0x1B14,0x0000,0x0000, 0x1B15,0x0000,0x0000, 0x1B16,0x0000,0x0000, /* 130C */ +0x1B17,0x0000,0x0000, 0x1B18,0x0000,0x0000, 0xFBC0,0x9311,0x0000, /* 130F */ +0x1B19,0x0000,0x0000, 0x1B1A,0x0000,0x0000, 0x1B1B,0x0000,0x0000, /* 1312 */ +0x1B1C,0x0000,0x0000, 0xFBC0,0x9316,0x0000, 0xFBC0,0x9317,0x0000, /* 1315 */ +0x1B1D,0x0000,0x0000, 0x1B1E,0x0000,0x0000, 0x1B1F,0x0000,0x0000, /* 1318 */ +0x1B20,0x0000,0x0000, 0x1B21,0x0000,0x0000, 0x1B22,0x0000,0x0000, /* 131B */ +0x1B23,0x0000,0x0000, 0x1B24,0x0000,0x0000, 0x1B29,0x0000,0x0000, /* 131E */ +0x1B2A,0x0000,0x0000, 0x1B2B,0x0000,0x0000, 0x1B2C,0x0000,0x0000, /* 1321 */ +0x1B2D,0x0000,0x0000, 0x1B2E,0x0000,0x0000, 0x1B2F,0x0000,0x0000, /* 1324 */ +0x1B30,0x0000,0x0000, 0x1B32,0x0000,0x0000, 0x1B33,0x0000,0x0000, /* 1327 */ +0x1B34,0x0000,0x0000, 0x1B35,0x0000,0x0000, 0x1B36,0x0000,0x0000, /* 132A */ +0x1B37,0x0000,0x0000, 0x1B38,0x0000,0x0000, 0x1B39,0x0000,0x0000, /* 132D */ +0x1B3B,0x0000,0x0000, 0x1B3C,0x0000,0x0000, 0x1B3D,0x0000,0x0000, /* 1330 */ +0x1B3E,0x0000,0x0000, 0x1B3F,0x0000,0x0000, 0x1B40,0x0000,0x0000, /* 1333 */ +0x1B41,0x0000,0x0000, 0x1B42,0x0000,0x0000, 0x1B44,0x0000,0x0000, /* 1336 */ +0x1B45,0x0000,0x0000, 0x1B46,0x0000,0x0000, 0x1B47,0x0000,0x0000, /* 1339 */ +0x1B48,0x0000,0x0000, 0x1B49,0x0000,0x0000, 0x1B4A,0x0000,0x0000, /* 133C */ +0x1B4B,0x0000,0x0000, 0x1B4C,0x0000,0x0000, 0x1B4D,0x0000,0x0000, /* 133F */ +0x1B4E,0x0000,0x0000, 0x1B4F,0x0000,0x0000, 0x1B50,0x0000,0x0000, /* 1342 */ +0x1B51,0x0000,0x0000, 0x1B52,0x0000,0x0000, 0x1B53,0x0000,0x0000, /* 1345 */ +0x1B54,0x0000,0x0000, 0x1B55,0x0000,0x0000, 0x1B56,0x0000,0x0000, /* 1348 */ +0x1B57,0x0000,0x0000, 0x1B58,0x0000,0x0000, 0x1B59,0x0000,0x0000, /* 134B */ +0x1B5A,0x0000,0x0000, 0x1B5B,0x0000,0x0000, 0x1B60,0x0000,0x0000, /* 134E */ +0x1B61,0x0000,0x0000, 0x1B62,0x0000,0x0000, 0x1B63,0x0000,0x0000, /* 1351 */ +0x1B64,0x0000,0x0000, 0x1B65,0x0000,0x0000, 0x1B66,0x0000,0x0000, /* 1354 */ +0x1B67,0x0000,0x0000, 0x1B6D,0x0000,0x0000, 0x1B6E,0x0000,0x0000, /* 1357 */ +0x1B6F,0x0000,0x0000, 0xFBC0,0x935B,0x0000, 0xFBC0,0x935C,0x0000, /* 135A */ +0xFBC0,0x935D,0x0000, 0xFBC0,0x935E,0x0000, 0x0000,0x0000,0x0000, /* 135D */ +0x02B8,0x0000,0x0000, 0x025F,0x0000,0x0000, 0x0286,0x0000,0x0000, /* 1360 */ +0x0260,0x0000,0x0000, 0x0261,0x0000,0x0000, 0x0262,0x0000,0x0000, /* 1363 */ +0x0263,0x0000,0x0000, 0x0279,0x0000,0x0000, 0x02B9,0x0000,0x0000, /* 1366 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1369 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 136C */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 136F */ +0x1125,0x0000,0x0000, 0x1126,0x0000,0x0000, 0x1127,0x0000,0x0000, /* 1372 */ +0x1128,0x0000,0x0000, 0x1129,0x0000,0x0000, 0x112A,0x0000,0x0000, /* 1375 */ +0x112B,0x0000,0x0000, 0x112C,0x0000,0x0000, 0x112D,0x0000,0x0000, /* 1378 */ +0x112E,0x0000,0x0000, 0x112F,0x0000,0x0000, 0xFBC0,0x937D,0x0000, /* 137B */ +0xFBC0,0x937E,0x0000, 0xFBC0,0x937F,0x0000, 0x1A24,0x0000,0x0000, /* 137E */ +0x1A25,0x0000,0x0000, 0x1A26,0x0000,0x0000, 0x1A27,0x0000,0x0000, /* 1381 */ +0x1A6D,0x0000,0x0000, 0x1A6E,0x0000,0x0000, 0x1A6F,0x0000,0x0000, /* 1384 */ +0x1A70,0x0000,0x0000, 0x1B5C,0x0000,0x0000, 0x1B5D,0x0000,0x0000, /* 1387 */ +0x1B5E,0x0000,0x0000, 0x1B5F,0x0000,0x0000, 0x1B68,0x0000,0x0000, /* 138A */ +0x1B69,0x0000,0x0000, 0x1B6A,0x0000,0x0000, 0x1B6B,0x0000,0x0000, /* 138D */ +0x041C,0x0000,0x0000, 0x041D,0x0000,0x0000, 0x041E,0x0000,0x0000, /* 1390 */ +0x041F,0x0000,0x0000, 0x0420,0x0000,0x0000, 0x0421,0x0000,0x0000, /* 1393 */ +0x0422,0x0000,0x0000, 0x0423,0x0000,0x0000, 0x0424,0x0000,0x0000, /* 1396 */ +0x0425,0x0000,0x0000, 0xFBC0,0x939A,0x0000, 0xFBC0,0x939B,0x0000, /* 1399 */ +0xFBC0,0x939C,0x0000, 0xFBC0,0x939D,0x0000, 0xFBC0,0x939E,0x0000, /* 139C */ +0xFBC0,0x939F,0x0000, 0x24CE,0x0000,0x0000, 0x24CF,0x0000,0x0000, /* 139F */ +0x24D0,0x0000,0x0000, 0x24D1,0x0000,0x0000, 0x24D2,0x0000,0x0000, /* 13A2 */ +0x24D3,0x0000,0x0000, 0x24D4,0x0000,0x0000, 0x24D5,0x0000,0x0000, /* 13A5 */ +0x24D6,0x0000,0x0000, 0x24D7,0x0000,0x0000, 0x24D8,0x0000,0x0000, /* 13A8 */ +0x24D9,0x0000,0x0000, 0x24DA,0x0000,0x0000, 0x24DB,0x0000,0x0000, /* 13AB */ +0x24DC,0x0000,0x0000, 0x24DD,0x0000,0x0000, 0x24DE,0x0000,0x0000, /* 13AE */ +0x24DF,0x0000,0x0000, 0x24E0,0x0000,0x0000, 0x24E1,0x0000,0x0000, /* 13B1 */ +0x24E2,0x0000,0x0000, 0x24E3,0x0000,0x0000, 0x24E4,0x0000,0x0000, /* 13B4 */ +0x24E5,0x0000,0x0000, 0x24E6,0x0000,0x0000, 0x24E7,0x0000,0x0000, /* 13B7 */ +0x24E8,0x0000,0x0000, 0x24E9,0x0000,0x0000, 0x24EA,0x0000,0x0000, /* 13BA */ +0x24EB,0x0000,0x0000, 0x24EC,0x0000,0x0000, 0x24ED,0x0000,0x0000, /* 13BD */ +0x24EE,0x0000,0x0000, 0x24EF,0x0000,0x0000, 0x24F0,0x0000,0x0000, /* 13C0 */ +0x24F1,0x0000,0x0000, 0x24F2,0x0000,0x0000, 0x24F3,0x0000,0x0000, /* 13C3 */ +0x24F4,0x0000,0x0000, 0x24F5,0x0000,0x0000, 0x24F6,0x0000,0x0000, /* 13C6 */ +0x24F7,0x0000,0x0000, 0x24F8,0x0000,0x0000, 0x24F9,0x0000,0x0000, /* 13C9 */ +0x24FA,0x0000,0x0000, 0x24FB,0x0000,0x0000, 0x24FC,0x0000,0x0000, /* 13CC */ +0x24FD,0x0000,0x0000, 0x24FE,0x0000,0x0000, 0x24FF,0x0000,0x0000, /* 13CF */ +0x2500,0x0000,0x0000, 0x2501,0x0000,0x0000, 0x2502,0x0000,0x0000, /* 13D2 */ +0x2503,0x0000,0x0000, 0x2504,0x0000,0x0000, 0x2505,0x0000,0x0000, /* 13D5 */ +0x2506,0x0000,0x0000, 0x2507,0x0000,0x0000, 0x2508,0x0000,0x0000, /* 13D8 */ +0x2509,0x0000,0x0000, 0x250A,0x0000,0x0000, 0x250B,0x0000,0x0000, /* 13DB */ +0x250C,0x0000,0x0000, 0x250D,0x0000,0x0000, 0x250E,0x0000,0x0000, /* 13DE */ +0x250F,0x0000,0x0000, 0x2510,0x0000,0x0000, 0x2511,0x0000,0x0000, /* 13E1 */ +0x2512,0x0000,0x0000, 0x2513,0x0000,0x0000, 0x2514,0x0000,0x0000, /* 13E4 */ +0x2515,0x0000,0x0000, 0x2516,0x0000,0x0000, 0x2517,0x0000,0x0000, /* 13E7 */ +0x2518,0x0000,0x0000, 0x2519,0x0000,0x0000, 0x251A,0x0000,0x0000, /* 13EA */ +0x251B,0x0000,0x0000, 0x251C,0x0000,0x0000, 0x251D,0x0000,0x0000, /* 13ED */ +0x251E,0x0000,0x0000, 0x251F,0x0000,0x0000, 0x2520,0x0000,0x0000, /* 13F0 */ +0x2521,0x0000,0x0000, 0x2522,0x0000,0x0000, 0xFBC0,0x93F5,0x0000, /* 13F3 */ +0xFBC0,0x93F6,0x0000, 0xFBC0,0x93F7,0x0000, 0xFBC0,0x93F8,0x0000, /* 13F6 */ +0xFBC0,0x93F9,0x0000, 0xFBC0,0x93FA,0x0000, 0xFBC0,0x93FB,0x0000, /* 13F9 */ +0xFBC0,0x93FC,0x0000, 0xFBC0,0x93FD,0x0000, 0xFBC0,0x93FE,0x0000, /* 13FC */ +0xFBC0,0x93FF,0x0000 }; + +static const uint16 uca520_p014[]= { /* 1400 (2 weights per char) */ +0x0225,0x0000, 0x2523,0x0000, 0x2524,0x0000, 0x2525,0x0000, /* 1400 */ +0x2526,0x0000, 0x2527,0x0000, 0x2528,0x0000, 0x2529,0x0000, /* 1404 */ +0x252A,0x0000, 0x252B,0x0000, 0x252C,0x0000, 0x252D,0x0000, /* 1408 */ +0x252E,0x0000, 0x252F,0x0000, 0x2530,0x0000, 0x2531,0x0000, /* 140C */ +0x2532,0x0000, 0x2533,0x0000, 0x2534,0x0000, 0x2535,0x0000, /* 1410 */ +0x2536,0x0000, 0x2537,0x0000, 0x2538,0x0000, 0x2539,0x0000, /* 1414 */ +0x253A,0x0000, 0x253B,0x0000, 0x253C,0x0000, 0x253D,0x0000, /* 1418 */ +0x253E,0x0000, 0x253F,0x0000, 0x2540,0x0000, 0x2541,0x0000, /* 141C */ +0x2542,0x0000, 0x2543,0x0000, 0x2544,0x0000, 0x2545,0x0000, /* 1420 */ +0x2546,0x0000, 0x2547,0x0000, 0x2548,0x0000, 0x2549,0x0000, /* 1424 */ +0x254A,0x0000, 0x254B,0x0000, 0x254C,0x0000, 0x254D,0x0000, /* 1428 */ +0x254E,0x0000, 0x254F,0x0000, 0x2550,0x0000, 0x2551,0x0000, /* 142C */ +0x2552,0x0000, 0x2553,0x0000, 0x2554,0x0000, 0x2555,0x0000, /* 1430 */ +0x2556,0x0000, 0x2557,0x0000, 0x2558,0x0000, 0x2559,0x0000, /* 1434 */ +0x255A,0x0000, 0x255B,0x0000, 0x255C,0x0000, 0x255D,0x0000, /* 1438 */ +0x255E,0x0000, 0x255F,0x0000, 0x2560,0x0000, 0x2561,0x0000, /* 143C */ +0x2562,0x0000, 0x2563,0x0000, 0x2564,0x0000, 0x2565,0x0000, /* 1440 */ +0x2566,0x0000, 0x2567,0x0000, 0x2568,0x0000, 0x2569,0x0000, /* 1444 */ +0x256A,0x0000, 0x256B,0x0000, 0x256C,0x0000, 0x256D,0x0000, /* 1448 */ +0x256E,0x0000, 0x256F,0x0000, 0x2570,0x0000, 0x2571,0x0000, /* 144C */ +0x2572,0x0000, 0x2573,0x0000, 0x2574,0x0000, 0x2575,0x0000, /* 1450 */ +0x2576,0x0000, 0x2577,0x0000, 0x2578,0x0000, 0x2579,0x0000, /* 1454 */ +0x257A,0x0000, 0x257B,0x0000, 0x257C,0x0000, 0x257D,0x0000, /* 1458 */ +0x257E,0x0000, 0x257F,0x0000, 0x2580,0x0000, 0x2581,0x0000, /* 145C */ +0x2582,0x0000, 0x2583,0x0000, 0x2584,0x0000, 0x2585,0x0000, /* 1460 */ +0x2586,0x0000, 0x2587,0x0000, 0x2588,0x0000, 0x2589,0x0000, /* 1464 */ +0x258A,0x0000, 0x258B,0x0000, 0x258C,0x0000, 0x258D,0x0000, /* 1468 */ +0x258E,0x0000, 0x258F,0x0000, 0x2590,0x0000, 0x2591,0x0000, /* 146C */ +0x2592,0x0000, 0x2593,0x0000, 0x2594,0x0000, 0x2595,0x0000, /* 1470 */ +0x2596,0x0000, 0x2597,0x0000, 0x2598,0x0000, 0x2599,0x0000, /* 1474 */ +0x259A,0x0000, 0x259B,0x0000, 0x259C,0x0000, 0x259D,0x0000, /* 1478 */ +0x259E,0x0000, 0x259F,0x0000, 0x25A0,0x0000, 0x25A1,0x0000, /* 147C */ +0x25A2,0x0000, 0x25A3,0x0000, 0x25A4,0x0000, 0x25A5,0x0000, /* 1480 */ +0x25A6,0x0000, 0x25A7,0x0000, 0x25A8,0x0000, 0x25A9,0x0000, /* 1484 */ +0x25AA,0x0000, 0x25AB,0x0000, 0x25AC,0x0000, 0x25AD,0x0000, /* 1488 */ +0x25AE,0x0000, 0x25AF,0x0000, 0x25B0,0x0000, 0x25B1,0x0000, /* 148C */ +0x25B2,0x0000, 0x25B3,0x0000, 0x25B4,0x0000, 0x25B5,0x0000, /* 1490 */ +0x25B6,0x0000, 0x25B7,0x0000, 0x25B8,0x0000, 0x25B9,0x0000, /* 1494 */ +0x25BA,0x0000, 0x25BB,0x0000, 0x25BC,0x0000, 0x25BD,0x0000, /* 1498 */ +0x25BE,0x0000, 0x25BF,0x0000, 0x25C0,0x0000, 0x25C1,0x0000, /* 149C */ +0x25C2,0x0000, 0x25C3,0x0000, 0x25C4,0x0000, 0x25C5,0x0000, /* 14A0 */ +0x25C6,0x0000, 0x25C7,0x0000, 0x25C8,0x0000, 0x25C9,0x0000, /* 14A4 */ +0x25CA,0x0000, 0x25CB,0x0000, 0x25CC,0x0000, 0x25CD,0x0000, /* 14A8 */ +0x25CE,0x0000, 0x25CF,0x0000, 0x25D0,0x0000, 0x25D1,0x0000, /* 14AC */ +0x25D2,0x0000, 0x25D3,0x0000, 0x25D4,0x0000, 0x25D5,0x0000, /* 14B0 */ +0x25D6,0x0000, 0x25D7,0x0000, 0x25D8,0x0000, 0x25D9,0x0000, /* 14B4 */ +0x25DA,0x0000, 0x25DB,0x0000, 0x25DC,0x0000, 0x25DD,0x0000, /* 14B8 */ +0x25DE,0x0000, 0x25DF,0x0000, 0x25E0,0x0000, 0x25E1,0x0000, /* 14BC */ +0x25E2,0x0000, 0x25E3,0x0000, 0x25E4,0x0000, 0x25E5,0x0000, /* 14C0 */ +0x25E6,0x0000, 0x25E7,0x0000, 0x25E8,0x0000, 0x25E9,0x0000, /* 14C4 */ +0x25EA,0x0000, 0x25EB,0x0000, 0x25EC,0x0000, 0x25ED,0x0000, /* 14C8 */ +0x25EE,0x0000, 0x25EF,0x0000, 0x25F0,0x0000, 0x25F1,0x0000, /* 14CC */ +0x25F2,0x0000, 0x25F3,0x0000, 0x25F4,0x0000, 0x25F5,0x0000, /* 14D0 */ +0x25F6,0x0000, 0x25F7,0x0000, 0x25F8,0x0000, 0x25F9,0x0000, /* 14D4 */ +0x25FA,0x0000, 0x25FB,0x0000, 0x25FC,0x0000, 0x25FD,0x0000, /* 14D8 */ +0x25FE,0x0000, 0x25FF,0x0000, 0x2600,0x0000, 0x2601,0x0000, /* 14DC */ +0x2602,0x0000, 0x2603,0x0000, 0x2604,0x0000, 0x2605,0x0000, /* 14E0 */ +0x2606,0x0000, 0x2607,0x0000, 0x2608,0x0000, 0x2609,0x0000, /* 14E4 */ +0x260A,0x0000, 0x260B,0x0000, 0x260C,0x0000, 0x260D,0x0000, /* 14E8 */ +0x260E,0x0000, 0x260F,0x0000, 0x2610,0x0000, 0x2611,0x0000, /* 14EC */ +0x2612,0x0000, 0x2613,0x0000, 0x2614,0x0000, 0x2615,0x0000, /* 14F0 */ +0x2616,0x0000, 0x2617,0x0000, 0x2618,0x0000, 0x2619,0x0000, /* 14F4 */ +0x261A,0x0000, 0x261B,0x0000, 0x261C,0x0000, 0x261D,0x0000, /* 14F8 */ +0x261E,0x0000, 0x261F,0x0000, 0x2620,0x0000, 0x2621,0x0000 /* 14FC */ +}; + +static const uint16 uca520_p015[]= { /* 1500 (2 weights per char) */ +0x2622,0x0000, 0x2623,0x0000, 0x2624,0x0000, 0x2625,0x0000, /* 1500 */ +0x2626,0x0000, 0x2627,0x0000, 0x2628,0x0000, 0x2629,0x0000, /* 1504 */ +0x262A,0x0000, 0x262B,0x0000, 0x262C,0x0000, 0x262D,0x0000, /* 1508 */ +0x262E,0x0000, 0x262F,0x0000, 0x2630,0x0000, 0x2631,0x0000, /* 150C */ +0x2632,0x0000, 0x2633,0x0000, 0x2634,0x0000, 0x2635,0x0000, /* 1510 */ +0x2636,0x0000, 0x2637,0x0000, 0x2638,0x0000, 0x2639,0x0000, /* 1514 */ +0x263A,0x0000, 0x263B,0x0000, 0x263C,0x0000, 0x263D,0x0000, /* 1518 */ +0x263E,0x0000, 0x263F,0x0000, 0x2640,0x0000, 0x2641,0x0000, /* 151C */ +0x2642,0x0000, 0x2643,0x0000, 0x2644,0x0000, 0x2645,0x0000, /* 1520 */ +0x2646,0x0000, 0x2647,0x0000, 0x2648,0x0000, 0x2649,0x0000, /* 1524 */ +0x264A,0x0000, 0x264B,0x0000, 0x264C,0x0000, 0x264D,0x0000, /* 1528 */ +0x264E,0x0000, 0x264F,0x0000, 0x2650,0x0000, 0x2651,0x0000, /* 152C */ +0x2652,0x0000, 0x2653,0x0000, 0x2654,0x0000, 0x2655,0x0000, /* 1530 */ +0x2656,0x0000, 0x2657,0x0000, 0x2658,0x0000, 0x2659,0x0000, /* 1534 */ +0x265A,0x0000, 0x265B,0x0000, 0x265C,0x0000, 0x265D,0x0000, /* 1538 */ +0x265E,0x0000, 0x265F,0x0000, 0x2660,0x0000, 0x2661,0x0000, /* 153C */ +0x2662,0x0000, 0x2663,0x0000, 0x2664,0x0000, 0x2665,0x0000, /* 1540 */ +0x2666,0x0000, 0x2667,0x0000, 0x2668,0x0000, 0x2669,0x0000, /* 1544 */ +0x266A,0x0000, 0x266B,0x0000, 0x266C,0x0000, 0x266D,0x0000, /* 1548 */ +0x266E,0x0000, 0x266F,0x0000, 0x2670,0x0000, 0x2671,0x0000, /* 154C */ +0x2672,0x0000, 0x2673,0x0000, 0x2674,0x0000, 0x2675,0x0000, /* 1550 */ +0x2676,0x0000, 0x2677,0x0000, 0x2678,0x0000, 0x2679,0x0000, /* 1554 */ +0x267A,0x0000, 0x267B,0x0000, 0x267C,0x0000, 0x267D,0x0000, /* 1558 */ +0x267E,0x0000, 0x267F,0x0000, 0x2680,0x0000, 0x2681,0x0000, /* 155C */ +0x2682,0x0000, 0x2683,0x0000, 0x2684,0x0000, 0x2685,0x0000, /* 1560 */ +0x2686,0x0000, 0x2687,0x0000, 0x2688,0x0000, 0x2689,0x0000, /* 1564 */ +0x268A,0x0000, 0x268B,0x0000, 0x268C,0x0000, 0x268D,0x0000, /* 1568 */ +0x268E,0x0000, 0x268F,0x0000, 0x2690,0x0000, 0x2691,0x0000, /* 156C */ +0x2692,0x0000, 0x2693,0x0000, 0x2694,0x0000, 0x2695,0x0000, /* 1570 */ +0x2696,0x0000, 0x2697,0x0000, 0x2698,0x0000, 0x2699,0x0000, /* 1574 */ +0x269A,0x0000, 0x269B,0x0000, 0x269C,0x0000, 0x269D,0x0000, /* 1578 */ +0x26D0,0x0000, 0x269E,0x0000, 0x26A0,0x0000, 0x26A1,0x0000, /* 157C */ +0x26A2,0x0000, 0x26A3,0x0000, 0x26A4,0x0000, 0x26A5,0x0000, /* 1580 */ +0x26A6,0x0000, 0x26A7,0x0000, 0x26A8,0x0000, 0x26A9,0x0000, /* 1584 */ +0x26AA,0x0000, 0x26AB,0x0000, 0x26AC,0x0000, 0x26AD,0x0000, /* 1588 */ +0x26AE,0x0000, 0x26AF,0x0000, 0x26B1,0x0000, 0x26B2,0x0000, /* 158C */ +0x26B3,0x0000, 0x26B4,0x0000, 0x26B5,0x0000, 0x26B6,0x0000, /* 1590 */ +0x26B7,0x0000, 0x26B8,0x0000, 0x26BF,0x0000, 0x26C0,0x0000, /* 1594 */ +0x26C1,0x0000, 0x26C2,0x0000, 0x26C3,0x0000, 0x26C4,0x0000, /* 1598 */ +0x26C5,0x0000, 0x26C6,0x0000, 0x26C7,0x0000, 0x26C8,0x0000, /* 159C */ +0x26C9,0x0000, 0x26CA,0x0000, 0x26CB,0x0000, 0x26CC,0x0000, /* 15A0 */ +0x26CD,0x0000, 0x26CE,0x0000, 0x26CF,0x0000, 0x26D1,0x0000, /* 15A4 */ +0x26D2,0x0000, 0x26D3,0x0000, 0x26D4,0x0000, 0x26D5,0x0000, /* 15A8 */ +0x26D6,0x0000, 0x26D7,0x0000, 0x26D8,0x0000, 0x26D9,0x0000, /* 15AC */ +0x26DA,0x0000, 0x26DB,0x0000, 0x26DC,0x0000, 0x26DD,0x0000, /* 15B0 */ +0x26DE,0x0000, 0x26DF,0x0000, 0x26E0,0x0000, 0x26E1,0x0000, /* 15B4 */ +0x26E2,0x0000, 0x26E3,0x0000, 0x26E4,0x0000, 0x26E5,0x0000, /* 15B8 */ +0x26E6,0x0000, 0x26E7,0x0000, 0x26E8,0x0000, 0x26E9,0x0000, /* 15BC */ +0x26EA,0x0000, 0x26EB,0x0000, 0x26EC,0x0000, 0x26ED,0x0000, /* 15C0 */ +0x26EE,0x0000, 0x26EF,0x0000, 0x26F0,0x0000, 0x26F1,0x0000, /* 15C4 */ +0x26F2,0x0000, 0x26F3,0x0000, 0x26F4,0x0000, 0x26F5,0x0000, /* 15C8 */ +0x26F6,0x0000, 0x26F7,0x0000, 0x26F8,0x0000, 0x26F9,0x0000, /* 15CC */ +0x26FA,0x0000, 0x26FB,0x0000, 0x26FC,0x0000, 0x26FD,0x0000, /* 15D0 */ +0x26FE,0x0000, 0x26FF,0x0000, 0x2700,0x0000, 0x2701,0x0000, /* 15D4 */ +0x2702,0x0000, 0x2703,0x0000, 0x2704,0x0000, 0x2705,0x0000, /* 15D8 */ +0x2706,0x0000, 0x2707,0x0000, 0x2708,0x0000, 0x2709,0x0000, /* 15DC */ +0x270A,0x0000, 0x270B,0x0000, 0x270C,0x0000, 0x270D,0x0000, /* 15E0 */ +0x270E,0x0000, 0x270F,0x0000, 0x2710,0x0000, 0x2711,0x0000, /* 15E4 */ +0x2712,0x0000, 0x2713,0x0000, 0x2714,0x0000, 0x2715,0x0000, /* 15E8 */ +0x2716,0x0000, 0x2717,0x0000, 0x2718,0x0000, 0x2719,0x0000, /* 15EC */ +0x271A,0x0000, 0x271B,0x0000, 0x271C,0x0000, 0x271D,0x0000, /* 15F0 */ +0x271E,0x0000, 0x271F,0x0000, 0x2720,0x0000, 0x2721,0x0000, /* 15F4 */ +0x2722,0x0000, 0x2723,0x0000, 0x2724,0x0000, 0x2725,0x0000, /* 15F8 */ +0x2726,0x0000, 0x2727,0x0000, 0x2728,0x0000, 0x2729,0x0000 /* 15FC */ +}; + +static const uint16 uca520_p016[]= { /* 1600 (3 weights per char) */ +0x272A,0x0000,0x0000, 0x272B,0x0000,0x0000, 0x272C,0x0000,0x0000, /* 1600 */ +0x272D,0x0000,0x0000, 0x272E,0x0000,0x0000, 0x272F,0x0000,0x0000, /* 1603 */ +0x2730,0x0000,0x0000, 0x2731,0x0000,0x0000, 0x2732,0x0000,0x0000, /* 1606 */ +0x2733,0x0000,0x0000, 0x2734,0x0000,0x0000, 0x2735,0x0000,0x0000, /* 1609 */ +0x2736,0x0000,0x0000, 0x2737,0x0000,0x0000, 0x2738,0x0000,0x0000, /* 160C */ +0x2739,0x0000,0x0000, 0x273A,0x0000,0x0000, 0x273B,0x0000,0x0000, /* 160F */ +0x273C,0x0000,0x0000, 0x273D,0x0000,0x0000, 0x273E,0x0000,0x0000, /* 1612 */ +0x273F,0x0000,0x0000, 0x2740,0x0000,0x0000, 0x2741,0x0000,0x0000, /* 1615 */ +0x2742,0x0000,0x0000, 0x2743,0x0000,0x0000, 0x2744,0x0000,0x0000, /* 1618 */ +0x2745,0x0000,0x0000, 0x2746,0x0000,0x0000, 0x2747,0x0000,0x0000, /* 161B */ +0x2748,0x0000,0x0000, 0x2749,0x0000,0x0000, 0x274A,0x0000,0x0000, /* 161E */ +0x274B,0x0000,0x0000, 0x274C,0x0000,0x0000, 0x274D,0x0000,0x0000, /* 1621 */ +0x274E,0x0000,0x0000, 0x274F,0x0000,0x0000, 0x2750,0x0000,0x0000, /* 1624 */ +0x2751,0x0000,0x0000, 0x2752,0x0000,0x0000, 0x2753,0x0000,0x0000, /* 1627 */ +0x2754,0x0000,0x0000, 0x2755,0x0000,0x0000, 0x2756,0x0000,0x0000, /* 162A */ +0x2757,0x0000,0x0000, 0x2758,0x0000,0x0000, 0x2759,0x0000,0x0000, /* 162D */ +0x275A,0x0000,0x0000, 0x275B,0x0000,0x0000, 0x275C,0x0000,0x0000, /* 1630 */ +0x275D,0x0000,0x0000, 0x275E,0x0000,0x0000, 0x275F,0x0000,0x0000, /* 1633 */ +0x2760,0x0000,0x0000, 0x2761,0x0000,0x0000, 0x2762,0x0000,0x0000, /* 1636 */ +0x2763,0x0000,0x0000, 0x2764,0x0000,0x0000, 0x2765,0x0000,0x0000, /* 1639 */ +0x2766,0x0000,0x0000, 0x2767,0x0000,0x0000, 0x2768,0x0000,0x0000, /* 163C */ +0x2769,0x0000,0x0000, 0x276A,0x0000,0x0000, 0x276B,0x0000,0x0000, /* 163F */ +0x276C,0x0000,0x0000, 0x276D,0x0000,0x0000, 0x276E,0x0000,0x0000, /* 1642 */ +0x276F,0x0000,0x0000, 0x2770,0x0000,0x0000, 0x2771,0x0000,0x0000, /* 1645 */ +0x2772,0x0000,0x0000, 0x2773,0x0000,0x0000, 0x2774,0x0000,0x0000, /* 1648 */ +0x2775,0x0000,0x0000, 0x2776,0x0000,0x0000, 0x2777,0x0000,0x0000, /* 164B */ +0x2778,0x0000,0x0000, 0x2779,0x0000,0x0000, 0x277A,0x0000,0x0000, /* 164E */ +0x277B,0x0000,0x0000, 0x277C,0x0000,0x0000, 0x277D,0x0000,0x0000, /* 1651 */ +0x277E,0x0000,0x0000, 0x277F,0x0000,0x0000, 0x2780,0x0000,0x0000, /* 1654 */ +0x2781,0x0000,0x0000, 0x2782,0x0000,0x0000, 0x2783,0x0000,0x0000, /* 1657 */ +0x2784,0x0000,0x0000, 0x2785,0x0000,0x0000, 0x2786,0x0000,0x0000, /* 165A */ +0x2787,0x0000,0x0000, 0x2788,0x0000,0x0000, 0x2789,0x0000,0x0000, /* 165D */ +0x278A,0x0000,0x0000, 0x278B,0x0000,0x0000, 0x278C,0x0000,0x0000, /* 1660 */ +0x278D,0x0000,0x0000, 0x278E,0x0000,0x0000, 0x278F,0x0000,0x0000, /* 1663 */ +0x2790,0x0000,0x0000, 0x2791,0x0000,0x0000, 0x2792,0x0000,0x0000, /* 1666 */ +0x2793,0x0000,0x0000, 0x2794,0x0000,0x0000, 0x2795,0x0000,0x0000, /* 1669 */ +0x2796,0x0000,0x0000, 0x03D8,0x0000,0x0000, 0x0289,0x0000,0x0000, /* 166C */ +0x269F,0x0000,0x0000, 0x26B0,0x0000,0x0000, 0x26B9,0x0000,0x0000, /* 166F */ +0x26BA,0x0000,0x0000, 0x26BB,0x0000,0x0000, 0x26BC,0x0000,0x0000, /* 1672 */ +0x26BD,0x0000,0x0000, 0x26BE,0x0000,0x0000, 0x2797,0x0000,0x0000, /* 1675 */ +0x2798,0x0000,0x0000, 0x2799,0x0000,0x0000, 0x279A,0x0000,0x0000, /* 1678 */ +0x279B,0x0000,0x0000, 0x279C,0x0000,0x0000, 0x279D,0x0000,0x0000, /* 167B */ +0x279E,0x0000,0x0000, 0x279F,0x0000,0x0000, 0x020B,0x0000,0x0000, /* 167E */ +0x27E6,0x0000,0x0000, 0x27E7,0x0000,0x0000, 0x27E8,0x0000,0x0000, /* 1681 */ +0x27E9,0x0000,0x0000, 0x27EA,0x0000,0x0000, 0x27EB,0x0000,0x0000, /* 1684 */ +0x27EC,0x0000,0x0000, 0x27ED,0x0000,0x0000, 0x27EE,0x0000,0x0000, /* 1687 */ +0x27EF,0x0000,0x0000, 0x27F0,0x0000,0x0000, 0x27F1,0x0000,0x0000, /* 168A */ +0x27F2,0x0000,0x0000, 0x27F3,0x0000,0x0000, 0x27F4,0x0000,0x0000, /* 168D */ +0x27F5,0x0000,0x0000, 0x27F6,0x0000,0x0000, 0x27F7,0x0000,0x0000, /* 1690 */ +0x27F8,0x0000,0x0000, 0x27F9,0x0000,0x0000, 0x27FA,0x0000,0x0000, /* 1693 */ +0x27FB,0x0000,0x0000, 0x27FC,0x0000,0x0000, 0x27FD,0x0000,0x0000, /* 1696 */ +0x27FE,0x0000,0x0000, 0x27FF,0x0000,0x0000, 0x0309,0x0000,0x0000, /* 1699 */ +0x030A,0x0000,0x0000, 0xFBC0,0x969D,0x0000, 0xFBC0,0x969E,0x0000, /* 169C */ +0xFBC0,0x969F,0x0000, 0x2800,0x0000,0x0000, 0x2800,0x0000,0x0000, /* 169F */ +0x2801,0x0000,0x0000, 0x281D,0x0000,0x0000, 0x2801,0x0000,0x0000, /* 16A2 */ +0x2801,0x0000,0x0000, 0x2802,0x0000,0x0000, 0x2802,0x0000,0x0000, /* 16A5 */ +0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x281B,0x0000,0x0000, /* 16A8 */ +0x281C,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, /* 16AB */ +0x2803,0x0000,0x0000, 0x2804,0x0000,0x0000, 0x2805,0x0000,0x0000, /* 16AE */ +0x2806,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B1 */ +0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B4 */ +0x2808,0x0000,0x0000, 0x2820,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16B7 */ +0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, /* 16BA */ +0x280A,0x0000,0x0000, 0x280B,0x0000,0x0000, 0x280B,0x0000,0x0000, /* 16BD */ +0x280B,0x0000,0x0000, 0x280C,0x0000,0x0000, 0x280C,0x0000,0x0000, /* 16C0 */ +0x280D,0x0000,0x0000, 0x280D,0x0000,0x0000, 0x280E,0x0000,0x0000, /* 16C3 */ +0x280E,0x0000,0x0000, 0x280F,0x0000,0x0000, 0x2810,0x0000,0x0000, /* 16C6 */ +0x2811,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16C9 */ +0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16CC */ +0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, /* 16CF */ +0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, /* 16D2 */ +0x2810,0x0000,0x0000, 0x2815,0x0000,0x0000, 0x2816,0x0000,0x0000, /* 16D5 */ +0x2816,0x0000,0x0000, 0x2816,0x0000,0x0000, 0x2817,0x0000,0x0000, /* 16D8 */ +0x2817,0x0000,0x0000, 0x2818,0x0000,0x0000, 0x2818,0x0000,0x0000, /* 16DB */ +0x2819,0x0000,0x0000, 0x281A,0x0000,0x0000, 0x281E,0x0000,0x0000, /* 16DE */ +0x2822,0x0000,0x0000, 0x2823,0x0000,0x0000, 0x281F,0x0000,0x0000, /* 16E1 */ +0x2821,0x0000,0x0000, 0x2824,0x0000,0x0000, 0x2825,0x0000,0x0000, /* 16E4 */ +0x2825,0x0000,0x0000, 0x2825,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16E7 */ +0x2812,0x0000,0x0000, 0x026A,0x0000,0x0000, 0x026B,0x0000,0x0000, /* 16EA */ +0x026C,0x0000,0x0000, 0x280E,0x2817,0x0000, 0x2816,0x2816,0x0000, /* 16ED */ +0x2802,0x2802,0x0000, 0xFBC0,0x96F1,0x0000, 0xFBC0,0x96F2,0x0000, /* 16F0 */ +0xFBC0,0x96F3,0x0000, 0xFBC0,0x96F4,0x0000, 0xFBC0,0x96F5,0x0000, /* 16F3 */ +0xFBC0,0x96F6,0x0000, 0xFBC0,0x96F7,0x0000, 0xFBC0,0x96F8,0x0000, /* 16F6 */ +0xFBC0,0x96F9,0x0000, 0xFBC0,0x96FA,0x0000, 0xFBC0,0x96FB,0x0000, /* 16F9 */ +0xFBC0,0x96FC,0x0000, 0xFBC0,0x96FD,0x0000, 0xFBC0,0x96FE,0x0000, /* 16FC */ +0xFBC0,0x96FF,0x0000 }; + +static const uint16 uca520_p017[]= { /* 1700 (3 weights per char) */ +0x211D,0x0000,0x0000, 0x211E,0x0000,0x0000, 0x211F,0x0000,0x0000, /* 1700 */ +0x2120,0x0000,0x0000, 0x2121,0x0000,0x0000, 0x2122,0x0000,0x0000, /* 1703 */ +0x2123,0x0000,0x0000, 0x2124,0x0000,0x0000, 0x2125,0x0000,0x0000, /* 1706 */ +0x2126,0x0000,0x0000, 0x2127,0x0000,0x0000, 0x2128,0x0000,0x0000, /* 1709 */ +0x2129,0x0000,0x0000, 0xFBC0,0x970D,0x0000, 0x212A,0x0000,0x0000, /* 170C */ +0x212B,0x0000,0x0000, 0x212C,0x0000,0x0000, 0x212D,0x0000,0x0000, /* 170F */ +0x212E,0x0000,0x0000, 0x212F,0x0000,0x0000, 0x2130,0x0000,0x0000, /* 1712 */ +0xFBC0,0x9715,0x0000, 0xFBC0,0x9716,0x0000, 0xFBC0,0x9717,0x0000, /* 1715 */ +0xFBC0,0x9718,0x0000, 0xFBC0,0x9719,0x0000, 0xFBC0,0x971A,0x0000, /* 1718 */ +0xFBC0,0x971B,0x0000, 0xFBC0,0x971C,0x0000, 0xFBC0,0x971D,0x0000, /* 171B */ +0xFBC0,0x971E,0x0000, 0xFBC0,0x971F,0x0000, 0x2131,0x0000,0x0000, /* 171E */ +0x2132,0x0000,0x0000, 0x2133,0x0000,0x0000, 0x2134,0x0000,0x0000, /* 1721 */ +0x2135,0x0000,0x0000, 0x2136,0x0000,0x0000, 0x2137,0x0000,0x0000, /* 1724 */ +0x2138,0x0000,0x0000, 0x2139,0x0000,0x0000, 0x213A,0x0000,0x0000, /* 1727 */ +0x213B,0x0000,0x0000, 0x213C,0x0000,0x0000, 0x213D,0x0000,0x0000, /* 172A */ +0x213E,0x0000,0x0000, 0x213F,0x0000,0x0000, 0x2140,0x0000,0x0000, /* 172D */ +0x2141,0x0000,0x0000, 0x2142,0x0000,0x0000, 0x2143,0x0000,0x0000, /* 1730 */ +0x2144,0x0000,0x0000, 0x2145,0x0000,0x0000, 0x029C,0x0000,0x0000, /* 1733 */ +0x029D,0x0000,0x0000, 0xFBC0,0x9737,0x0000, 0xFBC0,0x9738,0x0000, /* 1736 */ +0xFBC0,0x9739,0x0000, 0xFBC0,0x973A,0x0000, 0xFBC0,0x973B,0x0000, /* 1739 */ +0xFBC0,0x973C,0x0000, 0xFBC0,0x973D,0x0000, 0xFBC0,0x973E,0x0000, /* 173C */ +0xFBC0,0x973F,0x0000, 0x2146,0x0000,0x0000, 0x2147,0x0000,0x0000, /* 173F */ +0x2148,0x0000,0x0000, 0x2149,0x0000,0x0000, 0x214A,0x0000,0x0000, /* 1742 */ +0x214B,0x0000,0x0000, 0x214C,0x0000,0x0000, 0x214D,0x0000,0x0000, /* 1745 */ +0x214E,0x0000,0x0000, 0x214F,0x0000,0x0000, 0x2150,0x0000,0x0000, /* 1748 */ +0x2151,0x0000,0x0000, 0x2152,0x0000,0x0000, 0x2153,0x0000,0x0000, /* 174B */ +0x2154,0x0000,0x0000, 0x2155,0x0000,0x0000, 0x2156,0x0000,0x0000, /* 174E */ +0x2157,0x0000,0x0000, 0x2158,0x0000,0x0000, 0x2159,0x0000,0x0000, /* 1751 */ +0xFBC0,0x9754,0x0000, 0xFBC0,0x9755,0x0000, 0xFBC0,0x9756,0x0000, /* 1754 */ +0xFBC0,0x9757,0x0000, 0xFBC0,0x9758,0x0000, 0xFBC0,0x9759,0x0000, /* 1757 */ +0xFBC0,0x975A,0x0000, 0xFBC0,0x975B,0x0000, 0xFBC0,0x975C,0x0000, /* 175A */ +0xFBC0,0x975D,0x0000, 0xFBC0,0x975E,0x0000, 0xFBC0,0x975F,0x0000, /* 175D */ +0x215A,0x0000,0x0000, 0x215B,0x0000,0x0000, 0x215C,0x0000,0x0000, /* 1760 */ +0x215D,0x0000,0x0000, 0x215E,0x0000,0x0000, 0x215F,0x0000,0x0000, /* 1763 */ +0x2160,0x0000,0x0000, 0x2161,0x0000,0x0000, 0x2162,0x0000,0x0000, /* 1766 */ +0x2163,0x0000,0x0000, 0x2164,0x0000,0x0000, 0x2165,0x0000,0x0000, /* 1769 */ +0x2166,0x0000,0x0000, 0xFBC0,0x976D,0x0000, 0x2167,0x0000,0x0000, /* 176C */ +0x2168,0x0000,0x0000, 0x2169,0x0000,0x0000, 0xFBC0,0x9771,0x0000, /* 176F */ +0x216A,0x0000,0x0000, 0x216B,0x0000,0x0000, 0xFBC0,0x9774,0x0000, /* 1772 */ +0xFBC0,0x9775,0x0000, 0xFBC0,0x9776,0x0000, 0xFBC0,0x9777,0x0000, /* 1775 */ +0xFBC0,0x9778,0x0000, 0xFBC0,0x9779,0x0000, 0xFBC0,0x977A,0x0000, /* 1778 */ +0xFBC0,0x977B,0x0000, 0xFBC0,0x977C,0x0000, 0xFBC0,0x977D,0x0000, /* 177B */ +0xFBC0,0x977E,0x0000, 0xFBC0,0x977F,0x0000, 0x2263,0x0000,0x0000, /* 177E */ +0x2264,0x0000,0x0000, 0x2265,0x0000,0x0000, 0x2266,0x0000,0x0000, /* 1781 */ +0x2267,0x0000,0x0000, 0x2268,0x0000,0x0000, 0x2269,0x0000,0x0000, /* 1784 */ +0x226A,0x0000,0x0000, 0x226B,0x0000,0x0000, 0x226C,0x0000,0x0000, /* 1787 */ +0x226D,0x0000,0x0000, 0x226E,0x0000,0x0000, 0x226F,0x0000,0x0000, /* 178A */ +0x2270,0x0000,0x0000, 0x2271,0x0000,0x0000, 0x2272,0x0000,0x0000, /* 178D */ +0x2273,0x0000,0x0000, 0x2274,0x0000,0x0000, 0x2275,0x0000,0x0000, /* 1790 */ +0x2276,0x0000,0x0000, 0x2277,0x0000,0x0000, 0x2278,0x0000,0x0000, /* 1793 */ +0x2279,0x0000,0x0000, 0x227A,0x0000,0x0000, 0x227B,0x0000,0x0000, /* 1796 */ +0x227C,0x0000,0x0000, 0x227D,0x0000,0x0000, 0x227E,0x0000,0x0000, /* 1799 */ +0x227F,0x0000,0x0000, 0x2280,0x0000,0x0000, 0x2281,0x0000,0x0000, /* 179C */ +0x2282,0x0000,0x0000, 0x2283,0x0000,0x0000, 0x2284,0x0000,0x0000, /* 179F */ +0x2285,0x0000,0x0000, 0x2287,0x0000,0x0000, 0x2288,0x0000,0x0000, /* 17A2 */ +0x2289,0x0000,0x0000, 0x228A,0x0000,0x0000, 0x228B,0x0000,0x0000, /* 17A5 */ +0x228C,0x0000,0x0000, 0x228D,0x0000,0x0000, 0x228E,0x0000,0x0000, /* 17A8 */ +0x228F,0x0000,0x0000, 0x2290,0x0000,0x0000, 0x2291,0x0000,0x0000, /* 17AB */ +0x2292,0x0000,0x0000, 0x2293,0x0000,0x0000, 0x2294,0x0000,0x0000, /* 17AE */ +0x2295,0x0000,0x0000, 0x2296,0x0000,0x0000, 0x2297,0x0000,0x0000, /* 17B1 */ +0x2298,0x0000,0x0000, 0x2299,0x0000,0x0000, 0x229A,0x0000,0x0000, /* 17B4 */ +0x229B,0x0000,0x0000, 0x229C,0x0000,0x0000, 0x229D,0x0000,0x0000, /* 17B7 */ +0x229E,0x0000,0x0000, 0x229F,0x0000,0x0000, 0x22A0,0x0000,0x0000, /* 17BA */ +0x22A1,0x0000,0x0000, 0x22A2,0x0000,0x0000, 0x22A3,0x0000,0x0000, /* 17BD */ +0x22A4,0x0000,0x0000, 0x22A5,0x0000,0x0000, 0x22A6,0x0000,0x0000, /* 17C0 */ +0x22A7,0x0000,0x0000, 0x22A8,0x0000,0x0000, 0x22A9,0x0000,0x0000, /* 17C3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CF */ +0x22AA,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02A1,0x0000,0x0000, /* 17D2 */ +0x02A2,0x0000,0x0000, 0x0267,0x0000,0x0000, 0x03CB,0x0000,0x0000, /* 17D5 */ +0x03CC,0x0000,0x0000, 0x03CD,0x0000,0x0000, 0x03CE,0x0000,0x0000, /* 17D8 */ +0x11EC,0x0000,0x0000, 0x2286,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17DB */ +0xFBC0,0x97DE,0x0000, 0xFBC0,0x97DF,0x0000, 0x1205,0x0000,0x0000, /* 17DE */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 17E1 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 17E4 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 17E7 */ +0xFBC0,0x97EA,0x0000, 0xFBC0,0x97EB,0x0000, 0xFBC0,0x97EC,0x0000, /* 17EA */ +0xFBC0,0x97ED,0x0000, 0xFBC0,0x97EE,0x0000, 0xFBC0,0x97EF,0x0000, /* 17ED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 17F0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 17F3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 17F6 */ +0x120E,0x0000,0x0000, 0xFBC0,0x97FA,0x0000, 0xFBC0,0x97FB,0x0000, /* 17F9 */ +0xFBC0,0x97FC,0x0000, 0xFBC0,0x97FD,0x0000, 0xFBC0,0x97FE,0x0000, /* 17FC */ +0xFBC0,0x97FF,0x0000 }; + +static const uint16 uca520_p018[]= { /* 1800 (3 weights per char) */ +0x039F,0x0000,0x0000, 0x0282,0x0000,0x0000, 0x023B,0x0000,0x0000, /* 1800 */ +0x0287,0x0000,0x0000, 0x0264,0x0000,0x0000, 0x0265,0x0000,0x0000, /* 1803 */ +0x0227,0x0000,0x0000, 0x0228,0x0000,0x0000, 0x023C,0x0000,0x0000, /* 1806 */ +0x0288,0x0000,0x0000, 0x03A0,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1809 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0207,0x0000,0x0000, /* 180C */ +0xFBC0,0x980F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 180F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1812 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1815 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x981A,0x0000, /* 1818 */ +0xFBC0,0x981B,0x0000, 0xFBC0,0x981C,0x0000, 0xFBC0,0x981D,0x0000, /* 181B */ +0xFBC0,0x981E,0x0000, 0xFBC0,0x981F,0x0000, 0x242F,0x0000,0x0000, /* 181E */ +0x2431,0x0000,0x0000, 0x2434,0x0000,0x0000, 0x243A,0x0000,0x0000, /* 1821 */ +0x243C,0x0000,0x0000, 0x243F,0x0000,0x0000, 0x2441,0x0000,0x0000, /* 1824 */ +0x2444,0x0000,0x0000, 0x2445,0x0000,0x0000, 0x2446,0x0000,0x0000, /* 1827 */ +0x244B,0x0000,0x0000, 0x244D,0x0000,0x0000, 0x2450,0x0000,0x0000, /* 182A */ +0x2452,0x0000,0x0000, 0x2457,0x0000,0x0000, 0x2459,0x0000,0x0000, /* 182D */ +0x245A,0x0000,0x0000, 0x245B,0x0000,0x0000, 0x2462,0x0000,0x0000, /* 1830 */ +0x2465,0x0000,0x0000, 0x2468,0x0000,0x0000, 0x246D,0x0000,0x0000, /* 1833 */ +0x2471,0x0000,0x0000, 0x2474,0x0000,0x0000, 0x2476,0x0000,0x0000, /* 1836 */ +0x2478,0x0000,0x0000, 0x247B,0x0000,0x0000, 0x2480,0x0000,0x0000, /* 1839 */ +0x2481,0x0000,0x0000, 0x2484,0x0000,0x0000, 0x2488,0x0000,0x0000, /* 183C */ +0x248B,0x0000,0x0000, 0x248C,0x0000,0x0000, 0x248D,0x0000,0x0000, /* 183F */ +0x248E,0x0000,0x0000, 0x242E,0x0000,0x0000, 0x2432,0x0000,0x0000, /* 1842 */ +0x2435,0x0000,0x0000, 0x243B,0x0000,0x0000, 0x243D,0x0000,0x0000, /* 1845 */ +0x2440,0x0000,0x0000, 0x2442,0x0000,0x0000, 0x2447,0x0000,0x0000, /* 1848 */ +0x244C,0x0000,0x0000, 0x244E,0x0000,0x0000, 0x2451,0x0000,0x0000, /* 184B */ +0x2453,0x0000,0x0000, 0x2458,0x0000,0x0000, 0x2463,0x0000,0x0000, /* 184E */ +0x2466,0x0000,0x0000, 0x2469,0x0000,0x0000, 0x246E,0x0000,0x0000, /* 1851 */ +0x2482,0x0000,0x0000, 0x2472,0x0000,0x0000, 0x2477,0x0000,0x0000, /* 1854 */ +0x247C,0x0000,0x0000, 0x2486,0x0000,0x0000, 0x2489,0x0000,0x0000, /* 1857 */ +0x248F,0x0000,0x0000, 0x2490,0x0000,0x0000, 0x246B,0x0000,0x0000, /* 185A */ +0x2433,0x0000,0x0000, 0x2436,0x0000,0x0000, 0x2439,0x0000,0x0000, /* 185D */ +0x2443,0x0000,0x0000, 0x243E,0x0000,0x0000, 0x2448,0x0000,0x0000, /* 1860 */ +0x247D,0x0000,0x0000, 0x2454,0x0000,0x0000, 0x2456,0x0000,0x0000, /* 1863 */ +0x244F,0x0000,0x0000, 0x245C,0x0000,0x0000, 0x2464,0x0000,0x0000, /* 1866 */ +0x2467,0x0000,0x0000, 0x246F,0x0000,0x0000, 0x2479,0x0000,0x0000, /* 1869 */ +0x2487,0x0000,0x0000, 0x248A,0x0000,0x0000, 0x2483,0x0000,0x0000, /* 186C */ +0x2485,0x0000,0x0000, 0x2491,0x0000,0x0000, 0x246A,0x0000,0x0000, /* 186F */ +0x2473,0x0000,0x0000, 0x2437,0x0000,0x0000, 0x247E,0x0000,0x0000, /* 1872 */ +0x2475,0x0000,0x0000, 0x247A,0x0000,0x0000, 0x2470,0x0000,0x0000, /* 1875 */ +0xFBC0,0x9878,0x0000, 0xFBC0,0x9879,0x0000, 0xFBC0,0x987A,0x0000, /* 1878 */ +0xFBC0,0x987B,0x0000, 0xFBC0,0x987C,0x0000, 0xFBC0,0x987D,0x0000, /* 187B */ +0xFBC0,0x987E,0x0000, 0xFBC0,0x987F,0x0000, 0x2427,0x0000,0x0000, /* 187E */ +0x2428,0x0000,0x0000, 0x2429,0x0000,0x0000, 0x242A,0x0000,0x0000, /* 1881 */ +0x242B,0x0000,0x0000, 0x242C,0x0000,0x0000, 0x242D,0x0000,0x0000, /* 1884 */ +0x2430,0x0000,0x0000, 0x2438,0x0000,0x0000, 0x247F,0x0000,0x0000, /* 1887 */ +0x2449,0x0000,0x0000, 0x246C,0x0000,0x0000, 0x2492,0x0000,0x0000, /* 188A */ +0x2494,0x0000,0x0000, 0x2495,0x0000,0x0000, 0x2497,0x0000,0x0000, /* 188D */ +0x2498,0x0000,0x0000, 0x249B,0x0000,0x0000, 0x249D,0x0000,0x0000, /* 1890 */ +0x249E,0x0000,0x0000, 0x24A0,0x0000,0x0000, 0x24A2,0x0000,0x0000, /* 1893 */ +0x24A4,0x0000,0x0000, 0x24A5,0x0000,0x0000, 0x2499,0x0000,0x0000, /* 1896 */ +0x24A3,0x0000,0x0000, 0x2455,0x0000,0x0000, 0x244A,0x0000,0x0000, /* 1899 */ +0x245D,0x0000,0x0000, 0x245E,0x0000,0x0000, 0x2493,0x0000,0x0000, /* 189C */ +0x2496,0x0000,0x0000, 0x249A,0x0000,0x0000, 0x249C,0x0000,0x0000, /* 189F */ +0x245F,0x0000,0x0000, 0x24A1,0x0000,0x0000, 0x2460,0x0000,0x0000, /* 18A2 */ +0x2461,0x0000,0x0000, 0x24A6,0x0000,0x0000, 0x24A7,0x0000,0x0000, /* 18A5 */ +0x249F,0x0000,0x0000, 0x24A9,0x0000,0x0000, 0x24A8,0x0000,0x0000, /* 18A8 */ +0xFBC0,0x98AB,0x0000, 0xFBC0,0x98AC,0x0000, 0xFBC0,0x98AD,0x0000, /* 18AB */ +0xFBC0,0x98AE,0x0000, 0xFBC0,0x98AF,0x0000, 0x27A0,0x0000,0x0000, /* 18AE */ +0x27A1,0x0000,0x0000, 0x27A2,0x0000,0x0000, 0x27A3,0x0000,0x0000, /* 18B1 */ +0x27A4,0x0000,0x0000, 0x27A5,0x0000,0x0000, 0x27A6,0x0000,0x0000, /* 18B4 */ +0x27A7,0x0000,0x0000, 0x27A8,0x0000,0x0000, 0x27A9,0x0000,0x0000, /* 18B7 */ +0x27AA,0x0000,0x0000, 0x27AB,0x0000,0x0000, 0x27AC,0x0000,0x0000, /* 18BA */ +0x27AD,0x0000,0x0000, 0x27AE,0x0000,0x0000, 0x27AF,0x0000,0x0000, /* 18BD */ +0x27B0,0x0000,0x0000, 0x27B1,0x0000,0x0000, 0x27B2,0x0000,0x0000, /* 18C0 */ +0x27B3,0x0000,0x0000, 0x27B4,0x0000,0x0000, 0x27B5,0x0000,0x0000, /* 18C3 */ +0x27B6,0x0000,0x0000, 0x27B7,0x0000,0x0000, 0x27B8,0x0000,0x0000, /* 18C6 */ +0x27B9,0x0000,0x0000, 0x27BA,0x0000,0x0000, 0x27BB,0x0000,0x0000, /* 18C9 */ +0x27BC,0x0000,0x0000, 0x27BD,0x0000,0x0000, 0x27BE,0x0000,0x0000, /* 18CC */ +0x27BF,0x0000,0x0000, 0x27C0,0x0000,0x0000, 0x27C1,0x0000,0x0000, /* 18CF */ +0x27C2,0x0000,0x0000, 0x27C3,0x0000,0x0000, 0x27C4,0x0000,0x0000, /* 18D2 */ +0x27C5,0x0000,0x0000, 0x27C6,0x0000,0x0000, 0x27C7,0x0000,0x0000, /* 18D5 */ +0x27C8,0x0000,0x0000, 0x27C9,0x0000,0x0000, 0x27CA,0x0000,0x0000, /* 18D8 */ +0x27CB,0x0000,0x0000, 0x27CC,0x0000,0x0000, 0x27CD,0x0000,0x0000, /* 18DB */ +0x27CE,0x0000,0x0000, 0x27CF,0x0000,0x0000, 0x27D0,0x0000,0x0000, /* 18DE */ +0x27D1,0x0000,0x0000, 0x27D2,0x0000,0x0000, 0x27D3,0x0000,0x0000, /* 18E1 */ +0x27D4,0x0000,0x0000, 0x27D5,0x0000,0x0000, 0x27D6,0x0000,0x0000, /* 18E4 */ +0x27D7,0x0000,0x0000, 0x27D8,0x0000,0x0000, 0x27D9,0x0000,0x0000, /* 18E7 */ +0x27DA,0x0000,0x0000, 0x27DB,0x0000,0x0000, 0x27DC,0x0000,0x0000, /* 18EA */ +0x27DD,0x0000,0x0000, 0x27DE,0x0000,0x0000, 0x27DF,0x0000,0x0000, /* 18ED */ +0x27E0,0x0000,0x0000, 0x27E1,0x0000,0x0000, 0x27E2,0x0000,0x0000, /* 18F0 */ +0x27E3,0x0000,0x0000, 0x27E4,0x0000,0x0000, 0x27E5,0x0000,0x0000, /* 18F3 */ +0xFBC0,0x98F6,0x0000, 0xFBC0,0x98F7,0x0000, 0xFBC0,0x98F8,0x0000, /* 18F6 */ +0xFBC0,0x98F9,0x0000, 0xFBC0,0x98FA,0x0000, 0xFBC0,0x98FB,0x0000, /* 18F9 */ +0xFBC0,0x98FC,0x0000, 0xFBC0,0x98FD,0x0000, 0xFBC0,0x98FE,0x0000, /* 18FC */ +0xFBC0,0x98FF,0x0000 }; + +static const uint16 uca520_p019[]= { /* 1900 (4 weights per char) */ +0x20EB,0x0000,0x0000,0x0000, 0x20EC,0x0000,0x0000,0x0000, /* 1900 */ +0x20ED,0x0000,0x0000,0x0000, 0x20EE,0x0000,0x0000,0x0000, /* 1902 */ +0x20EF,0x0000,0x0000,0x0000, 0x20F0,0x0000,0x0000,0x0000, /* 1904 */ +0x20F1,0x0000,0x0000,0x0000, 0x20F2,0x0000,0x0000,0x0000, /* 1906 */ +0x20F3,0x0000,0x0000,0x0000, 0x20F4,0x0000,0x0000,0x0000, /* 1908 */ +0x20F5,0x0000,0x0000,0x0000, 0x20F6,0x0000,0x0000,0x0000, /* 190A */ +0x20F7,0x0000,0x0000,0x0000, 0x20F8,0x0000,0x0000,0x0000, /* 190C */ +0x20F9,0x0000,0x0000,0x0000, 0x20FA,0x0000,0x0000,0x0000, /* 190E */ +0x20FB,0x0000,0x0000,0x0000, 0x20FC,0x0000,0x0000,0x0000, /* 1910 */ +0x20FD,0x0000,0x0000,0x0000, 0x20FE,0x0000,0x0000,0x0000, /* 1912 */ +0x20FF,0x0000,0x0000,0x0000, 0x2100,0x0000,0x0000,0x0000, /* 1914 */ +0x2101,0x0000,0x0000,0x0000, 0x2102,0x0000,0x0000,0x0000, /* 1916 */ +0x2103,0x0000,0x0000,0x0000, 0x2104,0x0000,0x0000,0x0000, /* 1918 */ +0x2105,0x0000,0x0000,0x0000, 0x2106,0x0000,0x0000,0x0000, /* 191A */ +0x2107,0x0000,0x0000,0x0000, 0xFBC0,0x991D,0x0000,0x0000, /* 191C */ +0xFBC0,0x991E,0x0000,0x0000, 0xFBC0,0x991F,0x0000,0x0000, /* 191E */ +0x2108,0x0000,0x0000,0x0000, 0x2109,0x0000,0x0000,0x0000, /* 1920 */ +0x210A,0x0000,0x0000,0x0000, 0x210B,0x0000,0x0000,0x0000, /* 1922 */ +0x210C,0x0000,0x0000,0x0000, 0x210D,0x0000,0x0000,0x0000, /* 1924 */ +0x210E,0x0000,0x0000,0x0000, 0x210F,0x0000,0x0000,0x0000, /* 1926 */ +0x2110,0x0000,0x0000,0x0000, 0x2111,0x0000,0x0000,0x0000, /* 1928 */ +0x2112,0x0000,0x0000,0x0000, 0x2113,0x0000,0x0000,0x0000, /* 192A */ +0xFBC0,0x992C,0x0000,0x0000, 0xFBC0,0x992D,0x0000,0x0000, /* 192C */ +0xFBC0,0x992E,0x0000,0x0000, 0xFBC0,0x992F,0x0000,0x0000, /* 192E */ +0x2114,0x0000,0x0000,0x0000, 0x2115,0x0000,0x0000,0x0000, /* 1930 */ +0x2116,0x0000,0x0000,0x0000, 0x2117,0x0000,0x0000,0x0000, /* 1932 */ +0x2118,0x0000,0x0000,0x0000, 0x2119,0x0000,0x0000,0x0000, /* 1934 */ +0x211A,0x0000,0x0000,0x0000, 0x211B,0x0000,0x0000,0x0000, /* 1936 */ +0x211C,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1938 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 193A */ +0xFBC0,0x993C,0x0000,0x0000, 0xFBC0,0x993D,0x0000,0x0000, /* 193C */ +0xFBC0,0x993E,0x0000,0x0000, 0xFBC0,0x993F,0x0000,0x0000, /* 193E */ +0x03C1,0x0000,0x0000,0x0000, 0xFBC0,0x9941,0x0000,0x0000, /* 1940 */ +0xFBC0,0x9942,0x0000,0x0000, 0xFBC0,0x9943,0x0000,0x0000, /* 1942 */ +0x0272,0x0000,0x0000,0x0000, 0x027A,0x0000,0x0000,0x0000, /* 1944 */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1946 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1948 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 194A */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 194C */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 194E */ +0x22AB,0x0000,0x0000,0x0000, 0x22AC,0x0000,0x0000,0x0000, /* 1950 */ +0x22AD,0x0000,0x0000,0x0000, 0x22AE,0x0000,0x0000,0x0000, /* 1952 */ +0x22AF,0x0000,0x0000,0x0000, 0x22B0,0x0000,0x0000,0x0000, /* 1954 */ +0x22B1,0x0000,0x0000,0x0000, 0x22B2,0x0000,0x0000,0x0000, /* 1956 */ +0x22B3,0x0000,0x0000,0x0000, 0x22B4,0x0000,0x0000,0x0000, /* 1958 */ +0x22B5,0x0000,0x0000,0x0000, 0x22B6,0x0000,0x0000,0x0000, /* 195A */ +0x22B7,0x0000,0x0000,0x0000, 0x22B8,0x0000,0x0000,0x0000, /* 195C */ +0x22B9,0x0000,0x0000,0x0000, 0x22BA,0x0000,0x0000,0x0000, /* 195E */ +0x22BB,0x0000,0x0000,0x0000, 0x22BC,0x0000,0x0000,0x0000, /* 1960 */ +0x22BD,0x0000,0x0000,0x0000, 0x22BE,0x0000,0x0000,0x0000, /* 1962 */ +0x22BF,0x0000,0x0000,0x0000, 0x22C0,0x0000,0x0000,0x0000, /* 1964 */ +0x22C1,0x0000,0x0000,0x0000, 0x22C2,0x0000,0x0000,0x0000, /* 1966 */ +0x22C3,0x0000,0x0000,0x0000, 0x22C4,0x0000,0x0000,0x0000, /* 1968 */ +0x22C5,0x0000,0x0000,0x0000, 0x22C6,0x0000,0x0000,0x0000, /* 196A */ +0x22C7,0x0000,0x0000,0x0000, 0x22C8,0x0000,0x0000,0x0000, /* 196C */ +0xFBC0,0x996E,0x0000,0x0000, 0xFBC0,0x996F,0x0000,0x0000, /* 196E */ +0x22C9,0x0000,0x0000,0x0000, 0x22CA,0x0000,0x0000,0x0000, /* 1970 */ +0x22CB,0x0000,0x0000,0x0000, 0x22CC,0x0000,0x0000,0x0000, /* 1972 */ +0x22CD,0x0000,0x0000,0x0000, 0xFBC0,0x9975,0x0000,0x0000, /* 1974 */ +0xFBC0,0x9976,0x0000,0x0000, 0xFBC0,0x9977,0x0000,0x0000, /* 1976 */ +0xFBC0,0x9978,0x0000,0x0000, 0xFBC0,0x9979,0x0000,0x0000, /* 1978 */ +0xFBC0,0x997A,0x0000,0x0000, 0xFBC0,0x997B,0x0000,0x0000, /* 197A */ +0xFBC0,0x997C,0x0000,0x0000, 0xFBC0,0x997D,0x0000,0x0000, /* 197C */ +0xFBC0,0x997E,0x0000,0x0000, 0xFBC0,0x997F,0x0000,0x0000, /* 197E */ +0x22CE,0x0000,0x0000,0x0000, 0x22CF,0x0000,0x0000,0x0000, /* 1980 */ +0x22D0,0x0000,0x0000,0x0000, 0x22D1,0x0000,0x0000,0x0000, /* 1982 */ +0x22D2,0x0000,0x0000,0x0000, 0x22D3,0x0000,0x0000,0x0000, /* 1984 */ +0x22D4,0x0000,0x0000,0x0000, 0x22D5,0x0000,0x0000,0x0000, /* 1986 */ +0x22D6,0x0000,0x0000,0x0000, 0x22D7,0x0000,0x0000,0x0000, /* 1988 */ +0x22D8,0x0000,0x0000,0x0000, 0x22D9,0x0000,0x0000,0x0000, /* 198A */ +0x22DA,0x0000,0x0000,0x0000, 0x22DB,0x0000,0x0000,0x0000, /* 198C */ +0x22DC,0x0000,0x0000,0x0000, 0x22DD,0x0000,0x0000,0x0000, /* 198E */ +0x22DE,0x0000,0x0000,0x0000, 0x22DF,0x0000,0x0000,0x0000, /* 1990 */ +0x22E0,0x0000,0x0000,0x0000, 0x22E1,0x0000,0x0000,0x0000, /* 1992 */ +0x22E2,0x0000,0x0000,0x0000, 0x22E3,0x0000,0x0000,0x0000, /* 1994 */ +0x22E4,0x0000,0x0000,0x0000, 0x22E5,0x0000,0x0000,0x0000, /* 1996 */ +0x22E6,0x0000,0x0000,0x0000, 0x22E7,0x0000,0x0000,0x0000, /* 1998 */ +0x22E8,0x0000,0x0000,0x0000, 0x22E9,0x0000,0x0000,0x0000, /* 199A */ +0x22EA,0x0000,0x0000,0x0000, 0x22EB,0x0000,0x0000,0x0000, /* 199C */ +0x22EC,0x0000,0x0000,0x0000, 0x22ED,0x0000,0x0000,0x0000, /* 199E */ +0x22EE,0x0000,0x0000,0x0000, 0x22EF,0x0000,0x0000,0x0000, /* 19A0 */ +0x22F0,0x0000,0x0000,0x0000, 0x22F1,0x0000,0x0000,0x0000, /* 19A2 */ +0x22F2,0x0000,0x0000,0x0000, 0x22F3,0x0000,0x0000,0x0000, /* 19A4 */ +0x22F4,0x0000,0x0000,0x0000, 0x22F5,0x0000,0x0000,0x0000, /* 19A6 */ +0x22F6,0x0000,0x0000,0x0000, 0x22F7,0x0000,0x0000,0x0000, /* 19A8 */ +0x22F8,0x0000,0x0000,0x0000, 0x22F9,0x0000,0x0000,0x0000, /* 19AA */ +0xFBC0,0x99AC,0x0000,0x0000, 0xFBC0,0x99AD,0x0000,0x0000, /* 19AC */ +0xFBC0,0x99AE,0x0000,0x0000, 0xFBC0,0x99AF,0x0000,0x0000, /* 19AE */ +0x22FA,0x0000,0x0000,0x0000, 0x22FB,0x0000,0x0000,0x0000, /* 19B0 */ +0x22FC,0x0000,0x0000,0x0000, 0x22FD,0x0000,0x0000,0x0000, /* 19B2 */ +0x22FE,0x0000,0x0000,0x0000, 0x22FF,0x0000,0x0000,0x0000, /* 19B4 */ +0x2300,0x0000,0x0000,0x0000, 0x2301,0x0000,0x0000,0x0000, /* 19B6 */ +0x2302,0x0000,0x0000,0x0000, 0x2303,0x0000,0x0000,0x0000, /* 19B8 */ +0x2304,0x0000,0x0000,0x0000, 0x2305,0x0000,0x0000,0x0000, /* 19BA */ +0x2306,0x0000,0x0000,0x0000, 0x2307,0x0000,0x0000,0x0000, /* 19BC */ +0x2308,0x0000,0x0000,0x0000, 0x2309,0x0000,0x0000,0x0000, /* 19BE */ +0x230A,0x0000,0x0000,0x0000, 0x230B,0x0000,0x0000,0x0000, /* 19C0 */ +0x230C,0x0000,0x0000,0x0000, 0x230D,0x0000,0x0000,0x0000, /* 19C2 */ +0x230E,0x0000,0x0000,0x0000, 0x230F,0x0000,0x0000,0x0000, /* 19C4 */ +0x2310,0x0000,0x0000,0x0000, 0x2311,0x0000,0x0000,0x0000, /* 19C6 */ +0x2312,0x0000,0x0000,0x0000, 0x2313,0x0000,0x0000,0x0000, /* 19C8 */ +0xFBC0,0x99CA,0x0000,0x0000, 0xFBC0,0x99CB,0x0000,0x0000, /* 19CA */ +0xFBC0,0x99CC,0x0000,0x0000, 0xFBC0,0x99CD,0x0000,0x0000, /* 19CC */ +0xFBC0,0x99CE,0x0000,0x0000, 0xFBC0,0x99CF,0x0000,0x0000, /* 19CE */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 19D0 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 19D2 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 19D4 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 19D6 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 19D8 */ +0x1206,0x0000,0x0000,0x0000, 0xFBC0,0x99DB,0x0000,0x0000, /* 19DA */ +0xFBC0,0x99DC,0x0000,0x0000, 0xFBC0,0x99DD,0x0000,0x0000, /* 19DC */ +0x22EA,0x2300,0x0000,0x0000, 0x22EA,0x2300,0x230B,0x0000, /* 19DE */ +0x048E,0x0000,0x0000,0x0000, 0x048F,0x0000,0x0000,0x0000, /* 19E0 */ +0x0490,0x0000,0x0000,0x0000, 0x0491,0x0000,0x0000,0x0000, /* 19E2 */ +0x0492,0x0000,0x0000,0x0000, 0x0493,0x0000,0x0000,0x0000, /* 19E4 */ +0x0494,0x0000,0x0000,0x0000, 0x0495,0x0000,0x0000,0x0000, /* 19E6 */ +0x0496,0x0000,0x0000,0x0000, 0x0497,0x0000,0x0000,0x0000, /* 19E8 */ +0x0498,0x0000,0x0000,0x0000, 0x0499,0x0000,0x0000,0x0000, /* 19EA */ +0x049A,0x0000,0x0000,0x0000, 0x049B,0x0000,0x0000,0x0000, /* 19EC */ +0x049C,0x0000,0x0000,0x0000, 0x049D,0x0000,0x0000,0x0000, /* 19EE */ +0x049E,0x0000,0x0000,0x0000, 0x049F,0x0000,0x0000,0x0000, /* 19F0 */ +0x04A0,0x0000,0x0000,0x0000, 0x04A1,0x0000,0x0000,0x0000, /* 19F2 */ +0x04A2,0x0000,0x0000,0x0000, 0x04A3,0x0000,0x0000,0x0000, /* 19F4 */ +0x04A4,0x0000,0x0000,0x0000, 0x04A5,0x0000,0x0000,0x0000, /* 19F6 */ +0x04A6,0x0000,0x0000,0x0000, 0x04A7,0x0000,0x0000,0x0000, /* 19F8 */ +0x04A8,0x0000,0x0000,0x0000, 0x04A9,0x0000,0x0000,0x0000, /* 19FA */ +0x04AA,0x0000,0x0000,0x0000, 0x04AB,0x0000,0x0000,0x0000, /* 19FC */ +0x04AC,0x0000,0x0000,0x0000, 0x04AD,0x0000,0x0000,0x0000 /* 19FE */ +}; + +static const uint16 uca520_p01A[]= { /* 1A00 (4 weights per char) */ +0x216C,0x0000,0x0000,0x0000, 0x216D,0x0000,0x0000,0x0000, /* 1A00 */ +0x216E,0x0000,0x0000,0x0000, 0x216F,0x0000,0x0000,0x0000, /* 1A02 */ +0x2170,0x0000,0x0000,0x0000, 0x2171,0x0000,0x0000,0x0000, /* 1A04 */ +0x2172,0x0000,0x0000,0x0000, 0x2173,0x0000,0x0000,0x0000, /* 1A06 */ +0x2174,0x0000,0x0000,0x0000, 0x2175,0x0000,0x0000,0x0000, /* 1A08 */ +0x2176,0x0000,0x0000,0x0000, 0x2177,0x0000,0x0000,0x0000, /* 1A0A */ +0x2178,0x0000,0x0000,0x0000, 0x2179,0x0000,0x0000,0x0000, /* 1A0C */ +0x217A,0x0000,0x0000,0x0000, 0x217B,0x0000,0x0000,0x0000, /* 1A0E */ +0x217C,0x0000,0x0000,0x0000, 0x217D,0x0000,0x0000,0x0000, /* 1A10 */ +0x217E,0x0000,0x0000,0x0000, 0x217F,0x0000,0x0000,0x0000, /* 1A12 */ +0x2180,0x0000,0x0000,0x0000, 0x2181,0x0000,0x0000,0x0000, /* 1A14 */ +0x2182,0x0000,0x0000,0x0000, 0x2183,0x0000,0x0000,0x0000, /* 1A16 */ +0x2184,0x0000,0x0000,0x0000, 0x2185,0x0000,0x0000,0x0000, /* 1A18 */ +0x2186,0x0000,0x0000,0x0000, 0x2187,0x0000,0x0000,0x0000, /* 1A1A */ +0xFBC0,0x9A1C,0x0000,0x0000, 0xFBC0,0x9A1D,0x0000,0x0000, /* 1A1C */ +0x02BA,0x0000,0x0000,0x0000, 0x02BB,0x0000,0x0000,0x0000, /* 1A1E */ +0x2314,0x0000,0x0000,0x0000, 0x2315,0x0000,0x0000,0x0000, /* 1A20 */ +0x2316,0x0000,0x0000,0x0000, 0x2317,0x0000,0x0000,0x0000, /* 1A22 */ +0x2318,0x0000,0x0000,0x0000, 0x2319,0x0000,0x0000,0x0000, /* 1A24 */ +0x231A,0x0000,0x0000,0x0000, 0x231B,0x0000,0x0000,0x0000, /* 1A26 */ +0x231C,0x0000,0x0000,0x0000, 0x231D,0x0000,0x0000,0x0000, /* 1A28 */ +0x231E,0x0000,0x0000,0x0000, 0x231F,0x0000,0x0000,0x0000, /* 1A2A */ +0x2320,0x0000,0x0000,0x0000, 0x2321,0x0000,0x0000,0x0000, /* 1A2C */ +0x2322,0x0000,0x0000,0x0000, 0x2323,0x0000,0x0000,0x0000, /* 1A2E */ +0x2324,0x0000,0x0000,0x0000, 0x2325,0x0000,0x0000,0x0000, /* 1A30 */ +0x2326,0x0000,0x0000,0x0000, 0x2327,0x0000,0x0000,0x0000, /* 1A32 */ +0x2328,0x0000,0x0000,0x0000, 0x2329,0x0000,0x0000,0x0000, /* 1A34 */ +0x232A,0x0000,0x0000,0x0000, 0x232B,0x0000,0x0000,0x0000, /* 1A36 */ +0x232C,0x0000,0x0000,0x0000, 0x232D,0x0000,0x0000,0x0000, /* 1A38 */ +0x232E,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A3A */ +0x2330,0x0000,0x0000,0x0000, 0x2331,0x0000,0x0000,0x0000, /* 1A3C */ +0x2332,0x0000,0x0000,0x0000, 0x2333,0x0000,0x0000,0x0000, /* 1A3E */ +0x2334,0x0000,0x0000,0x0000, 0x2335,0x0000,0x0000,0x0000, /* 1A40 */ +0x2336,0x0000,0x0000,0x0000, 0x2337,0x0000,0x0000,0x0000, /* 1A42 */ +0x2338,0x0000,0x0000,0x0000, 0x2339,0x0000,0x0000,0x0000, /* 1A44 */ +0x233A,0x0000,0x0000,0x0000, 0x233B,0x0000,0x0000,0x0000, /* 1A46 */ +0x233C,0x0000,0x0000,0x0000, 0x233D,0x0000,0x0000,0x0000, /* 1A48 */ +0x233E,0x0000,0x0000,0x0000, 0x233F,0x0000,0x0000,0x0000, /* 1A4A */ +0x2340,0x0000,0x0000,0x0000, 0x2349,0x0000,0x0000,0x0000, /* 1A4C */ +0x234A,0x0000,0x0000,0x0000, 0x234B,0x0000,0x0000,0x0000, /* 1A4E */ +0x234C,0x0000,0x0000,0x0000, 0x234D,0x0000,0x0000,0x0000, /* 1A50 */ +0x234E,0x0000,0x0000,0x0000, 0x2341,0x0000,0x0000,0x0000, /* 1A52 */ +0x233A,0x2360,0x233A,0x0000, 0x2343,0x0000,0x0000,0x0000, /* 1A54 */ +0x2344,0x0000,0x0000,0x0000, 0x2345,0x0000,0x0000,0x0000, /* 1A56 */ +0x231A,0x0000,0x0000,0x0000, 0x231A,0x0000,0x0000,0x0000, /* 1A58 */ +0x232F,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A5A */ +0x2346,0x0000,0x0000,0x0000, 0x2347,0x0000,0x0000,0x0000, /* 1A5C */ +0x2348,0x0000,0x0000,0x0000, 0xFBC0,0x9A5F,0x0000,0x0000, /* 1A5E */ +0x2360,0x0000,0x0000,0x0000, 0x234F,0x0000,0x0000,0x0000, /* 1A60 */ +0x2351,0x0000,0x0000,0x0000, 0x2352,0x0000,0x0000,0x0000, /* 1A62 */ +0x2352,0x0000,0x0000,0x0000, 0x2353,0x0000,0x0000,0x0000, /* 1A64 */ +0x2354,0x0000,0x0000,0x0000, 0x2355,0x0000,0x0000,0x0000, /* 1A66 */ +0x2356,0x0000,0x0000,0x0000, 0x2357,0x0000,0x0000,0x0000, /* 1A68 */ +0x2358,0x0000,0x0000,0x0000, 0x2342,0x0000,0x0000,0x0000, /* 1A6A */ +0x2350,0x0000,0x0000,0x0000, 0x235F,0x0000,0x0000,0x0000, /* 1A6C */ +0x2359,0x0000,0x0000,0x0000, 0x235A,0x0000,0x0000,0x0000, /* 1A6E */ +0x235C,0x0000,0x0000,0x0000, 0x235D,0x0000,0x0000,0x0000, /* 1A70 */ +0x235E,0x0000,0x0000,0x0000, 0x235B,0x0000,0x0000,0x0000, /* 1A72 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A74 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A76 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A78 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7A */ +0x0000,0x0000,0x0000,0x0000, 0xFBC0,0x9A7D,0x0000,0x0000, /* 1A7C */ +0xFBC0,0x9A7E,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A80 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A82 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A84 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A86 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A88 */ +0xFBC0,0x9A8A,0x0000,0x0000, 0xFBC0,0x9A8B,0x0000,0x0000, /* 1A8A */ +0xFBC0,0x9A8C,0x0000,0x0000, 0xFBC0,0x9A8D,0x0000,0x0000, /* 1A8C */ +0xFBC0,0x9A8E,0x0000,0x0000, 0xFBC0,0x9A8F,0x0000,0x0000, /* 1A8E */ +0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A90 */ +0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A92 */ +0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A94 */ +0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A96 */ +0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A98 */ +0xFBC0,0x9A9A,0x0000,0x0000, 0xFBC0,0x9A9B,0x0000,0x0000, /* 1A9A */ +0xFBC0,0x9A9C,0x0000,0x0000, 0xFBC0,0x9A9D,0x0000,0x0000, /* 1A9C */ +0xFBC0,0x9A9E,0x0000,0x0000, 0xFBC0,0x9A9F,0x0000,0x0000, /* 1A9E */ +0x03CF,0x0000,0x0000,0x0000, 0x03D0,0x0000,0x0000,0x0000, /* 1AA0 */ +0x03D1,0x0000,0x0000,0x0000, 0x03D2,0x0000,0x0000,0x0000, /* 1AA2 */ +0x03D3,0x0000,0x0000,0x0000, 0x03D4,0x0000,0x0000,0x0000, /* 1AA4 */ +0x03D5,0x0000,0x0000,0x0000, 0x11D3,0x0000,0x0000,0x0000, /* 1AA6 */ +0x02A3,0x0000,0x0000,0x0000, 0x02A4,0x0000,0x0000,0x0000, /* 1AA8 */ +0x02A5,0x0000,0x0000,0x0000, 0x02A6,0x0000,0x0000,0x0000, /* 1AAA */ +0x03D6,0x0000,0x0000,0x0000, 0x03D7,0x0000,0x0000,0x0000, /* 1AAC */ +0xFBC0,0x9AAE,0x0000,0x0000, 0xFBC0,0x9AAF,0x0000,0x0000, /* 1AAE */ +0xFBC0,0x9AB0,0x0000,0x0000, 0xFBC0,0x9AB1,0x0000,0x0000, /* 1AB0 */ +0xFBC0,0x9AB2,0x0000,0x0000, 0xFBC0,0x9AB3,0x0000,0x0000, /* 1AB2 */ +0xFBC0,0x9AB4,0x0000,0x0000, 0xFBC0,0x9AB5,0x0000,0x0000, /* 1AB4 */ +0xFBC0,0x9AB6,0x0000,0x0000, 0xFBC0,0x9AB7,0x0000,0x0000, /* 1AB6 */ +0xFBC0,0x9AB8,0x0000,0x0000, 0xFBC0,0x9AB9,0x0000,0x0000, /* 1AB8 */ +0xFBC0,0x9ABA,0x0000,0x0000, 0xFBC0,0x9ABB,0x0000,0x0000, /* 1ABA */ +0xFBC0,0x9ABC,0x0000,0x0000, 0xFBC0,0x9ABD,0x0000,0x0000, /* 1ABC */ +0xFBC0,0x9ABE,0x0000,0x0000, 0xFBC0,0x9ABF,0x0000,0x0000, /* 1ABE */ +0xFBC0,0x9AC0,0x0000,0x0000, 0xFBC0,0x9AC1,0x0000,0x0000, /* 1AC0 */ +0xFBC0,0x9AC2,0x0000,0x0000, 0xFBC0,0x9AC3,0x0000,0x0000, /* 1AC2 */ +0xFBC0,0x9AC4,0x0000,0x0000, 0xFBC0,0x9AC5,0x0000,0x0000, /* 1AC4 */ +0xFBC0,0x9AC6,0x0000,0x0000, 0xFBC0,0x9AC7,0x0000,0x0000, /* 1AC6 */ +0xFBC0,0x9AC8,0x0000,0x0000, 0xFBC0,0x9AC9,0x0000,0x0000, /* 1AC8 */ +0xFBC0,0x9ACA,0x0000,0x0000, 0xFBC0,0x9ACB,0x0000,0x0000, /* 1ACA */ +0xFBC0,0x9ACC,0x0000,0x0000, 0xFBC0,0x9ACD,0x0000,0x0000, /* 1ACC */ +0xFBC0,0x9ACE,0x0000,0x0000, 0xFBC0,0x9ACF,0x0000,0x0000, /* 1ACE */ +0xFBC0,0x9AD0,0x0000,0x0000, 0xFBC0,0x9AD1,0x0000,0x0000, /* 1AD0 */ +0xFBC0,0x9AD2,0x0000,0x0000, 0xFBC0,0x9AD3,0x0000,0x0000, /* 1AD2 */ +0xFBC0,0x9AD4,0x0000,0x0000, 0xFBC0,0x9AD5,0x0000,0x0000, /* 1AD4 */ +0xFBC0,0x9AD6,0x0000,0x0000, 0xFBC0,0x9AD7,0x0000,0x0000, /* 1AD6 */ +0xFBC0,0x9AD8,0x0000,0x0000, 0xFBC0,0x9AD9,0x0000,0x0000, /* 1AD8 */ +0xFBC0,0x9ADA,0x0000,0x0000, 0xFBC0,0x9ADB,0x0000,0x0000, /* 1ADA */ +0xFBC0,0x9ADC,0x0000,0x0000, 0xFBC0,0x9ADD,0x0000,0x0000, /* 1ADC */ +0xFBC0,0x9ADE,0x0000,0x0000, 0xFBC0,0x9ADF,0x0000,0x0000, /* 1ADE */ +0xFBC0,0x9AE0,0x0000,0x0000, 0xFBC0,0x9AE1,0x0000,0x0000, /* 1AE0 */ +0xFBC0,0x9AE2,0x0000,0x0000, 0xFBC0,0x9AE3,0x0000,0x0000, /* 1AE2 */ +0xFBC0,0x9AE4,0x0000,0x0000, 0xFBC0,0x9AE5,0x0000,0x0000, /* 1AE4 */ +0xFBC0,0x9AE6,0x0000,0x0000, 0xFBC0,0x9AE7,0x0000,0x0000, /* 1AE6 */ +0xFBC0,0x9AE8,0x0000,0x0000, 0xFBC0,0x9AE9,0x0000,0x0000, /* 1AE8 */ +0xFBC0,0x9AEA,0x0000,0x0000, 0xFBC0,0x9AEB,0x0000,0x0000, /* 1AEA */ +0xFBC0,0x9AEC,0x0000,0x0000, 0xFBC0,0x9AED,0x0000,0x0000, /* 1AEC */ +0xFBC0,0x9AEE,0x0000,0x0000, 0xFBC0,0x9AEF,0x0000,0x0000, /* 1AEE */ +0xFBC0,0x9AF0,0x0000,0x0000, 0xFBC0,0x9AF1,0x0000,0x0000, /* 1AF0 */ +0xFBC0,0x9AF2,0x0000,0x0000, 0xFBC0,0x9AF3,0x0000,0x0000, /* 1AF2 */ +0xFBC0,0x9AF4,0x0000,0x0000, 0xFBC0,0x9AF5,0x0000,0x0000, /* 1AF4 */ +0xFBC0,0x9AF6,0x0000,0x0000, 0xFBC0,0x9AF7,0x0000,0x0000, /* 1AF6 */ +0xFBC0,0x9AF8,0x0000,0x0000, 0xFBC0,0x9AF9,0x0000,0x0000, /* 1AF8 */ +0xFBC0,0x9AFA,0x0000,0x0000, 0xFBC0,0x9AFB,0x0000,0x0000, /* 1AFA */ +0xFBC0,0x9AFC,0x0000,0x0000, 0xFBC0,0x9AFD,0x0000,0x0000, /* 1AFC */ +0xFBC0,0x9AFE,0x0000,0x0000, 0xFBC0,0x9AFF,0x0000,0x0000 /* 1AFE */ +}; + +static const uint16 uca520_p01B[]= { /* 1B00 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B00 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23A6,0x0000,0x0000, /* 1B03 */ +0x23A7,0x0000,0x0000, 0x23A8,0x0000,0x0000, 0x23A9,0x0000,0x0000, /* 1B06 */ +0x23AA,0x0000,0x0000, 0x23AB,0x0000,0x0000, 0x23AC,0x0000,0x0000, /* 1B09 */ +0x23AD,0x0000,0x0000, 0x23AE,0x0000,0x0000, 0x23AF,0x0000,0x0000, /* 1B0C */ +0x23B0,0x0000,0x0000, 0x23B1,0x0000,0x0000, 0x23B2,0x0000,0x0000, /* 1B0F */ +0x23B3,0x0000,0x0000, 0x23B4,0x0000,0x0000, 0x23B7,0x0000,0x0000, /* 1B12 */ +0x23B8,0x0000,0x0000, 0x23B9,0x0000,0x0000, 0x23BA,0x0000,0x0000, /* 1B15 */ +0x23BB,0x0000,0x0000, 0x23BC,0x0000,0x0000, 0x23BD,0x0000,0x0000, /* 1B18 */ +0x23BE,0x0000,0x0000, 0x23BF,0x0000,0x0000, 0x23C0,0x0000,0x0000, /* 1B1B */ +0x23C1,0x0000,0x0000, 0x23C2,0x0000,0x0000, 0x23C3,0x0000,0x0000, /* 1B1E */ +0x23C4,0x0000,0x0000, 0x23C5,0x0000,0x0000, 0x23C7,0x0000,0x0000, /* 1B21 */ +0x23C8,0x0000,0x0000, 0x23C9,0x0000,0x0000, 0x23CA,0x0000,0x0000, /* 1B24 */ +0x23CB,0x0000,0x0000, 0x23CD,0x0000,0x0000, 0x23CE,0x0000,0x0000, /* 1B27 */ +0x23CF,0x0000,0x0000, 0x23D0,0x0000,0x0000, 0x23D1,0x0000,0x0000, /* 1B2A */ +0x23D2,0x0000,0x0000, 0x23D3,0x0000,0x0000, 0x23D4,0x0000,0x0000, /* 1B2D */ +0x23D6,0x0000,0x0000, 0x23D7,0x0000,0x0000, 0x23D8,0x0000,0x0000, /* 1B30 */ +0x23DB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23DC,0x0000,0x0000, /* 1B33 */ +0x23DD,0x0000,0x0000, 0x23DE,0x0000,0x0000, 0x23DF,0x0000,0x0000, /* 1B36 */ +0x23E0,0x0000,0x0000, 0x23E1,0x0000,0x0000, 0x23E2,0x0000,0x0000, /* 1B39 */ +0x23E3,0x0000,0x0000, 0x23E4,0x0000,0x0000, 0x23E5,0x0000,0x0000, /* 1B3C */ +0x23E6,0x0000,0x0000, 0x23E7,0x0000,0x0000, 0x23E8,0x0000,0x0000, /* 1B3F */ +0x23E9,0x0000,0x0000, 0x23EA,0x0000,0x0000, 0x23EB,0x0000,0x0000, /* 1B42 */ +0x23B5,0x0000,0x0000, 0x23B6,0x0000,0x0000, 0x23C6,0x0000,0x0000, /* 1B45 */ +0x23CC,0x0000,0x0000, 0x23D5,0x0000,0x0000, 0x23D9,0x0000,0x0000, /* 1B48 */ +0x23DA,0x0000,0x0000, 0xFBC0,0x9B4C,0x0000, 0xFBC0,0x9B4D,0x0000, /* 1B4B */ +0xFBC0,0x9B4E,0x0000, 0xFBC0,0x9B4F,0x0000, 0x1205,0x0000,0x0000, /* 1B4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1B51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1B54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1B57 */ +0x02BC,0x0000,0x0000, 0x02BD,0x0000,0x0000, 0x028A,0x0000,0x0000, /* 1B5A */ +0x0268,0x0000,0x0000, 0x02A7,0x0000,0x0000, 0x02A8,0x0000,0x0000, /* 1B5D */ +0x0226,0x0000,0x0000, 0x04AE,0x0000,0x0000, 0x04AF,0x0000,0x0000, /* 1B60 */ +0x04B0,0x0000,0x0000, 0x04B1,0x0000,0x0000, 0x04B2,0x0000,0x0000, /* 1B63 */ +0x04B3,0x0000,0x0000, 0x04B4,0x0000,0x0000, 0x04B5,0x0000,0x0000, /* 1B66 */ +0x04B6,0x0000,0x0000, 0x04B7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B69 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000, /* 1B72 */ +0x04B9,0x0000,0x0000, 0x04BA,0x0000,0x0000, 0x04BB,0x0000,0x0000, /* 1B75 */ +0x04BC,0x0000,0x0000, 0x04BD,0x0000,0x0000, 0x04BE,0x0000,0x0000, /* 1B78 */ +0x04BF,0x0000,0x0000, 0x04C0,0x0000,0x0000, 0xFBC0,0x9B7D,0x0000, /* 1B7B */ +0xFBC0,0x9B7E,0x0000, 0xFBC0,0x9B7F,0x0000, 0x0000,0x0000,0x0000, /* 1B7E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1F1C,0x0000,0x0000, /* 1B81 */ +0x1F1D,0x0000,0x0000, 0x1F1E,0x0000,0x0000, 0x1F1F,0x0000,0x0000, /* 1B84 */ +0x1F20,0x0000,0x0000, 0x1F21,0x0000,0x0000, 0x1F22,0x0000,0x0000, /* 1B87 */ +0x1F23,0x0000,0x0000, 0x1F25,0x0000,0x0000, 0x1F26,0x0000,0x0000, /* 1B8A */ +0x1F27,0x0000,0x0000, 0x1F28,0x0000,0x0000, 0x1F29,0x0000,0x0000, /* 1B8D */ +0x1F2A,0x0000,0x0000, 0x1F2B,0x0000,0x0000, 0x1F2C,0x0000,0x0000, /* 1B90 */ +0x1F2D,0x0000,0x0000, 0x1F2E,0x0000,0x0000, 0x1F2F,0x0000,0x0000, /* 1B93 */ +0x1F30,0x0000,0x0000, 0x1F31,0x0000,0x0000, 0x1F32,0x0000,0x0000, /* 1B96 */ +0x1F33,0x0000,0x0000, 0x1F34,0x0000,0x0000, 0x1F36,0x0000,0x0000, /* 1B99 */ +0x1F38,0x0000,0x0000, 0x1F3A,0x0000,0x0000, 0x1F3B,0x0000,0x0000, /* 1B9C */ +0x1F3C,0x0000,0x0000, 0x1F3E,0x0000,0x0000, 0x1F35,0x0000,0x0000, /* 1B9F */ +0x1F37,0x0000,0x0000, 0x1F39,0x0000,0x0000, 0x1F3F,0x0000,0x0000, /* 1BA2 */ +0x1F40,0x0000,0x0000, 0x1F41,0x0000,0x0000, 0x1F42,0x0000,0x0000, /* 1BA5 */ +0x1F43,0x0000,0x0000, 0x1F44,0x0000,0x0000, 0x1F45,0x0000,0x0000, /* 1BA8 */ +0xFBC0,0x9BAB,0x0000, 0xFBC0,0x9BAC,0x0000, 0xFBC0,0x9BAD,0x0000, /* 1BAB */ +0x1F24,0x0000,0x0000, 0x1F3D,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1BAE */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1BB1 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1BB4 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1BB7 */ +0xFBC0,0x9BBA,0x0000, 0xFBC0,0x9BBB,0x0000, 0xFBC0,0x9BBC,0x0000, /* 1BBA */ +0xFBC0,0x9BBD,0x0000, 0xFBC0,0x9BBE,0x0000, 0xFBC0,0x9BBF,0x0000, /* 1BBD */ +0xFBC0,0x9BC0,0x0000, 0xFBC0,0x9BC1,0x0000, 0xFBC0,0x9BC2,0x0000, /* 1BC0 */ +0xFBC0,0x9BC3,0x0000, 0xFBC0,0x9BC4,0x0000, 0xFBC0,0x9BC5,0x0000, /* 1BC3 */ +0xFBC0,0x9BC6,0x0000, 0xFBC0,0x9BC7,0x0000, 0xFBC0,0x9BC8,0x0000, /* 1BC6 */ +0xFBC0,0x9BC9,0x0000, 0xFBC0,0x9BCA,0x0000, 0xFBC0,0x9BCB,0x0000, /* 1BC9 */ +0xFBC0,0x9BCC,0x0000, 0xFBC0,0x9BCD,0x0000, 0xFBC0,0x9BCE,0x0000, /* 1BCC */ +0xFBC0,0x9BCF,0x0000, 0xFBC0,0x9BD0,0x0000, 0xFBC0,0x9BD1,0x0000, /* 1BCF */ +0xFBC0,0x9BD2,0x0000, 0xFBC0,0x9BD3,0x0000, 0xFBC0,0x9BD4,0x0000, /* 1BD2 */ +0xFBC0,0x9BD5,0x0000, 0xFBC0,0x9BD6,0x0000, 0xFBC0,0x9BD7,0x0000, /* 1BD5 */ +0xFBC0,0x9BD8,0x0000, 0xFBC0,0x9BD9,0x0000, 0xFBC0,0x9BDA,0x0000, /* 1BD8 */ +0xFBC0,0x9BDB,0x0000, 0xFBC0,0x9BDC,0x0000, 0xFBC0,0x9BDD,0x0000, /* 1BDB */ +0xFBC0,0x9BDE,0x0000, 0xFBC0,0x9BDF,0x0000, 0xFBC0,0x9BE0,0x0000, /* 1BDE */ +0xFBC0,0x9BE1,0x0000, 0xFBC0,0x9BE2,0x0000, 0xFBC0,0x9BE3,0x0000, /* 1BE1 */ +0xFBC0,0x9BE4,0x0000, 0xFBC0,0x9BE5,0x0000, 0xFBC0,0x9BE6,0x0000, /* 1BE4 */ +0xFBC0,0x9BE7,0x0000, 0xFBC0,0x9BE8,0x0000, 0xFBC0,0x9BE9,0x0000, /* 1BE7 */ +0xFBC0,0x9BEA,0x0000, 0xFBC0,0x9BEB,0x0000, 0xFBC0,0x9BEC,0x0000, /* 1BEA */ +0xFBC0,0x9BED,0x0000, 0xFBC0,0x9BEE,0x0000, 0xFBC0,0x9BEF,0x0000, /* 1BED */ +0xFBC0,0x9BF0,0x0000, 0xFBC0,0x9BF1,0x0000, 0xFBC0,0x9BF2,0x0000, /* 1BF0 */ +0xFBC0,0x9BF3,0x0000, 0xFBC0,0x9BF4,0x0000, 0xFBC0,0x9BF5,0x0000, /* 1BF3 */ +0xFBC0,0x9BF6,0x0000, 0xFBC0,0x9BF7,0x0000, 0xFBC0,0x9BF8,0x0000, /* 1BF6 */ +0xFBC0,0x9BF9,0x0000, 0xFBC0,0x9BFA,0x0000, 0xFBC0,0x9BFB,0x0000, /* 1BF9 */ +0xFBC0,0x9BFC,0x0000, 0xFBC0,0x9BFD,0x0000, 0xFBC0,0x9BFE,0x0000, /* 1BFC */ +0xFBC0,0x9BFF,0x0000 }; + +static const uint16 uca520_p01C[]= { /* 1C00 (3 weights per char) */ +0x207D,0x0000,0x0000, 0x207E,0x0000,0x0000, 0x207F,0x0000,0x0000, /* 1C00 */ +0x2080,0x0000,0x0000, 0x2081,0x0000,0x0000, 0x2082,0x0000,0x0000, /* 1C03 */ +0x2083,0x0000,0x0000, 0x2084,0x0000,0x0000, 0x2085,0x0000,0x0000, /* 1C06 */ +0x2086,0x0000,0x0000, 0x208A,0x0000,0x0000, 0x208B,0x0000,0x0000, /* 1C09 */ +0x208C,0x0000,0x0000, 0x208D,0x0000,0x0000, 0x208E,0x0000,0x0000, /* 1C0C */ +0x208F,0x0000,0x0000, 0x2090,0x0000,0x0000, 0x2091,0x0000,0x0000, /* 1C0F */ +0x2092,0x0000,0x0000, 0x2093,0x0000,0x0000, 0x2094,0x0000,0x0000, /* 1C12 */ +0x2095,0x0000,0x0000, 0x2096,0x0000,0x0000, 0x2097,0x0000,0x0000, /* 1C15 */ +0x2098,0x0000,0x0000, 0x2099,0x0000,0x0000, 0x209A,0x0000,0x0000, /* 1C18 */ +0x209C,0x0000,0x0000, 0x209E,0x0000,0x0000, 0x209F,0x0000,0x0000, /* 1C1B */ +0x20A0,0x0000,0x0000, 0x20A1,0x0000,0x0000, 0x20A2,0x0000,0x0000, /* 1C1E */ +0x20A3,0x0000,0x0000, 0x20A4,0x0000,0x0000, 0x20A5,0x0000,0x0000, /* 1C21 */ +0x209B,0x0000,0x0000, 0x209D,0x0000,0x0000, 0x20A7,0x0000,0x0000, /* 1C24 */ +0x20A8,0x0000,0x0000, 0x20A9,0x0000,0x0000, 0x20AA,0x0000,0x0000, /* 1C27 */ +0x20AB,0x0000,0x0000, 0x20AC,0x0000,0x0000, 0x20AD,0x0000,0x0000, /* 1C2A */ +0x20AE,0x0000,0x0000, 0x20AF,0x0000,0x0000, 0x20B0,0x0000,0x0000, /* 1C2D */ +0x20B1,0x0000,0x0000, 0x20B2,0x0000,0x0000, 0x20B3,0x0000,0x0000, /* 1C30 */ +0x20B4,0x0000,0x0000, 0x20B5,0x0000,0x0000, 0x20B6,0x0000,0x0000, /* 1C33 */ +0x20A6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x9C38,0x0000, /* 1C36 */ +0xFBC0,0x9C39,0x0000, 0xFBC0,0x9C3A,0x0000, 0x0298,0x0000,0x0000, /* 1C39 */ +0x0299,0x0000,0x0000, 0x03BE,0x0000,0x0000, 0x03BF,0x0000,0x0000, /* 1C3C */ +0x03C0,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1C3F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1C42 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1C45 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x9C4A,0x0000, /* 1C48 */ +0xFBC0,0x9C4B,0x0000, 0xFBC0,0x9C4C,0x0000, 0x2087,0x0000,0x0000, /* 1C4B */ +0x2088,0x0000,0x0000, 0x2089,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1C4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1C51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1C54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1C57 */ +0x24AA,0x0000,0x0000, 0x24AB,0x0000,0x0000, 0x24AC,0x0000,0x0000, /* 1C5A */ +0x24AD,0x0000,0x0000, 0x24AE,0x0000,0x0000, 0x24AF,0x0000,0x0000, /* 1C5D */ +0x24B0,0x0000,0x0000, 0x24B1,0x0000,0x0000, 0x24B2,0x0000,0x0000, /* 1C60 */ +0x24B3,0x0000,0x0000, 0x24B4,0x0000,0x0000, 0x24B5,0x0000,0x0000, /* 1C63 */ +0x24B6,0x0000,0x0000, 0x24B7,0x0000,0x0000, 0x24B8,0x0000,0x0000, /* 1C66 */ +0x24B9,0x0000,0x0000, 0x24BA,0x0000,0x0000, 0x24BB,0x0000,0x0000, /* 1C69 */ +0x24BC,0x0000,0x0000, 0x24BD,0x0000,0x0000, 0x24BE,0x0000,0x0000, /* 1C6C */ +0x24BF,0x0000,0x0000, 0x24C0,0x0000,0x0000, 0x24C1,0x0000,0x0000, /* 1C6F */ +0x24C2,0x0000,0x0000, 0x24C3,0x0000,0x0000, 0x24C4,0x0000,0x0000, /* 1C72 */ +0x24C5,0x0000,0x0000, 0x24C6,0x0000,0x0000, 0x24C7,0x0000,0x0000, /* 1C75 */ +0x24C8,0x0000,0x0000, 0x24C9,0x0000,0x0000, 0x24CA,0x0000,0x0000, /* 1C78 */ +0x24CB,0x0000,0x0000, 0x24CC,0x0000,0x0000, 0x24CD,0x0000,0x0000, /* 1C7B */ +0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, 0xFBC0,0x9C80,0x0000, /* 1C7E */ +0xFBC0,0x9C81,0x0000, 0xFBC0,0x9C82,0x0000, 0xFBC0,0x9C83,0x0000, /* 1C81 */ +0xFBC0,0x9C84,0x0000, 0xFBC0,0x9C85,0x0000, 0xFBC0,0x9C86,0x0000, /* 1C84 */ +0xFBC0,0x9C87,0x0000, 0xFBC0,0x9C88,0x0000, 0xFBC0,0x9C89,0x0000, /* 1C87 */ +0xFBC0,0x9C8A,0x0000, 0xFBC0,0x9C8B,0x0000, 0xFBC0,0x9C8C,0x0000, /* 1C8A */ +0xFBC0,0x9C8D,0x0000, 0xFBC0,0x9C8E,0x0000, 0xFBC0,0x9C8F,0x0000, /* 1C8D */ +0xFBC0,0x9C90,0x0000, 0xFBC0,0x9C91,0x0000, 0xFBC0,0x9C92,0x0000, /* 1C90 */ +0xFBC0,0x9C93,0x0000, 0xFBC0,0x9C94,0x0000, 0xFBC0,0x9C95,0x0000, /* 1C93 */ +0xFBC0,0x9C96,0x0000, 0xFBC0,0x9C97,0x0000, 0xFBC0,0x9C98,0x0000, /* 1C96 */ +0xFBC0,0x9C99,0x0000, 0xFBC0,0x9C9A,0x0000, 0xFBC0,0x9C9B,0x0000, /* 1C99 */ +0xFBC0,0x9C9C,0x0000, 0xFBC0,0x9C9D,0x0000, 0xFBC0,0x9C9E,0x0000, /* 1C9C */ +0xFBC0,0x9C9F,0x0000, 0xFBC0,0x9CA0,0x0000, 0xFBC0,0x9CA1,0x0000, /* 1C9F */ +0xFBC0,0x9CA2,0x0000, 0xFBC0,0x9CA3,0x0000, 0xFBC0,0x9CA4,0x0000, /* 1CA2 */ +0xFBC0,0x9CA5,0x0000, 0xFBC0,0x9CA6,0x0000, 0xFBC0,0x9CA7,0x0000, /* 1CA5 */ +0xFBC0,0x9CA8,0x0000, 0xFBC0,0x9CA9,0x0000, 0xFBC0,0x9CAA,0x0000, /* 1CA8 */ +0xFBC0,0x9CAB,0x0000, 0xFBC0,0x9CAC,0x0000, 0xFBC0,0x9CAD,0x0000, /* 1CAB */ +0xFBC0,0x9CAE,0x0000, 0xFBC0,0x9CAF,0x0000, 0xFBC0,0x9CB0,0x0000, /* 1CAE */ +0xFBC0,0x9CB1,0x0000, 0xFBC0,0x9CB2,0x0000, 0xFBC0,0x9CB3,0x0000, /* 1CB1 */ +0xFBC0,0x9CB4,0x0000, 0xFBC0,0x9CB5,0x0000, 0xFBC0,0x9CB6,0x0000, /* 1CB4 */ +0xFBC0,0x9CB7,0x0000, 0xFBC0,0x9CB8,0x0000, 0xFBC0,0x9CB9,0x0000, /* 1CB7 */ +0xFBC0,0x9CBA,0x0000, 0xFBC0,0x9CBB,0x0000, 0xFBC0,0x9CBC,0x0000, /* 1CBA */ +0xFBC0,0x9CBD,0x0000, 0xFBC0,0x9CBE,0x0000, 0xFBC0,0x9CBF,0x0000, /* 1CBD */ +0xFBC0,0x9CC0,0x0000, 0xFBC0,0x9CC1,0x0000, 0xFBC0,0x9CC2,0x0000, /* 1CC0 */ +0xFBC0,0x9CC3,0x0000, 0xFBC0,0x9CC4,0x0000, 0xFBC0,0x9CC5,0x0000, /* 1CC3 */ +0xFBC0,0x9CC6,0x0000, 0xFBC0,0x9CC7,0x0000, 0xFBC0,0x9CC8,0x0000, /* 1CC6 */ +0xFBC0,0x9CC9,0x0000, 0xFBC0,0x9CCA,0x0000, 0xFBC0,0x9CCB,0x0000, /* 1CC9 */ +0xFBC0,0x9CCC,0x0000, 0xFBC0,0x9CCD,0x0000, 0xFBC0,0x9CCE,0x0000, /* 1CCC */ +0xFBC0,0x9CCF,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CCF */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CE7 */ +0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CEA */ +0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CED */ +0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CF0 */ +0xFBC0,0x9CF3,0x0000, 0xFBC0,0x9CF4,0x0000, 0xFBC0,0x9CF5,0x0000, /* 1CF3 */ +0xFBC0,0x9CF6,0x0000, 0xFBC0,0x9CF7,0x0000, 0xFBC0,0x9CF8,0x0000, /* 1CF6 */ +0xFBC0,0x9CF9,0x0000, 0xFBC0,0x9CFA,0x0000, 0xFBC0,0x9CFB,0x0000, /* 1CF9 */ +0xFBC0,0x9CFC,0x0000, 0xFBC0,0x9CFD,0x0000, 0xFBC0,0x9CFE,0x0000, /* 1CFC */ +0xFBC0,0x9CFF,0x0000 }; + +static const uint16 uca520_p01D[]= { /* 1D00 (3 weights per char) */ +0x1213,0x0000,0x0000, 0x1216,0x0000,0x0000, 0x1217,0x0000,0x0000, /* 1D00 */ +0x1232,0x0000,0x0000, 0x1241,0x0000,0x0000, 0x1254,0x0000,0x0000, /* 1D03 */ +0x1255,0x0000,0x0000, 0x126F,0x0000,0x0000, 0x1292,0x0000,0x0000, /* 1D06 */ +0x12F9,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x1322,0x0000,0x0000, /* 1D09 */ +0x1339,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x1376,0x0000,0x0000, /* 1D0C */ +0x1392,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x1393,0x0000,0x0000, /* 1D0F */ +0x139F,0x0000,0x0000, 0x1399,0x0000,0x0000, 0x1398,0x0000,0x0000, /* 1D12 */ +0x13B2,0x0000,0x0000, 0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, /* 1D15 */ +0x13B7,0x0000,0x0000, 0x13E3,0x0000,0x0000, 0x13ED,0x0000,0x0000, /* 1D18 */ +0x1437,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D1B */ +0x1459,0x0000,0x0000, 0x1471,0x0000,0x0000, 0x147F,0x0000,0x0000, /* 1D1E */ +0x1491,0x0000,0x0000, 0x14B1,0x0000,0x0000, 0x14CE,0x0000,0x0000, /* 1D21 */ +0x1516,0x0000,0x0000, 0x1517,0x0000,0x0000, 0x1548,0x0000,0x0000, /* 1D24 */ +0x1556,0x0000,0x0000, 0x155C,0x0000,0x0000, 0x1561,0x0000,0x0000, /* 1D27 */ +0x156C,0x0000,0x0000, 0x1661,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D2A */ +0x120F,0x126B,0x0000, 0x1225,0x0000,0x0000, 0x1231,0x0000,0x0000, /* 1D2D */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 1D30 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D33 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D36 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x1375,0x0000,0x0000, /* 1D39 */ +0x138E,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D3C */ +0x13DA,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D3F */ +0x148D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 1D42 */ +0x121C,0x0000,0x0000, 0x1217,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D45 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 1D48 */ +0x1280,0x0000,0x0000, 0x1292,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D4B */ +0x12F9,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4E */ +0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 1D51 */ +0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D54 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D57 */ +0x146D,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x1517,0x0000,0x0000, /* 1D5A */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D5D */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D60 */ +0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D63 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D66 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x145A,0x0000,0x0000, /* 1D69 */ +0x1233,0x0000,0x0000, 0x1256,0x0000,0x0000, 0x12A8,0x0000,0x0000, /* 1D6C */ +0x1364,0x0000,0x0000, 0x1377,0x0000,0x0000, 0x13BA,0x0000,0x0000, /* 1D6F */ +0x13E8,0x0000,0x0000, 0x1404,0x0000,0x0000, 0x1415,0x0000,0x0000, /* 1D72 */ +0x143D,0x0000,0x0000, 0x14B6,0x0000,0x0000, 0x12C9,0x0000,0x0000, /* 1D75 */ +0x1678,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x1433,0x12D3,0x0000, /* 1D78 */ +0x12FE,0x0000,0x0000, 0x1304,0x0000,0x0000, 0x13B8,0x0000,0x0000, /* 1D7B */ +0x145F,0x0000,0x0000, 0x147A,0x0000,0x0000, 0x1234,0x0000,0x0000, /* 1D7E */ +0x1257,0x0000,0x0000, 0x12A9,0x0000,0x0000, 0x12C0,0x0000,0x0000, /* 1D81 */ +0x1323,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1365,0x0000,0x0000, /* 1D84 */ +0x1380,0x0000,0x0000, 0x13BB,0x0000,0x0000, 0x13F2,0x0000,0x0000, /* 1D87 */ +0x1416,0x0000,0x0000, 0x1425,0x0000,0x0000, 0x1481,0x0000,0x0000, /* 1D8A */ +0x149B,0x0000,0x0000, 0x14B7,0x0000,0x0000, 0x1215,0x0000,0x0000, /* 1D8D */ +0x1220,0x0000,0x0000, 0x1260,0x0000,0x0000, 0x1274,0x0000,0x0000, /* 1D90 */ +0x1284,0x0000,0x0000, 0x1291,0x0000,0x0000, 0x127F,0x0000,0x0000, /* 1D93 */ +0x12FF,0x0000,0x0000, 0x13A0,0x0000,0x0000, 0x142E,0x0000,0x0000, /* 1D96 */ +0x1460,0x0000,0x0000, 0x14D3,0x0000,0x0000, 0x1221,0x0000,0x0000, /* 1D99 */ +0x123D,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D9C */ +0x128D,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 1D9F */ +0x12B4,0x0000,0x0000, 0x1461,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 1DA2 */ +0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x12FE,0x0000,0x0000, /* 1DA5 */ +0x1312,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1348,0x0000,0x0000, /* 1DA8 */ +0x1334,0x0000,0x0000, 0x1366,0x0000,0x0000, 0x1472,0x0000,0x0000, /* 1DAB */ +0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 1DAE */ +0x13A5,0x0000,0x0000, 0x13C3,0x0000,0x0000, 0x1417,0x0000,0x0000, /* 1DB1 */ +0x1421,0x0000,0x0000, 0x143E,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 1DB4 */ +0x1476,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1482,0x0000,0x0000, /* 1DB7 */ +0x1489,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14BC,0x0000,0x0000, /* 1DBA */ +0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1DBD */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC6 */ +0x0000,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCF */ +0x14ED,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, /* 1DD2 */ +0x120F,0x138E,0x0000, 0x120F,0x147B,0x0000, 0x123D,0x0000,0x0000, /* 1DD5 */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1DD8 */ +0x12B8,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1DDB */ +0x1334,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1DDE */ +0x1371,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x13E2,0x0000,0x0000, /* 1DE1 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1DE4 */ +0xFBC0,0x9DE7,0x0000, 0xFBC0,0x9DE8,0x0000, 0xFBC0,0x9DE9,0x0000, /* 1DE7 */ +0xFBC0,0x9DEA,0x0000, 0xFBC0,0x9DEB,0x0000, 0xFBC0,0x9DEC,0x0000, /* 1DEA */ +0xFBC0,0x9DED,0x0000, 0xFBC0,0x9DEE,0x0000, 0xFBC0,0x9DEF,0x0000, /* 1DED */ +0xFBC0,0x9DF0,0x0000, 0xFBC0,0x9DF1,0x0000, 0xFBC0,0x9DF2,0x0000, /* 1DF0 */ +0xFBC0,0x9DF3,0x0000, 0xFBC0,0x9DF4,0x0000, 0xFBC0,0x9DF5,0x0000, /* 1DF3 */ +0xFBC0,0x9DF6,0x0000, 0xFBC0,0x9DF7,0x0000, 0xFBC0,0x9DF8,0x0000, /* 1DF6 */ +0xFBC0,0x9DF9,0x0000, 0xFBC0,0x9DFA,0x0000, 0xFBC0,0x9DFB,0x0000, /* 1DF9 */ +0xFBC0,0x9DFC,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DFC */ +0x0000,0x0000,0x0000 }; + +static const uint16 uca520_p01E[]= { /* 1E00 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E00 */ +0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E03 */ +0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1E06 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E09 */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0C */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0F */ +0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E12 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E15 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E18 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E1B */ +0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1E1E */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E21 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E24 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E27 */ +0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2A */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2D */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E30 */ +0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E33 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E36 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E39 */ +0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3C */ +0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3F */ +0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E42 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E45 */ +0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E48 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4B */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4E */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E51 */ +0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1E54 */ +0x13B3,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E57 */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5A */ +0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5D */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E60 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E63 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E66 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E69 */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6C */ +0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6F */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E72 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E75 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E78 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1E7B */ +0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E7E */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E81 */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E84 */ +0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E87 */ +0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1E8A */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1E8D */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E90 */ +0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E93 */ +0x12D3,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E96 */ +0x149C,0x0000,0x0000, 0x120F,0x150D,0x0000, 0x1410,0x0000,0x0000, /* 1E99 */ +0x141F,0x0000,0x0000, 0x1420,0x0000,0x0000, 0x1410,0x1410,0x0000, /* 1E9C */ +0x126A,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1E9F */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA2 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA5 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA8 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAB */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAE */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB1 */ +0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB4 */ +0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EB7 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBA */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBD */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC0 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC3 */ +0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC6 */ +0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC9 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECC */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECF */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED2 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED5 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED8 */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDB */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDE */ +0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EE1 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE4 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE7 */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EEA */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EED */ +0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF0 */ +0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF3 */ +0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF6 */ +0x149C,0x0000,0x0000, 0x1330,0x1330,0x0000, 0x1330,0x1330,0x0000, /* 1EF9 */ +0x1488,0x0000,0x0000, 0x1488,0x0000,0x0000, 0x14AC,0x0000,0x0000, /* 1EFC */ +0x14AC,0x0000,0x0000 }; + +static const uint16 uca520_p01F[]= { /* 1F00 (3 weights per char) */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F00 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F03 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F06 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F09 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F0C */ +0x1545,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F0F */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F12 */ +0x154A,0x0000,0x0000, 0xFBC0,0x9F16,0x0000, 0xFBC0,0x9F17,0x0000, /* 1F15 */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F18 */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F1B */ +0xFBC0,0x9F1E,0x0000, 0xFBC0,0x9F1F,0x0000, 0x1550,0x0000,0x0000, /* 1F1E */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F21 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F24 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F27 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2A */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2D */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F30 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F33 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F36 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F39 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F3C */ +0x1552,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F3F */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F42 */ +0x155A,0x0000,0x0000, 0xFBC0,0x9F46,0x0000, 0xFBC0,0x9F47,0x0000, /* 1F45 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F48 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F4B */ +0xFBC0,0x9F4E,0x0000, 0xFBC0,0x9F4F,0x0000, 0x1568,0x0000,0x0000, /* 1F4E */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F51 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F54 */ +0x1568,0x0000,0x0000, 0xFBC0,0x9F58,0x0000, 0x1568,0x0000,0x0000, /* 1F57 */ +0xFBC0,0x9F5A,0x0000, 0x1568,0x0000,0x0000, 0xFBC0,0x9F5C,0x0000, /* 1F5A */ +0x1568,0x0000,0x0000, 0xFBC0,0x9F5E,0x0000, 0x1568,0x0000,0x0000, /* 1F5D */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F60 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F63 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F66 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F69 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F6C */ +0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F6F */ +0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F72 */ +0x1550,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F75 */ +0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F78 */ +0x1568,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F7B */ +0xFBC0,0x9F7E,0x0000, 0xFBC0,0x9F7F,0x0000, 0x1545,0x0000,0x0000, /* 1F7E */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F81 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F84 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F87 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8A */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8D */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F90 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F93 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F96 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F99 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F9C */ +0x1550,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F9F */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA2 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA5 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA8 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FAB */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FAE */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB1 */ +0x1545,0x0000,0x0000, 0xFBC0,0x9FB5,0x0000, 0x1545,0x0000,0x0000, /* 1FB4 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB7 */ +0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FBA */ +0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FBD */ +0x021F,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC0 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0xFBC0,0x9FC5,0x0000, /* 1FC3 */ +0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1FC6 */ +0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC9 */ +0x1550,0x0000,0x0000, 0x0219,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FCC */ +0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FCF */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0xFBC0,0x9FD4,0x0000, /* 1FD2 */ +0xFBC0,0x9FD5,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD5 */ +0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD8 */ +0x1552,0x0000,0x0000, 0xFBC0,0x9FDC,0x0000, 0x021A,0x0000,0x0000, /* 1FDB */ +0x021A,0x0000,0x0000, 0x021A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FDE */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE1 */ +0x1560,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE4 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE7 */ +0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1FEA */ +0x0216,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x020E,0x0000,0x0000, /* 1FED */ +0xFBC0,0x9FF0,0x0000, 0xFBC0,0x9FF1,0x0000, 0x156D,0x0000,0x0000, /* 1FF0 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0xFBC0,0x9FF5,0x0000, /* 1FF3 */ +0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1FF6 */ +0x155A,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FF9 */ +0x156D,0x0000,0x0000, 0x020F,0x0000,0x0000, 0x021A,0x0000,0x0000, /* 1FFC */ +0xFBC0,0x9FFF,0x0000 }; + +static const uint16 uca520_p020[]= { /* 2000 (5 weights per char) */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2000 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2001 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2002 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2003 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2004 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2005 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2006 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2007 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2008 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 2009 */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 200A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200E */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 200F */ +0x0229,0x0000,0x0000,0x0000,0x0000, /* 2010 */ +0x0229,0x0000,0x0000,0x0000,0x0000, /* 2011 */ +0x022A,0x0000,0x0000,0x0000,0x0000, /* 2012 */ +0x022B,0x0000,0x0000,0x0000,0x0000, /* 2013 */ +0x022C,0x0000,0x0000,0x0000,0x0000, /* 2014 */ +0x022D,0x0000,0x0000,0x0000,0x0000, /* 2015 */ +0x055A,0x0000,0x0000,0x0000,0x0000, /* 2016 */ +0x021E,0x0000,0x0000,0x0000,0x0000, /* 2017 */ +0x02EF,0x0000,0x0000,0x0000,0x0000, /* 2018 */ +0x02F0,0x0000,0x0000,0x0000,0x0000, /* 2019 */ +0x02F1,0x0000,0x0000,0x0000,0x0000, /* 201A */ +0x02F2,0x0000,0x0000,0x0000,0x0000, /* 201B */ +0x02F6,0x0000,0x0000,0x0000,0x0000, /* 201C */ +0x02F7,0x0000,0x0000,0x0000,0x0000, /* 201D */ +0x02F8,0x0000,0x0000,0x0000,0x0000, /* 201E */ +0x02F9,0x0000,0x0000,0x0000,0x0000, /* 201F */ +0x036A,0x0000,0x0000,0x0000,0x0000, /* 2020 */ +0x036B,0x0000,0x0000,0x0000,0x0000, /* 2021 */ +0x036C,0x0000,0x0000,0x0000,0x0000, /* 2022 */ +0x036D,0x0000,0x0000,0x0000,0x0000, /* 2023 */ +0x0281,0x0000,0x0000,0x0000,0x0000, /* 2024 */ +0x0281,0x0281,0x0000,0x0000,0x0000, /* 2025 */ +0x0281,0x0281,0x0281,0x0000,0x0000, /* 2026 */ +0x036E,0x0000,0x0000,0x0000,0x0000, /* 2027 */ +0x0208,0x0000,0x0000,0x0000,0x0000, /* 2028 */ +0x0209,0x0000,0x0000,0x0000,0x0000, /* 2029 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 202E */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 202F */ +0x0365,0x0000,0x0000,0x0000,0x0000, /* 2030 */ +0x0367,0x0000,0x0000,0x0000,0x0000, /* 2031 */ +0x0372,0x0000,0x0000,0x0000,0x0000, /* 2032 */ +0x0372,0x0372,0x0000,0x0000,0x0000, /* 2033 */ +0x0372,0x0372,0x0372,0x0000,0x0000, /* 2034 */ +0x0373,0x0000,0x0000,0x0000,0x0000, /* 2035 */ +0x0373,0x0373,0x0000,0x0000,0x0000, /* 2036 */ +0x0373,0x0373,0x0373,0x0000,0x0000, /* 2037 */ +0x0376,0x0000,0x0000,0x0000,0x0000, /* 2038 */ +0x02F3,0x0000,0x0000,0x0000,0x0000, /* 2039 */ +0x02F4,0x0000,0x0000,0x0000,0x0000, /* 203A */ +0x0377,0x0000,0x0000,0x0000,0x0000, /* 203B */ +0x026E,0x026E,0x0000,0x0000,0x0000, /* 203C */ +0x027F,0x0000,0x0000,0x0000,0x0000, /* 203D */ +0x0213,0x0000,0x0000,0x0000,0x0000, /* 203E */ +0x0378,0x0000,0x0000,0x0000,0x0000, /* 203F */ +0x037A,0x0000,0x0000,0x0000,0x0000, /* 2040 */ +0x037C,0x0000,0x0000,0x0000,0x0000, /* 2041 */ +0x037D,0x0000,0x0000,0x0000,0x0000, /* 2042 */ +0x036F,0x0000,0x0000,0x0000,0x0000, /* 2043 */ +0x035D,0x0000,0x0000,0x0000,0x0000, /* 2044 */ +0x030B,0x0000,0x0000,0x0000,0x0000, /* 2045 */ +0x030C,0x0000,0x0000,0x0000,0x0000, /* 2046 */ +0x0273,0x0273,0x0000,0x0000,0x0000, /* 2047 */ +0x0273,0x026E,0x0000,0x0000,0x0000, /* 2048 */ +0x026E,0x0273,0x0000,0x0000,0x0000, /* 2049 */ +0x0361,0x0000,0x0000,0x0000,0x0000, /* 204A */ +0x0353,0x0000,0x0000,0x0000,0x0000, /* 204B */ +0x0370,0x0000,0x0000,0x0000,0x0000, /* 204C */ +0x0371,0x0000,0x0000,0x0000,0x0000, /* 204D */ +0x0358,0x0000,0x0000,0x0000,0x0000, /* 204E */ +0x0245,0x0000,0x0000,0x0000,0x0000, /* 204F */ +0x037B,0x0000,0x0000,0x0000,0x0000, /* 2050 */ +0x0359,0x0000,0x0000,0x0000,0x0000, /* 2051 */ +0x0369,0x0000,0x0000,0x0000,0x0000, /* 2052 */ +0x022E,0x0000,0x0000,0x0000,0x0000, /* 2053 */ +0x0379,0x0000,0x0000,0x0000,0x0000, /* 2054 */ +0x02D3,0x0000,0x0000,0x0000,0x0000, /* 2055 */ +0x02D4,0x0000,0x0000,0x0000,0x0000, /* 2056 */ +0x0372,0x0372,0x0372,0x0372,0x0000, /* 2057 */ +0x02D5,0x0000,0x0000,0x0000,0x0000, /* 2058 */ +0x02D6,0x0000,0x0000,0x0000,0x0000, /* 2059 */ +0x02D7,0x0000,0x0000,0x0000,0x0000, /* 205A */ +0x02D8,0x0000,0x0000,0x0000,0x0000, /* 205B */ +0x02D9,0x0000,0x0000,0x0000,0x0000, /* 205C */ +0x02DA,0x0000,0x0000,0x0000,0x0000, /* 205D */ +0x02DB,0x0000,0x0000,0x0000,0x0000, /* 205E */ +0x020A,0x0000,0x0000,0x0000,0x0000, /* 205F */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2060 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2061 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2062 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2063 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 2064 */ +0xFBC0,0xA065,0x0000,0x0000,0x0000, /* 2065 */ +0xFBC0,0xA066,0x0000,0x0000,0x0000, /* 2066 */ +0xFBC0,0xA067,0x0000,0x0000,0x0000, /* 2067 */ +0xFBC0,0xA068,0x0000,0x0000,0x0000, /* 2068 */ +0xFBC0,0xA069,0x0000,0x0000,0x0000, /* 2069 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206A */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206B */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206C */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206D */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206E */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 206F */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 2070 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2071 */ +0xFBC0,0xA072,0x0000,0x0000,0x0000, /* 2072 */ +0xFBC0,0xA073,0x0000,0x0000,0x0000, /* 2073 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2074 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2075 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2076 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2077 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2078 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2079 */ +0x0550,0x0000,0x0000,0x0000,0x0000, /* 207A */ +0x055C,0x0000,0x0000,0x0000,0x0000, /* 207B */ +0x0555,0x0000,0x0000,0x0000,0x0000, /* 207C */ +0x02FF,0x0000,0x0000,0x0000,0x0000, /* 207D */ +0x0300,0x0000,0x0000,0x0000,0x0000, /* 207E */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 207F */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 2080 */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 2081 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 2082 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 2083 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2084 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2085 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2086 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2087 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2088 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2089 */ +0x0550,0x0000,0x0000,0x0000,0x0000, /* 208A */ +0x055C,0x0000,0x0000,0x0000,0x0000, /* 208B */ +0x0555,0x0000,0x0000,0x0000,0x0000, /* 208C */ +0x02FF,0x0000,0x0000,0x0000,0x0000, /* 208D */ +0x0300,0x0000,0x0000,0x0000,0x0000, /* 208E */ +0xFBC0,0xA08F,0x0000,0x0000,0x0000, /* 208F */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 2090 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2091 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 2092 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2093 */ +0x127B,0x0000,0x0000,0x0000,0x0000, /* 2094 */ +0xFBC0,0xA095,0x0000,0x0000,0x0000, /* 2095 */ +0xFBC0,0xA096,0x0000,0x0000,0x0000, /* 2096 */ +0xFBC0,0xA097,0x0000,0x0000,0x0000, /* 2097 */ +0xFBC0,0xA098,0x0000,0x0000,0x0000, /* 2098 */ +0xFBC0,0xA099,0x0000,0x0000,0x0000, /* 2099 */ +0xFBC0,0xA09A,0x0000,0x0000,0x0000, /* 209A */ +0xFBC0,0xA09B,0x0000,0x0000,0x0000, /* 209B */ +0xFBC0,0xA09C,0x0000,0x0000,0x0000, /* 209C */ +0xFBC0,0xA09D,0x0000,0x0000,0x0000, /* 209D */ +0xFBC0,0xA09E,0x0000,0x0000,0x0000, /* 209E */ +0xFBC0,0xA09F,0x0000,0x0000,0x0000, /* 209F */ +0x11ED,0x0000,0x0000,0x0000,0x0000, /* 20A0 */ +0x11EE,0x0000,0x0000,0x0000,0x0000, /* 20A1 */ +0x11EF,0x0000,0x0000,0x0000,0x0000, /* 20A2 */ +0x11F0,0x0000,0x0000,0x0000,0x0000, /* 20A3 */ +0x11F1,0x0000,0x0000,0x0000,0x0000, /* 20A4 */ +0x11F2,0x0000,0x0000,0x0000,0x0000, /* 20A5 */ +0x11F3,0x0000,0x0000,0x0000,0x0000, /* 20A6 */ +0x11F4,0x0000,0x0000,0x0000,0x0000, /* 20A7 */ +0x13DA,0x1410,0x0000,0x0000,0x0000, /* 20A8 */ +0x11F5,0x0000,0x0000,0x0000,0x0000, /* 20A9 */ +0x11F6,0x0000,0x0000,0x0000,0x0000, /* 20AA */ +0x11F7,0x0000,0x0000,0x0000,0x0000, /* 20AB */ +0x11F8,0x0000,0x0000,0x0000,0x0000, /* 20AC */ +0x11F9,0x0000,0x0000,0x0000,0x0000, /* 20AD */ +0x11FA,0x0000,0x0000,0x0000,0x0000, /* 20AE */ +0x11FB,0x0000,0x0000,0x0000,0x0000, /* 20AF */ +0x11FC,0x0000,0x0000,0x0000,0x0000, /* 20B0 */ +0x11FD,0x0000,0x0000,0x0000,0x0000, /* 20B1 */ +0x11FE,0x0000,0x0000,0x0000,0x0000, /* 20B2 */ +0x11FF,0x0000,0x0000,0x0000,0x0000, /* 20B3 */ +0x1200,0x0000,0x0000,0x0000,0x0000, /* 20B4 */ +0x1201,0x0000,0x0000,0x0000,0x0000, /* 20B5 */ +0x1202,0x0000,0x0000,0x0000,0x0000, /* 20B6 */ +0x1203,0x0000,0x0000,0x0000,0x0000, /* 20B7 */ +0x1204,0x0000,0x0000,0x0000,0x0000, /* 20B8 */ +0xFBC0,0xA0B9,0x0000,0x0000,0x0000, /* 20B9 */ +0xFBC0,0xA0BA,0x0000,0x0000,0x0000, /* 20BA */ +0xFBC0,0xA0BB,0x0000,0x0000,0x0000, /* 20BB */ +0xFBC0,0xA0BC,0x0000,0x0000,0x0000, /* 20BC */ +0xFBC0,0xA0BD,0x0000,0x0000,0x0000, /* 20BD */ +0xFBC0,0xA0BE,0x0000,0x0000,0x0000, /* 20BE */ +0xFBC0,0xA0BF,0x0000,0x0000,0x0000, /* 20BF */ +0xFBC0,0xA0C0,0x0000,0x0000,0x0000, /* 20C0 */ +0xFBC0,0xA0C1,0x0000,0x0000,0x0000, /* 20C1 */ +0xFBC0,0xA0C2,0x0000,0x0000,0x0000, /* 20C2 */ +0xFBC0,0xA0C3,0x0000,0x0000,0x0000, /* 20C3 */ +0xFBC0,0xA0C4,0x0000,0x0000,0x0000, /* 20C4 */ +0xFBC0,0xA0C5,0x0000,0x0000,0x0000, /* 20C5 */ +0xFBC0,0xA0C6,0x0000,0x0000,0x0000, /* 20C6 */ +0xFBC0,0xA0C7,0x0000,0x0000,0x0000, /* 20C7 */ +0xFBC0,0xA0C8,0x0000,0x0000,0x0000, /* 20C8 */ +0xFBC0,0xA0C9,0x0000,0x0000,0x0000, /* 20C9 */ +0xFBC0,0xA0CA,0x0000,0x0000,0x0000, /* 20CA */ +0xFBC0,0xA0CB,0x0000,0x0000,0x0000, /* 20CB */ +0xFBC0,0xA0CC,0x0000,0x0000,0x0000, /* 20CC */ +0xFBC0,0xA0CD,0x0000,0x0000,0x0000, /* 20CD */ +0xFBC0,0xA0CE,0x0000,0x0000,0x0000, /* 20CE */ +0xFBC0,0xA0CF,0x0000,0x0000,0x0000, /* 20CF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D0 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D1 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D2 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D3 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D4 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D5 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D6 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D7 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D8 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D9 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DA */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DB */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DC */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DD */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DE */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E0 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E1 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E2 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E3 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E4 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E5 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E6 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E7 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E8 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E9 */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EA */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EB */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EC */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20ED */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EE */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EF */ +0x0000,0x0000,0x0000,0x0000,0x0000, /* 20F0 */ +0xFBC0,0xA0F1,0x0000,0x0000,0x0000, /* 20F1 */ +0xFBC0,0xA0F2,0x0000,0x0000,0x0000, /* 20F2 */ +0xFBC0,0xA0F3,0x0000,0x0000,0x0000, /* 20F3 */ +0xFBC0,0xA0F4,0x0000,0x0000,0x0000, /* 20F4 */ +0xFBC0,0xA0F5,0x0000,0x0000,0x0000, /* 20F5 */ +0xFBC0,0xA0F6,0x0000,0x0000,0x0000, /* 20F6 */ +0xFBC0,0xA0F7,0x0000,0x0000,0x0000, /* 20F7 */ +0xFBC0,0xA0F8,0x0000,0x0000,0x0000, /* 20F8 */ +0xFBC0,0xA0F9,0x0000,0x0000,0x0000, /* 20F9 */ +0xFBC0,0xA0FA,0x0000,0x0000,0x0000, /* 20FA */ +0xFBC0,0xA0FB,0x0000,0x0000,0x0000, /* 20FB */ +0xFBC0,0xA0FC,0x0000,0x0000,0x0000, /* 20FC */ +0xFBC0,0xA0FD,0x0000,0x0000,0x0000, /* 20FD */ +0xFBC0,0xA0FE,0x0000,0x0000,0x0000, /* 20FE */ +0xFBC0,0xA0FF,0x0000,0x0000,0x0000 /* 20FF */ +}; + +static const uint16 uca520_p021[]= { /* 2100 (5 weights per char) */ +0x120F,0x035C,0x123D,0x0000,0x0000, /* 2100 */ +0x120F,0x035C,0x1410,0x0000,0x0000, /* 2101 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 2102 */ +0x044B,0x123D,0x0000,0x0000,0x0000, /* 2103 */ +0x04C1,0x0000,0x0000,0x0000,0x0000, /* 2104 */ +0x123D,0x035C,0x138E,0x0000,0x0000, /* 2105 */ +0x123D,0x035C,0x1453,0x0000,0x0000, /* 2106 */ +0x1280,0x0000,0x0000,0x0000,0x0000, /* 2107 */ +0x04C2,0x0000,0x0000,0x0000,0x0000, /* 2108 */ +0x044B,0x12A3,0x0000,0x0000,0x0000, /* 2109 */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 210A */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210B */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210C */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210D */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210E */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2110 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2111 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 2112 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 2113 */ +0x04C3,0x0000,0x0000,0x0000,0x0000, /* 2114 */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 2115 */ +0x136D,0x138E,0x0000,0x0000,0x0000, /* 2116 */ +0x04C4,0x0000,0x0000,0x0000,0x0000, /* 2117 */ +0x04C5,0x0000,0x0000,0x0000,0x0000, /* 2118 */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 2119 */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 211A */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211B */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211C */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211D */ +0x04C6,0x0000,0x0000,0x0000,0x0000, /* 211E */ +0x04C7,0x0000,0x0000,0x0000,0x0000, /* 211F */ +0x1410,0x135F,0x0000,0x0000,0x0000, /* 2120 */ +0x1433,0x126B,0x1330,0x0000,0x0000, /* 2121 */ +0x1433,0x135F,0x0000,0x0000,0x0000, /* 2122 */ +0x04C8,0x0000,0x0000,0x0000,0x0000, /* 2123 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2124 */ +0x04C9,0x0000,0x0000,0x0000,0x0000, /* 2125 */ +0x156D,0x0000,0x0000,0x0000,0x0000, /* 2126 */ +0x04CA,0x0000,0x0000,0x0000,0x0000, /* 2127 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2128 */ +0x04CB,0x0000,0x0000,0x0000,0x0000, /* 2129 */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 212A */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 212B */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 212C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 212D */ +0x04CC,0x0000,0x0000,0x0000,0x0000, /* 212E */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 212F */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2130 */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 2131 */ +0x12AE,0x0000,0x0000,0x0000,0x0000, /* 2132 */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 2133 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 2134 */ +0x185C,0x0000,0x0000,0x0000,0x0000, /* 2135 */ +0x185D,0x0000,0x0000,0x0000,0x0000, /* 2136 */ +0x185E,0x0000,0x0000,0x0000,0x0000, /* 2137 */ +0x185F,0x0000,0x0000,0x0000,0x0000, /* 2138 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2139 */ +0x04CD,0x0000,0x0000,0x0000,0x0000, /* 213A */ +0x12A3,0x120F,0x1497,0x0000,0x0000, /* 213B */ +0x155B,0x0000,0x0000,0x0000,0x0000, /* 213C */ +0x1547,0x0000,0x0000,0x0000,0x0000, /* 213D */ +0x1547,0x0000,0x0000,0x0000,0x0000, /* 213E */ +0x155B,0x0000,0x0000,0x0000,0x0000, /* 213F */ +0x054F,0x0000,0x0000,0x0000,0x0000, /* 2140 */ +0x04CE,0x0000,0x0000,0x0000,0x0000, /* 2141 */ +0x04CF,0x0000,0x0000,0x0000,0x0000, /* 2142 */ +0x04D0,0x0000,0x0000,0x0000,0x0000, /* 2143 */ +0x04D1,0x0000,0x0000,0x0000,0x0000, /* 2144 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 2145 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 2146 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 2147 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2148 */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 2149 */ +0x04D2,0x0000,0x0000,0x0000,0x0000, /* 214A */ +0x0360,0x0000,0x0000,0x0000,0x0000, /* 214B */ +0x04D3,0x0000,0x0000,0x0000,0x0000, /* 214C */ +0x04D4,0x0000,0x0000,0x0000,0x0000, /* 214D */ +0x12AE,0x0000,0x0000,0x0000,0x0000, /* 214E */ +0x04D5,0x0000,0x0000,0x0000,0x0000, /* 214F */ +0x1206,0x035D,0x120C,0x0000,0x0000, /* 2150 */ +0x1206,0x035D,0x120E,0x0000,0x0000, /* 2151 */ +0x1206,0x035D,0x1206,0x1205,0x0000, /* 2152 */ +0x1206,0x035D,0x1208,0x0000,0x0000, /* 2153 */ +0x1207,0x035D,0x1208,0x0000,0x0000, /* 2154 */ +0x1206,0x035D,0x120A,0x0000,0x0000, /* 2155 */ +0x1207,0x035D,0x120A,0x0000,0x0000, /* 2156 */ +0x1208,0x035D,0x120A,0x0000,0x0000, /* 2157 */ +0x1209,0x035D,0x120A,0x0000,0x0000, /* 2158 */ +0x1206,0x035D,0x120B,0x0000,0x0000, /* 2159 */ +0x120A,0x035D,0x120B,0x0000,0x0000, /* 215A */ +0x1206,0x035D,0x120D,0x0000,0x0000, /* 215B */ +0x1208,0x035D,0x120D,0x0000,0x0000, /* 215C */ +0x120A,0x035D,0x120D,0x0000,0x0000, /* 215D */ +0x120C,0x035D,0x120D,0x0000,0x0000, /* 215E */ +0x1206,0x035D,0x0000,0x0000,0x0000, /* 215F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2160 */ +0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2161 */ +0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2162 */ +0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2163 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 2164 */ +0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2165 */ +0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2166 */ +0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2167 */ +0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2168 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2169 */ +0x1497,0x12EC,0x0000,0x0000,0x0000, /* 216A */ +0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 216B */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 216C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 216D */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 216E */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 216F */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2170 */ +0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2171 */ +0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2172 */ +0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2173 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 2174 */ +0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2175 */ +0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2176 */ +0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2177 */ +0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2178 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 2179 */ +0x1497,0x12EC,0x0000,0x0000,0x0000, /* 217A */ +0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 217B */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 217C */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 217D */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 217E */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 217F */ +0x1130,0x0000,0x0000,0x0000,0x0000, /* 2180 */ +0x1131,0x0000,0x0000,0x0000,0x0000, /* 2181 */ +0x1132,0x0000,0x0000,0x0000,0x0000, /* 2182 */ +0x124E,0x0000,0x0000,0x0000,0x0000, /* 2183 */ +0x124E,0x0000,0x0000,0x0000,0x0000, /* 2184 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2185 */ +0x1133,0x0000,0x0000,0x0000,0x0000, /* 2186 */ +0x1134,0x0000,0x0000,0x0000,0x0000, /* 2187 */ +0x1135,0x0000,0x0000,0x0000,0x0000, /* 2188 */ +0x1205,0x035D,0x1208,0x0000,0x0000, /* 2189 */ +0xFBC0,0xA18A,0x0000,0x0000,0x0000, /* 218A */ +0xFBC0,0xA18B,0x0000,0x0000,0x0000, /* 218B */ +0xFBC0,0xA18C,0x0000,0x0000,0x0000, /* 218C */ +0xFBC0,0xA18D,0x0000,0x0000,0x0000, /* 218D */ +0xFBC0,0xA18E,0x0000,0x0000,0x0000, /* 218E */ +0xFBC0,0xA18F,0x0000,0x0000,0x0000, /* 218F */ +0x04D6,0x0000,0x0000,0x0000,0x0000, /* 2190 */ +0x04D8,0x0000,0x0000,0x0000,0x0000, /* 2191 */ +0x04D7,0x0000,0x0000,0x0000,0x0000, /* 2192 */ +0x04D9,0x0000,0x0000,0x0000,0x0000, /* 2193 */ +0x04DA,0x0000,0x0000,0x0000,0x0000, /* 2194 */ +0x04DB,0x0000,0x0000,0x0000,0x0000, /* 2195 */ +0x04DC,0x0000,0x0000,0x0000,0x0000, /* 2196 */ +0x04DD,0x0000,0x0000,0x0000,0x0000, /* 2197 */ +0x04DE,0x0000,0x0000,0x0000,0x0000, /* 2198 */ +0x04DF,0x0000,0x0000,0x0000,0x0000, /* 2199 */ +0x04D6,0x0000,0x0000,0x0000,0x0000, /* 219A */ +0x04D7,0x0000,0x0000,0x0000,0x0000, /* 219B */ +0x04E0,0x0000,0x0000,0x0000,0x0000, /* 219C */ +0x04E1,0x0000,0x0000,0x0000,0x0000, /* 219D */ +0x04E2,0x0000,0x0000,0x0000,0x0000, /* 219E */ +0x04E3,0x0000,0x0000,0x0000,0x0000, /* 219F */ +0x04E4,0x0000,0x0000,0x0000,0x0000, /* 21A0 */ +0x04E5,0x0000,0x0000,0x0000,0x0000, /* 21A1 */ +0x04E6,0x0000,0x0000,0x0000,0x0000, /* 21A2 */ +0x04E7,0x0000,0x0000,0x0000,0x0000, /* 21A3 */ +0x04E8,0x0000,0x0000,0x0000,0x0000, /* 21A4 */ +0x04E9,0x0000,0x0000,0x0000,0x0000, /* 21A5 */ +0x04EA,0x0000,0x0000,0x0000,0x0000, /* 21A6 */ +0x04EB,0x0000,0x0000,0x0000,0x0000, /* 21A7 */ +0x04EC,0x0000,0x0000,0x0000,0x0000, /* 21A8 */ +0x04ED,0x0000,0x0000,0x0000,0x0000, /* 21A9 */ +0x04EE,0x0000,0x0000,0x0000,0x0000, /* 21AA */ +0x04EF,0x0000,0x0000,0x0000,0x0000, /* 21AB */ +0x04F0,0x0000,0x0000,0x0000,0x0000, /* 21AC */ +0x04F1,0x0000,0x0000,0x0000,0x0000, /* 21AD */ +0x04DA,0x0000,0x0000,0x0000,0x0000, /* 21AE */ +0x04F2,0x0000,0x0000,0x0000,0x0000, /* 21AF */ +0x04F3,0x0000,0x0000,0x0000,0x0000, /* 21B0 */ +0x04F4,0x0000,0x0000,0x0000,0x0000, /* 21B1 */ +0x04F5,0x0000,0x0000,0x0000,0x0000, /* 21B2 */ +0x04F6,0x0000,0x0000,0x0000,0x0000, /* 21B3 */ +0x04F7,0x0000,0x0000,0x0000,0x0000, /* 21B4 */ +0x04F8,0x0000,0x0000,0x0000,0x0000, /* 21B5 */ +0x04F9,0x0000,0x0000,0x0000,0x0000, /* 21B6 */ +0x04FA,0x0000,0x0000,0x0000,0x0000, /* 21B7 */ +0x04FB,0x0000,0x0000,0x0000,0x0000, /* 21B8 */ +0x04FC,0x0000,0x0000,0x0000,0x0000, /* 21B9 */ +0x04FD,0x0000,0x0000,0x0000,0x0000, /* 21BA */ +0x04FE,0x0000,0x0000,0x0000,0x0000, /* 21BB */ +0x04FF,0x0000,0x0000,0x0000,0x0000, /* 21BC */ +0x0500,0x0000,0x0000,0x0000,0x0000, /* 21BD */ +0x0501,0x0000,0x0000,0x0000,0x0000, /* 21BE */ +0x0502,0x0000,0x0000,0x0000,0x0000, /* 21BF */ +0x0503,0x0000,0x0000,0x0000,0x0000, /* 21C0 */ +0x0504,0x0000,0x0000,0x0000,0x0000, /* 21C1 */ +0x0505,0x0000,0x0000,0x0000,0x0000, /* 21C2 */ +0x0506,0x0000,0x0000,0x0000,0x0000, /* 21C3 */ +0x0507,0x0000,0x0000,0x0000,0x0000, /* 21C4 */ +0x0508,0x0000,0x0000,0x0000,0x0000, /* 21C5 */ +0x0509,0x0000,0x0000,0x0000,0x0000, /* 21C6 */ +0x050A,0x0000,0x0000,0x0000,0x0000, /* 21C7 */ +0x050B,0x0000,0x0000,0x0000,0x0000, /* 21C8 */ +0x050C,0x0000,0x0000,0x0000,0x0000, /* 21C9 */ +0x050D,0x0000,0x0000,0x0000,0x0000, /* 21CA */ +0x050E,0x0000,0x0000,0x0000,0x0000, /* 21CB */ +0x050F,0x0000,0x0000,0x0000,0x0000, /* 21CC */ +0x0510,0x0000,0x0000,0x0000,0x0000, /* 21CD */ +0x0514,0x0000,0x0000,0x0000,0x0000, /* 21CE */ +0x0512,0x0000,0x0000,0x0000,0x0000, /* 21CF */ +0x0510,0x0000,0x0000,0x0000,0x0000, /* 21D0 */ +0x0511,0x0000,0x0000,0x0000,0x0000, /* 21D1 */ +0x0512,0x0000,0x0000,0x0000,0x0000, /* 21D2 */ +0x0513,0x0000,0x0000,0x0000,0x0000, /* 21D3 */ +0x0514,0x0000,0x0000,0x0000,0x0000, /* 21D4 */ +0x0515,0x0000,0x0000,0x0000,0x0000, /* 21D5 */ +0x0516,0x0000,0x0000,0x0000,0x0000, /* 21D6 */ +0x0517,0x0000,0x0000,0x0000,0x0000, /* 21D7 */ +0x0518,0x0000,0x0000,0x0000,0x0000, /* 21D8 */ +0x0519,0x0000,0x0000,0x0000,0x0000, /* 21D9 */ +0x051A,0x0000,0x0000,0x0000,0x0000, /* 21DA */ +0x051B,0x0000,0x0000,0x0000,0x0000, /* 21DB */ +0x051C,0x0000,0x0000,0x0000,0x0000, /* 21DC */ +0x051D,0x0000,0x0000,0x0000,0x0000, /* 21DD */ +0x051E,0x0000,0x0000,0x0000,0x0000, /* 21DE */ +0x051F,0x0000,0x0000,0x0000,0x0000, /* 21DF */ +0x0520,0x0000,0x0000,0x0000,0x0000, /* 21E0 */ +0x0521,0x0000,0x0000,0x0000,0x0000, /* 21E1 */ +0x0522,0x0000,0x0000,0x0000,0x0000, /* 21E2 */ +0x0523,0x0000,0x0000,0x0000,0x0000, /* 21E3 */ +0x0524,0x0000,0x0000,0x0000,0x0000, /* 21E4 */ +0x0525,0x0000,0x0000,0x0000,0x0000, /* 21E5 */ +0x0526,0x0000,0x0000,0x0000,0x0000, /* 21E6 */ +0x0527,0x0000,0x0000,0x0000,0x0000, /* 21E7 */ +0x0528,0x0000,0x0000,0x0000,0x0000, /* 21E8 */ +0x0529,0x0000,0x0000,0x0000,0x0000, /* 21E9 */ +0x052A,0x0000,0x0000,0x0000,0x0000, /* 21EA */ +0x052B,0x0000,0x0000,0x0000,0x0000, /* 21EB */ +0x052C,0x0000,0x0000,0x0000,0x0000, /* 21EC */ +0x052D,0x0000,0x0000,0x0000,0x0000, /* 21ED */ +0x052E,0x0000,0x0000,0x0000,0x0000, /* 21EE */ +0x052F,0x0000,0x0000,0x0000,0x0000, /* 21EF */ +0x0530,0x0000,0x0000,0x0000,0x0000, /* 21F0 */ +0x0531,0x0000,0x0000,0x0000,0x0000, /* 21F1 */ +0x0532,0x0000,0x0000,0x0000,0x0000, /* 21F2 */ +0x0533,0x0000,0x0000,0x0000,0x0000, /* 21F3 */ +0x0534,0x0000,0x0000,0x0000,0x0000, /* 21F4 */ +0x0535,0x0000,0x0000,0x0000,0x0000, /* 21F5 */ +0x0536,0x0000,0x0000,0x0000,0x0000, /* 21F6 */ +0x0537,0x0000,0x0000,0x0000,0x0000, /* 21F7 */ +0x0538,0x0000,0x0000,0x0000,0x0000, /* 21F8 */ +0x0539,0x0000,0x0000,0x0000,0x0000, /* 21F9 */ +0x053A,0x0000,0x0000,0x0000,0x0000, /* 21FA */ +0x053B,0x0000,0x0000,0x0000,0x0000, /* 21FB */ +0x053C,0x0000,0x0000,0x0000,0x0000, /* 21FC */ +0x053D,0x0000,0x0000,0x0000,0x0000, /* 21FD */ +0x053E,0x0000,0x0000,0x0000,0x0000, /* 21FE */ +0x053F,0x0000,0x0000,0x0000,0x0000 /* 21FF */ +}; + +static const uint16 uca520_p022[]= { /* 2200 (4 weights per char) */ +0x0540,0x0000,0x0000,0x0000, 0x0541,0x0000,0x0000,0x0000, /* 2200 */ +0x0542,0x0000,0x0000,0x0000, 0x0543,0x0000,0x0000,0x0000, /* 2202 */ +0x0543,0x0000,0x0000,0x0000, 0x0544,0x0000,0x0000,0x0000, /* 2204 */ +0x0545,0x0000,0x0000,0x0000, 0x0546,0x0000,0x0000,0x0000, /* 2206 */ +0x0547,0x0000,0x0000,0x0000, 0x0547,0x0000,0x0000,0x0000, /* 2208 */ +0x0548,0x0000,0x0000,0x0000, 0x0549,0x0000,0x0000,0x0000, /* 220A */ +0x0549,0x0000,0x0000,0x0000, 0x054A,0x0000,0x0000,0x0000, /* 220C */ +0x054C,0x0000,0x0000,0x0000, 0x054D,0x0000,0x0000,0x0000, /* 220E */ +0x054E,0x0000,0x0000,0x0000, 0x054F,0x0000,0x0000,0x0000, /* 2210 */ +0x055C,0x0000,0x0000,0x0000, 0x055D,0x0000,0x0000,0x0000, /* 2212 */ +0x055E,0x0000,0x0000,0x0000, 0x055F,0x0000,0x0000,0x0000, /* 2214 */ +0x0560,0x0000,0x0000,0x0000, 0x0561,0x0000,0x0000,0x0000, /* 2216 */ +0x0562,0x0000,0x0000,0x0000, 0x0563,0x0000,0x0000,0x0000, /* 2218 */ +0x0564,0x0000,0x0000,0x0000, 0x0565,0x0000,0x0000,0x0000, /* 221A */ +0x0567,0x0000,0x0000,0x0000, 0x0569,0x0000,0x0000,0x0000, /* 221C */ +0x056A,0x0000,0x0000,0x0000, 0x056B,0x0000,0x0000,0x0000, /* 221E */ +0x056C,0x0000,0x0000,0x0000, 0x056D,0x0000,0x0000,0x0000, /* 2220 */ +0x056E,0x0000,0x0000,0x0000, 0x056F,0x0000,0x0000,0x0000, /* 2222 */ +0x056F,0x0000,0x0000,0x0000, 0x0570,0x0000,0x0000,0x0000, /* 2224 */ +0x0570,0x0000,0x0000,0x0000, 0x0571,0x0000,0x0000,0x0000, /* 2226 */ +0x0572,0x0000,0x0000,0x0000, 0x0573,0x0000,0x0000,0x0000, /* 2228 */ +0x0574,0x0000,0x0000,0x0000, 0x0575,0x0000,0x0000,0x0000, /* 222A */ +0x0575,0x0575,0x0000,0x0000, 0x0575,0x0575,0x0575,0x0000, /* 222C */ +0x0576,0x0000,0x0000,0x0000, 0x0576,0x0576,0x0000,0x0000, /* 222E */ +0x0576,0x0576,0x0576,0x0000, 0x0577,0x0000,0x0000,0x0000, /* 2230 */ +0x0578,0x0000,0x0000,0x0000, 0x0579,0x0000,0x0000,0x0000, /* 2232 */ +0x057A,0x0000,0x0000,0x0000, 0x057B,0x0000,0x0000,0x0000, /* 2234 */ +0x057C,0x0000,0x0000,0x0000, 0x057D,0x0000,0x0000,0x0000, /* 2236 */ +0x057E,0x0000,0x0000,0x0000, 0x057F,0x0000,0x0000,0x0000, /* 2238 */ +0x0580,0x0000,0x0000,0x0000, 0x0581,0x0000,0x0000,0x0000, /* 223A */ +0x0582,0x0000,0x0000,0x0000, 0x0583,0x0000,0x0000,0x0000, /* 223C */ +0x0584,0x0000,0x0000,0x0000, 0x0585,0x0000,0x0000,0x0000, /* 223E */ +0x0586,0x0000,0x0000,0x0000, 0x0582,0x0000,0x0000,0x0000, /* 2240 */ +0x0587,0x0000,0x0000,0x0000, 0x0588,0x0000,0x0000,0x0000, /* 2242 */ +0x0588,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2244 */ +0x058A,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2246 */ +0x058B,0x0000,0x0000,0x0000, 0x058B,0x0000,0x0000,0x0000, /* 2248 */ +0x058C,0x0000,0x0000,0x0000, 0x058D,0x0000,0x0000,0x0000, /* 224A */ +0x058E,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 224C */ +0x0590,0x0000,0x0000,0x0000, 0x0591,0x0000,0x0000,0x0000, /* 224E */ +0x0592,0x0000,0x0000,0x0000, 0x0593,0x0000,0x0000,0x0000, /* 2250 */ +0x0594,0x0000,0x0000,0x0000, 0x0595,0x0000,0x0000,0x0000, /* 2252 */ +0x0596,0x0000,0x0000,0x0000, 0x0597,0x0000,0x0000,0x0000, /* 2254 */ +0x0598,0x0000,0x0000,0x0000, 0x0599,0x0000,0x0000,0x0000, /* 2256 */ +0x059A,0x0000,0x0000,0x0000, 0x059B,0x0000,0x0000,0x0000, /* 2258 */ +0x059C,0x0000,0x0000,0x0000, 0x059D,0x0000,0x0000,0x0000, /* 225A */ +0x059E,0x0000,0x0000,0x0000, 0x059F,0x0000,0x0000,0x0000, /* 225C */ +0x05A0,0x0000,0x0000,0x0000, 0x05A1,0x0000,0x0000,0x0000, /* 225E */ +0x0555,0x0000,0x0000,0x0000, 0x05A2,0x0000,0x0000,0x0000, /* 2260 */ +0x05A2,0x0000,0x0000,0x0000, 0x05A3,0x0000,0x0000,0x0000, /* 2262 */ +0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2264 */ +0x05A6,0x0000,0x0000,0x0000, 0x05A7,0x0000,0x0000,0x0000, /* 2266 */ +0x05A8,0x0000,0x0000,0x0000, 0x05A9,0x0000,0x0000,0x0000, /* 2268 */ +0x05AA,0x0000,0x0000,0x0000, 0x05AB,0x0000,0x0000,0x0000, /* 226A */ +0x05AC,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 226C */ +0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* 226E */ +0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2270 */ +0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2272 */ +0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2274 */ +0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2276 */ +0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2278 */ +0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 227A */ +0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 227C */ +0x05B5,0x0000,0x0000,0x0000, 0x05B6,0x0000,0x0000,0x0000, /* 227E */ +0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 2280 */ +0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2282 */ +0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2284 */ +0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2286 */ +0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2288 */ +0x05BB,0x0000,0x0000,0x0000, 0x05BC,0x0000,0x0000,0x0000, /* 228A */ +0x05BD,0x0000,0x0000,0x0000, 0x05BE,0x0000,0x0000,0x0000, /* 228C */ +0x05BF,0x0000,0x0000,0x0000, 0x05C0,0x0000,0x0000,0x0000, /* 228E */ +0x05C1,0x0000,0x0000,0x0000, 0x05C2,0x0000,0x0000,0x0000, /* 2290 */ +0x05C3,0x0000,0x0000,0x0000, 0x05C4,0x0000,0x0000,0x0000, /* 2292 */ +0x05C5,0x0000,0x0000,0x0000, 0x05C6,0x0000,0x0000,0x0000, /* 2294 */ +0x05C7,0x0000,0x0000,0x0000, 0x05C8,0x0000,0x0000,0x0000, /* 2296 */ +0x05C9,0x0000,0x0000,0x0000, 0x05CA,0x0000,0x0000,0x0000, /* 2298 */ +0x05CB,0x0000,0x0000,0x0000, 0x05CC,0x0000,0x0000,0x0000, /* 229A */ +0x05CD,0x0000,0x0000,0x0000, 0x05CE,0x0000,0x0000,0x0000, /* 229C */ +0x05CF,0x0000,0x0000,0x0000, 0x05D0,0x0000,0x0000,0x0000, /* 229E */ +0x05D1,0x0000,0x0000,0x0000, 0x05D2,0x0000,0x0000,0x0000, /* 22A0 */ +0x05D3,0x0000,0x0000,0x0000, 0x05D4,0x0000,0x0000,0x0000, /* 22A2 */ +0x05D5,0x0000,0x0000,0x0000, 0x05D6,0x0000,0x0000,0x0000, /* 22A4 */ +0x05D7,0x0000,0x0000,0x0000, 0x05D8,0x0000,0x0000,0x0000, /* 22A6 */ +0x05D9,0x0000,0x0000,0x0000, 0x05DA,0x0000,0x0000,0x0000, /* 22A8 */ +0x05DB,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AA */ +0x05D3,0x0000,0x0000,0x0000, 0x05D9,0x0000,0x0000,0x0000, /* 22AC */ +0x05DA,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AE */ +0x05DD,0x0000,0x0000,0x0000, 0x05DE,0x0000,0x0000,0x0000, /* 22B0 */ +0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22B2 */ +0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22B4 */ +0x05E3,0x0000,0x0000,0x0000, 0x05E4,0x0000,0x0000,0x0000, /* 22B6 */ +0x05E5,0x0000,0x0000,0x0000, 0x05E6,0x0000,0x0000,0x0000, /* 22B8 */ +0x05E7,0x0000,0x0000,0x0000, 0x05E8,0x0000,0x0000,0x0000, /* 22BA */ +0x05E9,0x0000,0x0000,0x0000, 0x05EA,0x0000,0x0000,0x0000, /* 22BC */ +0x05EB,0x0000,0x0000,0x0000, 0x05EC,0x0000,0x0000,0x0000, /* 22BE */ +0x05ED,0x0000,0x0000,0x0000, 0x05EE,0x0000,0x0000,0x0000, /* 22C0 */ +0x05EF,0x0000,0x0000,0x0000, 0x05F0,0x0000,0x0000,0x0000, /* 22C2 */ +0x05F1,0x0000,0x0000,0x0000, 0x05F2,0x0000,0x0000,0x0000, /* 22C4 */ +0x05F3,0x0000,0x0000,0x0000, 0x05F4,0x0000,0x0000,0x0000, /* 22C6 */ +0x05F5,0x0000,0x0000,0x0000, 0x05F6,0x0000,0x0000,0x0000, /* 22C8 */ +0x05F7,0x0000,0x0000,0x0000, 0x05F8,0x0000,0x0000,0x0000, /* 22CA */ +0x05F9,0x0000,0x0000,0x0000, 0x05FA,0x0000,0x0000,0x0000, /* 22CC */ +0x05FB,0x0000,0x0000,0x0000, 0x05FC,0x0000,0x0000,0x0000, /* 22CE */ +0x05FD,0x0000,0x0000,0x0000, 0x05FE,0x0000,0x0000,0x0000, /* 22D0 */ +0x05FF,0x0000,0x0000,0x0000, 0x0600,0x0000,0x0000,0x0000, /* 22D2 */ +0x0601,0x0000,0x0000,0x0000, 0x0602,0x0000,0x0000,0x0000, /* 22D4 */ +0x0603,0x0000,0x0000,0x0000, 0x0604,0x0000,0x0000,0x0000, /* 22D6 */ +0x0605,0x0000,0x0000,0x0000, 0x0606,0x0000,0x0000,0x0000, /* 22D8 */ +0x0607,0x0000,0x0000,0x0000, 0x0608,0x0000,0x0000,0x0000, /* 22DA */ +0x0609,0x0000,0x0000,0x0000, 0x060A,0x0000,0x0000,0x0000, /* 22DC */ +0x060B,0x0000,0x0000,0x0000, 0x060C,0x0000,0x0000,0x0000, /* 22DE */ +0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 22E0 */ +0x05C2,0x0000,0x0000,0x0000, 0x05C3,0x0000,0x0000,0x0000, /* 22E2 */ +0x060D,0x0000,0x0000,0x0000, 0x060E,0x0000,0x0000,0x0000, /* 22E4 */ +0x060F,0x0000,0x0000,0x0000, 0x0610,0x0000,0x0000,0x0000, /* 22E6 */ +0x0611,0x0000,0x0000,0x0000, 0x0612,0x0000,0x0000,0x0000, /* 22E8 */ +0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22EA */ +0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22EC */ +0x0613,0x0000,0x0000,0x0000, 0x0614,0x0000,0x0000,0x0000, /* 22EE */ +0x0615,0x0000,0x0000,0x0000, 0x0616,0x0000,0x0000,0x0000, /* 22F0 */ +0x0617,0x0000,0x0000,0x0000, 0x0618,0x0000,0x0000,0x0000, /* 22F2 */ +0x0619,0x0000,0x0000,0x0000, 0x061A,0x0000,0x0000,0x0000, /* 22F4 */ +0x061B,0x0000,0x0000,0x0000, 0x061C,0x0000,0x0000,0x0000, /* 22F6 */ +0x061D,0x0000,0x0000,0x0000, 0x061E,0x0000,0x0000,0x0000, /* 22F8 */ +0x061F,0x0000,0x0000,0x0000, 0x0620,0x0000,0x0000,0x0000, /* 22FA */ +0x0621,0x0000,0x0000,0x0000, 0x0622,0x0000,0x0000,0x0000, /* 22FC */ +0x0623,0x0000,0x0000,0x0000, 0x0624,0x0000,0x0000,0x0000 /* 22FE */ +}; + +static const uint16 uca520_p023[]= { /* 2300 (3 weights per char) */ +0x0625,0x0000,0x0000, 0x0626,0x0000,0x0000, 0x0627,0x0000,0x0000, /* 2300 */ +0x0628,0x0000,0x0000, 0x0629,0x0000,0x0000, 0x062A,0x0000,0x0000, /* 2303 */ +0x062B,0x0000,0x0000, 0x062C,0x0000,0x0000, 0x062D,0x0000,0x0000, /* 2306 */ +0x062E,0x0000,0x0000, 0x062F,0x0000,0x0000, 0x0630,0x0000,0x0000, /* 2309 */ +0x0631,0x0000,0x0000, 0x0632,0x0000,0x0000, 0x0633,0x0000,0x0000, /* 230C */ +0x0634,0x0000,0x0000, 0x0635,0x0000,0x0000, 0x0636,0x0000,0x0000, /* 230F */ +0x0637,0x0000,0x0000, 0x0638,0x0000,0x0000, 0x0639,0x0000,0x0000, /* 2312 */ +0x063A,0x0000,0x0000, 0x063B,0x0000,0x0000, 0x063C,0x0000,0x0000, /* 2315 */ +0x063D,0x0000,0x0000, 0x063E,0x0000,0x0000, 0x063F,0x0000,0x0000, /* 2318 */ +0x0640,0x0000,0x0000, 0x0641,0x0000,0x0000, 0x0642,0x0000,0x0000, /* 231B */ +0x0643,0x0000,0x0000, 0x0644,0x0000,0x0000, 0x0645,0x0000,0x0000, /* 231E */ +0x0646,0x0000,0x0000, 0x0647,0x0000,0x0000, 0x0648,0x0000,0x0000, /* 2321 */ +0x0649,0x0000,0x0000, 0x064A,0x0000,0x0000, 0x064B,0x0000,0x0000, /* 2324 */ +0x064C,0x0000,0x0000, 0x064D,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 2327 */ +0x033E,0x0000,0x0000, 0x064E,0x0000,0x0000, 0x064F,0x0000,0x0000, /* 232A */ +0x0650,0x0000,0x0000, 0x0651,0x0000,0x0000, 0x0652,0x0000,0x0000, /* 232D */ +0x0653,0x0000,0x0000, 0x0654,0x0000,0x0000, 0x0655,0x0000,0x0000, /* 2330 */ +0x0656,0x0000,0x0000, 0x0657,0x0000,0x0000, 0x0658,0x0000,0x0000, /* 2333 */ +0x0659,0x0000,0x0000, 0x065A,0x0000,0x0000, 0x065B,0x0000,0x0000, /* 2336 */ +0x065C,0x0000,0x0000, 0x065D,0x0000,0x0000, 0x065E,0x0000,0x0000, /* 2339 */ +0x065F,0x0000,0x0000, 0x0660,0x0000,0x0000, 0x0661,0x0000,0x0000, /* 233C */ +0x0662,0x0000,0x0000, 0x0663,0x0000,0x0000, 0x0664,0x0000,0x0000, /* 233F */ +0x0665,0x0000,0x0000, 0x0666,0x0000,0x0000, 0x0667,0x0000,0x0000, /* 2342 */ +0x0668,0x0000,0x0000, 0x0669,0x0000,0x0000, 0x066A,0x0000,0x0000, /* 2345 */ +0x066B,0x0000,0x0000, 0x066C,0x0000,0x0000, 0x066D,0x0000,0x0000, /* 2348 */ +0x066E,0x0000,0x0000, 0x066F,0x0000,0x0000, 0x0670,0x0000,0x0000, /* 234B */ +0x0671,0x0000,0x0000, 0x0672,0x0000,0x0000, 0x0673,0x0000,0x0000, /* 234E */ +0x0674,0x0000,0x0000, 0x0675,0x0000,0x0000, 0x0676,0x0000,0x0000, /* 2351 */ +0x0677,0x0000,0x0000, 0x0678,0x0000,0x0000, 0x0679,0x0000,0x0000, /* 2354 */ +0x067A,0x0000,0x0000, 0x067B,0x0000,0x0000, 0x067C,0x0000,0x0000, /* 2357 */ +0x067D,0x0000,0x0000, 0x067E,0x0000,0x0000, 0x067F,0x0000,0x0000, /* 235A */ +0x0680,0x0000,0x0000, 0x0681,0x0000,0x0000, 0x0682,0x0000,0x0000, /* 235D */ +0x0683,0x0000,0x0000, 0x0684,0x0000,0x0000, 0x0685,0x0000,0x0000, /* 2360 */ +0x0686,0x0000,0x0000, 0x0687,0x0000,0x0000, 0x0688,0x0000,0x0000, /* 2363 */ +0x0689,0x0000,0x0000, 0x068A,0x0000,0x0000, 0x068B,0x0000,0x0000, /* 2366 */ +0x068C,0x0000,0x0000, 0x068D,0x0000,0x0000, 0x068E,0x0000,0x0000, /* 2369 */ +0x068F,0x0000,0x0000, 0x0690,0x0000,0x0000, 0x0691,0x0000,0x0000, /* 236C */ +0x0692,0x0000,0x0000, 0x0693,0x0000,0x0000, 0x0694,0x0000,0x0000, /* 236F */ +0x0695,0x0000,0x0000, 0x0696,0x0000,0x0000, 0x0697,0x0000,0x0000, /* 2372 */ +0x0698,0x0000,0x0000, 0x0699,0x0000,0x0000, 0x069A,0x0000,0x0000, /* 2375 */ +0x069B,0x0000,0x0000, 0x069C,0x0000,0x0000, 0x069D,0x0000,0x0000, /* 2378 */ +0x069E,0x0000,0x0000, 0x069F,0x0000,0x0000, 0x06A0,0x0000,0x0000, /* 237B */ +0x06A1,0x0000,0x0000, 0x06A2,0x0000,0x0000, 0x06A3,0x0000,0x0000, /* 237E */ +0x06A4,0x0000,0x0000, 0x06A5,0x0000,0x0000, 0x06A6,0x0000,0x0000, /* 2381 */ +0x06A7,0x0000,0x0000, 0x06A8,0x0000,0x0000, 0x06A9,0x0000,0x0000, /* 2384 */ +0x06AA,0x0000,0x0000, 0x06AB,0x0000,0x0000, 0x06AC,0x0000,0x0000, /* 2387 */ +0x06AD,0x0000,0x0000, 0x06AE,0x0000,0x0000, 0x06AF,0x0000,0x0000, /* 238A */ +0x06B0,0x0000,0x0000, 0x06B1,0x0000,0x0000, 0x06B2,0x0000,0x0000, /* 238D */ +0x06B3,0x0000,0x0000, 0x06B4,0x0000,0x0000, 0x06B5,0x0000,0x0000, /* 2390 */ +0x06B6,0x0000,0x0000, 0x06B7,0x0000,0x0000, 0x06B8,0x0000,0x0000, /* 2393 */ +0x06B9,0x0000,0x0000, 0x06BA,0x0000,0x0000, 0x06BB,0x0000,0x0000, /* 2396 */ +0x06BC,0x0000,0x0000, 0x06BD,0x0000,0x0000, 0x06BE,0x0000,0x0000, /* 2399 */ +0x06BF,0x0000,0x0000, 0x06C0,0x0000,0x0000, 0x06C1,0x0000,0x0000, /* 239C */ +0x06C2,0x0000,0x0000, 0x06C3,0x0000,0x0000, 0x06C4,0x0000,0x0000, /* 239F */ +0x06C5,0x0000,0x0000, 0x06C6,0x0000,0x0000, 0x06C7,0x0000,0x0000, /* 23A2 */ +0x06C8,0x0000,0x0000, 0x06C9,0x0000,0x0000, 0x06CA,0x0000,0x0000, /* 23A5 */ +0x06CB,0x0000,0x0000, 0x06CC,0x0000,0x0000, 0x06CD,0x0000,0x0000, /* 23A8 */ +0x06CE,0x0000,0x0000, 0x06CF,0x0000,0x0000, 0x06D0,0x0000,0x0000, /* 23AB */ +0x06D1,0x0000,0x0000, 0x06D2,0x0000,0x0000, 0x06D3,0x0000,0x0000, /* 23AE */ +0x06D4,0x0000,0x0000, 0x06D5,0x0000,0x0000, 0x06D6,0x0000,0x0000, /* 23B1 */ +0x06D7,0x0000,0x0000, 0x06D8,0x0000,0x0000, 0x06D9,0x0000,0x0000, /* 23B4 */ +0x06DA,0x0000,0x0000, 0x06DB,0x0000,0x0000, 0x06DC,0x0000,0x0000, /* 23B7 */ +0x06DD,0x0000,0x0000, 0x06DE,0x0000,0x0000, 0x06DF,0x0000,0x0000, /* 23BA */ +0x06E0,0x0000,0x0000, 0x06E1,0x0000,0x0000, 0x06E2,0x0000,0x0000, /* 23BD */ +0x06E3,0x0000,0x0000, 0x06E4,0x0000,0x0000, 0x06E5,0x0000,0x0000, /* 23C0 */ +0x06E6,0x0000,0x0000, 0x06E7,0x0000,0x0000, 0x06E8,0x0000,0x0000, /* 23C3 */ +0x06E9,0x0000,0x0000, 0x06EA,0x0000,0x0000, 0x06EB,0x0000,0x0000, /* 23C6 */ +0x06EC,0x0000,0x0000, 0x06ED,0x0000,0x0000, 0x06EE,0x0000,0x0000, /* 23C9 */ +0x06EF,0x0000,0x0000, 0x06F0,0x0000,0x0000, 0x06F1,0x0000,0x0000, /* 23CC */ +0x06F2,0x0000,0x0000, 0x06F3,0x0000,0x0000, 0x06F4,0x0000,0x0000, /* 23CF */ +0x06F5,0x0000,0x0000, 0x06F6,0x0000,0x0000, 0x06F7,0x0000,0x0000, /* 23D2 */ +0x06F8,0x0000,0x0000, 0x06F9,0x0000,0x0000, 0x06FA,0x0000,0x0000, /* 23D5 */ +0x06FB,0x0000,0x0000, 0x06FC,0x0000,0x0000, 0x06FD,0x0000,0x0000, /* 23D8 */ +0x06FE,0x0000,0x0000, 0x06FF,0x0000,0x0000, 0x0700,0x0000,0x0000, /* 23DB */ +0x0701,0x0000,0x0000, 0x0702,0x0000,0x0000, 0x0703,0x0000,0x0000, /* 23DE */ +0x0704,0x0000,0x0000, 0x0705,0x0000,0x0000, 0x0706,0x0000,0x0000, /* 23E1 */ +0x0707,0x0000,0x0000, 0x0708,0x0000,0x0000, 0x0709,0x0000,0x0000, /* 23E4 */ +0x070A,0x0000,0x0000, 0x070B,0x0000,0x0000, 0xFBC0,0xA3E9,0x0000, /* 23E7 */ +0xFBC0,0xA3EA,0x0000, 0xFBC0,0xA3EB,0x0000, 0xFBC0,0xA3EC,0x0000, /* 23EA */ +0xFBC0,0xA3ED,0x0000, 0xFBC0,0xA3EE,0x0000, 0xFBC0,0xA3EF,0x0000, /* 23ED */ +0xFBC0,0xA3F0,0x0000, 0xFBC0,0xA3F1,0x0000, 0xFBC0,0xA3F2,0x0000, /* 23F0 */ +0xFBC0,0xA3F3,0x0000, 0xFBC0,0xA3F4,0x0000, 0xFBC0,0xA3F5,0x0000, /* 23F3 */ +0xFBC0,0xA3F6,0x0000, 0xFBC0,0xA3F7,0x0000, 0xFBC0,0xA3F8,0x0000, /* 23F6 */ +0xFBC0,0xA3F9,0x0000, 0xFBC0,0xA3FA,0x0000, 0xFBC0,0xA3FB,0x0000, /* 23F9 */ +0xFBC0,0xA3FC,0x0000, 0xFBC0,0xA3FD,0x0000, 0xFBC0,0xA3FE,0x0000, /* 23FC */ +0xFBC0,0xA3FF,0x0000 }; + +static const uint16 uca520_p024[]= { /* 2400 (5 weights per char) */ +0x070C,0x0000,0x0000,0x0000,0x0000, /* 2400 */ +0x070D,0x0000,0x0000,0x0000,0x0000, /* 2401 */ +0x070E,0x0000,0x0000,0x0000,0x0000, /* 2402 */ +0x070F,0x0000,0x0000,0x0000,0x0000, /* 2403 */ +0x0710,0x0000,0x0000,0x0000,0x0000, /* 2404 */ +0x0711,0x0000,0x0000,0x0000,0x0000, /* 2405 */ +0x0712,0x0000,0x0000,0x0000,0x0000, /* 2406 */ +0x0713,0x0000,0x0000,0x0000,0x0000, /* 2407 */ +0x0714,0x0000,0x0000,0x0000,0x0000, /* 2408 */ +0x0715,0x0000,0x0000,0x0000,0x0000, /* 2409 */ +0x0716,0x0000,0x0000,0x0000,0x0000, /* 240A */ +0x0717,0x0000,0x0000,0x0000,0x0000, /* 240B */ +0x0718,0x0000,0x0000,0x0000,0x0000, /* 240C */ +0x0719,0x0000,0x0000,0x0000,0x0000, /* 240D */ +0x071A,0x0000,0x0000,0x0000,0x0000, /* 240E */ +0x071B,0x0000,0x0000,0x0000,0x0000, /* 240F */ +0x071C,0x0000,0x0000,0x0000,0x0000, /* 2410 */ +0x071D,0x0000,0x0000,0x0000,0x0000, /* 2411 */ +0x071E,0x0000,0x0000,0x0000,0x0000, /* 2412 */ +0x071F,0x0000,0x0000,0x0000,0x0000, /* 2413 */ +0x0720,0x0000,0x0000,0x0000,0x0000, /* 2414 */ +0x0721,0x0000,0x0000,0x0000,0x0000, /* 2415 */ +0x0722,0x0000,0x0000,0x0000,0x0000, /* 2416 */ +0x0723,0x0000,0x0000,0x0000,0x0000, /* 2417 */ +0x0724,0x0000,0x0000,0x0000,0x0000, /* 2418 */ +0x0725,0x0000,0x0000,0x0000,0x0000, /* 2419 */ +0x0726,0x0000,0x0000,0x0000,0x0000, /* 241A */ +0x0727,0x0000,0x0000,0x0000,0x0000, /* 241B */ +0x0728,0x0000,0x0000,0x0000,0x0000, /* 241C */ +0x0729,0x0000,0x0000,0x0000,0x0000, /* 241D */ +0x072A,0x0000,0x0000,0x0000,0x0000, /* 241E */ +0x072B,0x0000,0x0000,0x0000,0x0000, /* 241F */ +0x072C,0x0000,0x0000,0x0000,0x0000, /* 2420 */ +0x072D,0x0000,0x0000,0x0000,0x0000, /* 2421 */ +0x072E,0x0000,0x0000,0x0000,0x0000, /* 2422 */ +0x072F,0x0000,0x0000,0x0000,0x0000, /* 2423 */ +0x0730,0x0000,0x0000,0x0000,0x0000, /* 2424 */ +0x0731,0x0000,0x0000,0x0000,0x0000, /* 2425 */ +0x0732,0x0000,0x0000,0x0000,0x0000, /* 2426 */ +0xFBC0,0xA427,0x0000,0x0000,0x0000, /* 2427 */ +0xFBC0,0xA428,0x0000,0x0000,0x0000, /* 2428 */ +0xFBC0,0xA429,0x0000,0x0000,0x0000, /* 2429 */ +0xFBC0,0xA42A,0x0000,0x0000,0x0000, /* 242A */ +0xFBC0,0xA42B,0x0000,0x0000,0x0000, /* 242B */ +0xFBC0,0xA42C,0x0000,0x0000,0x0000, /* 242C */ +0xFBC0,0xA42D,0x0000,0x0000,0x0000, /* 242D */ +0xFBC0,0xA42E,0x0000,0x0000,0x0000, /* 242E */ +0xFBC0,0xA42F,0x0000,0x0000,0x0000, /* 242F */ +0xFBC0,0xA430,0x0000,0x0000,0x0000, /* 2430 */ +0xFBC0,0xA431,0x0000,0x0000,0x0000, /* 2431 */ +0xFBC0,0xA432,0x0000,0x0000,0x0000, /* 2432 */ +0xFBC0,0xA433,0x0000,0x0000,0x0000, /* 2433 */ +0xFBC0,0xA434,0x0000,0x0000,0x0000, /* 2434 */ +0xFBC0,0xA435,0x0000,0x0000,0x0000, /* 2435 */ +0xFBC0,0xA436,0x0000,0x0000,0x0000, /* 2436 */ +0xFBC0,0xA437,0x0000,0x0000,0x0000, /* 2437 */ +0xFBC0,0xA438,0x0000,0x0000,0x0000, /* 2438 */ +0xFBC0,0xA439,0x0000,0x0000,0x0000, /* 2439 */ +0xFBC0,0xA43A,0x0000,0x0000,0x0000, /* 243A */ +0xFBC0,0xA43B,0x0000,0x0000,0x0000, /* 243B */ +0xFBC0,0xA43C,0x0000,0x0000,0x0000, /* 243C */ +0xFBC0,0xA43D,0x0000,0x0000,0x0000, /* 243D */ +0xFBC0,0xA43E,0x0000,0x0000,0x0000, /* 243E */ +0xFBC0,0xA43F,0x0000,0x0000,0x0000, /* 243F */ +0x0733,0x0000,0x0000,0x0000,0x0000, /* 2440 */ +0x0734,0x0000,0x0000,0x0000,0x0000, /* 2441 */ +0x0735,0x0000,0x0000,0x0000,0x0000, /* 2442 */ +0x0736,0x0000,0x0000,0x0000,0x0000, /* 2443 */ +0x0737,0x0000,0x0000,0x0000,0x0000, /* 2444 */ +0x0738,0x0000,0x0000,0x0000,0x0000, /* 2445 */ +0x0739,0x0000,0x0000,0x0000,0x0000, /* 2446 */ +0x073A,0x0000,0x0000,0x0000,0x0000, /* 2447 */ +0x073B,0x0000,0x0000,0x0000,0x0000, /* 2448 */ +0x073C,0x0000,0x0000,0x0000,0x0000, /* 2449 */ +0x073D,0x0000,0x0000,0x0000,0x0000, /* 244A */ +0xFBC0,0xA44B,0x0000,0x0000,0x0000, /* 244B */ +0xFBC0,0xA44C,0x0000,0x0000,0x0000, /* 244C */ +0xFBC0,0xA44D,0x0000,0x0000,0x0000, /* 244D */ +0xFBC0,0xA44E,0x0000,0x0000,0x0000, /* 244E */ +0xFBC0,0xA44F,0x0000,0x0000,0x0000, /* 244F */ +0xFBC0,0xA450,0x0000,0x0000,0x0000, /* 2450 */ +0xFBC0,0xA451,0x0000,0x0000,0x0000, /* 2451 */ +0xFBC0,0xA452,0x0000,0x0000,0x0000, /* 2452 */ +0xFBC0,0xA453,0x0000,0x0000,0x0000, /* 2453 */ +0xFBC0,0xA454,0x0000,0x0000,0x0000, /* 2454 */ +0xFBC0,0xA455,0x0000,0x0000,0x0000, /* 2455 */ +0xFBC0,0xA456,0x0000,0x0000,0x0000, /* 2456 */ +0xFBC0,0xA457,0x0000,0x0000,0x0000, /* 2457 */ +0xFBC0,0xA458,0x0000,0x0000,0x0000, /* 2458 */ +0xFBC0,0xA459,0x0000,0x0000,0x0000, /* 2459 */ +0xFBC0,0xA45A,0x0000,0x0000,0x0000, /* 245A */ +0xFBC0,0xA45B,0x0000,0x0000,0x0000, /* 245B */ +0xFBC0,0xA45C,0x0000,0x0000,0x0000, /* 245C */ +0xFBC0,0xA45D,0x0000,0x0000,0x0000, /* 245D */ +0xFBC0,0xA45E,0x0000,0x0000,0x0000, /* 245E */ +0xFBC0,0xA45F,0x0000,0x0000,0x0000, /* 245F */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 2460 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 2461 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 2462 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 2463 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 2464 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 2465 */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 2466 */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 2467 */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 2468 */ +0x1206,0x1205,0x0000,0x0000,0x0000, /* 2469 */ +0x1206,0x1206,0x0000,0x0000,0x0000, /* 246A */ +0x1206,0x1207,0x0000,0x0000,0x0000, /* 246B */ +0x1206,0x1208,0x0000,0x0000,0x0000, /* 246C */ +0x1206,0x1209,0x0000,0x0000,0x0000, /* 246D */ +0x1206,0x120A,0x0000,0x0000,0x0000, /* 246E */ +0x1206,0x120B,0x0000,0x0000,0x0000, /* 246F */ +0x1206,0x120C,0x0000,0x0000,0x0000, /* 2470 */ +0x1206,0x120D,0x0000,0x0000,0x0000, /* 2471 */ +0x1206,0x120E,0x0000,0x0000,0x0000, /* 2472 */ +0x1207,0x1205,0x0000,0x0000,0x0000, /* 2473 */ +0x02FF,0x1206,0x0300,0x0000,0x0000, /* 2474 */ +0x02FF,0x1207,0x0300,0x0000,0x0000, /* 2475 */ +0x02FF,0x1208,0x0300,0x0000,0x0000, /* 2476 */ +0x02FF,0x1209,0x0300,0x0000,0x0000, /* 2477 */ +0x02FF,0x120A,0x0300,0x0000,0x0000, /* 2478 */ +0x02FF,0x120B,0x0300,0x0000,0x0000, /* 2479 */ +0x02FF,0x120C,0x0300,0x0000,0x0000, /* 247A */ +0x02FF,0x120D,0x0300,0x0000,0x0000, /* 247B */ +0x02FF,0x120E,0x0300,0x0000,0x0000, /* 247C */ +0x02FF,0x1206,0x1205,0x0300,0x0000, /* 247D */ +0x02FF,0x1206,0x1206,0x0300,0x0000, /* 247E */ +0x02FF,0x1206,0x1207,0x0300,0x0000, /* 247F */ +0x02FF,0x1206,0x1208,0x0300,0x0000, /* 2480 */ +0x02FF,0x1206,0x1209,0x0300,0x0000, /* 2481 */ +0x02FF,0x1206,0x120A,0x0300,0x0000, /* 2482 */ +0x02FF,0x1206,0x120B,0x0300,0x0000, /* 2483 */ +0x02FF,0x1206,0x120C,0x0300,0x0000, /* 2484 */ +0x02FF,0x1206,0x120D,0x0300,0x0000, /* 2485 */ +0x02FF,0x1206,0x120E,0x0300,0x0000, /* 2486 */ +0x02FF,0x1207,0x1205,0x0300,0x0000, /* 2487 */ +0x1206,0x0281,0x0000,0x0000,0x0000, /* 2488 */ +0x1207,0x0281,0x0000,0x0000,0x0000, /* 2489 */ +0x1208,0x0281,0x0000,0x0000,0x0000, /* 248A */ +0x1209,0x0281,0x0000,0x0000,0x0000, /* 248B */ +0x120A,0x0281,0x0000,0x0000,0x0000, /* 248C */ +0x120B,0x0281,0x0000,0x0000,0x0000, /* 248D */ +0x120C,0x0281,0x0000,0x0000,0x0000, /* 248E */ +0x120D,0x0281,0x0000,0x0000,0x0000, /* 248F */ +0x120E,0x0281,0x0000,0x0000,0x0000, /* 2490 */ +0x1206,0x1205,0x0281,0x0000,0x0000, /* 2491 */ +0x1206,0x1206,0x0281,0x0000,0x0000, /* 2492 */ +0x1206,0x1207,0x0281,0x0000,0x0000, /* 2493 */ +0x1206,0x1208,0x0281,0x0000,0x0000, /* 2494 */ +0x1206,0x1209,0x0281,0x0000,0x0000, /* 2495 */ +0x1206,0x120A,0x0281,0x0000,0x0000, /* 2496 */ +0x1206,0x120B,0x0281,0x0000,0x0000, /* 2497 */ +0x1206,0x120C,0x0281,0x0000,0x0000, /* 2498 */ +0x1206,0x120D,0x0281,0x0000,0x0000, /* 2499 */ +0x1206,0x120E,0x0281,0x0000,0x0000, /* 249A */ +0x1207,0x1205,0x0281,0x0000,0x0000, /* 249B */ +0x02FF,0x120F,0x0300,0x0000,0x0000, /* 249C */ +0x02FF,0x1225,0x0300,0x0000,0x0000, /* 249D */ +0x02FF,0x123D,0x0300,0x0000,0x0000, /* 249E */ +0x02FF,0x1250,0x0300,0x0000,0x0000, /* 249F */ +0x02FF,0x126B,0x0300,0x0000,0x0000, /* 24A0 */ +0x02FF,0x12A3,0x0300,0x0000,0x0000, /* 24A1 */ +0x02FF,0x12B0,0x0300,0x0000,0x0000, /* 24A2 */ +0x02FF,0x12D3,0x0300,0x0000,0x0000, /* 24A3 */ +0x02FF,0x12EC,0x0300,0x0000,0x0000, /* 24A4 */ +0x02FF,0x1305,0x0300,0x0000,0x0000, /* 24A5 */ +0x02FF,0x131E,0x0300,0x0000,0x0000, /* 24A6 */ +0x02FF,0x1330,0x0300,0x0000,0x0000, /* 24A7 */ +0x02FF,0x135F,0x0300,0x0000,0x0000, /* 24A8 */ +0x02FF,0x136D,0x0300,0x0000,0x0000, /* 24A9 */ +0x02FF,0x138E,0x0300,0x0000,0x0000, /* 24AA */ +0x02FF,0x13B3,0x0300,0x0000,0x0000, /* 24AB */ +0x02FF,0x13C8,0x0300,0x0000,0x0000, /* 24AC */ +0x02FF,0x13DA,0x0300,0x0000,0x0000, /* 24AD */ +0x02FF,0x1410,0x0300,0x0000,0x0000, /* 24AE */ +0x02FF,0x1433,0x0300,0x0000,0x0000, /* 24AF */ +0x02FF,0x1453,0x0300,0x0000,0x0000, /* 24B0 */ +0x02FF,0x147B,0x0300,0x0000,0x0000, /* 24B1 */ +0x02FF,0x148D,0x0300,0x0000,0x0000, /* 24B2 */ +0x02FF,0x1497,0x0300,0x0000,0x0000, /* 24B3 */ +0x02FF,0x149C,0x0300,0x0000,0x0000, /* 24B4 */ +0x02FF,0x14AD,0x0300,0x0000,0x0000, /* 24B5 */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 24B6 */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 24B7 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 24B8 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 24B9 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 24BA */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24BB */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24BC */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24BD */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24BE */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 24BF */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 24C0 */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 24C1 */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 24C2 */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 24C3 */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 24C4 */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24C5 */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24C6 */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24C7 */ +0x1410,0x0000,0x0000,0x0000,0x0000, /* 24C8 */ +0x1433,0x0000,0x0000,0x0000,0x0000, /* 24C9 */ +0x1453,0x0000,0x0000,0x0000,0x0000, /* 24CA */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 24CB */ +0x148D,0x0000,0x0000,0x0000,0x0000, /* 24CC */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 24CD */ +0x149C,0x0000,0x0000,0x0000,0x0000, /* 24CE */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24CF */ +0x120F,0x0000,0x0000,0x0000,0x0000, /* 24D0 */ +0x1225,0x0000,0x0000,0x0000,0x0000, /* 24D1 */ +0x123D,0x0000,0x0000,0x0000,0x0000, /* 24D2 */ +0x1250,0x0000,0x0000,0x0000,0x0000, /* 24D3 */ +0x126B,0x0000,0x0000,0x0000,0x0000, /* 24D4 */ +0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24D5 */ +0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24D6 */ +0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24D7 */ +0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24D8 */ +0x1305,0x0000,0x0000,0x0000,0x0000, /* 24D9 */ +0x131E,0x0000,0x0000,0x0000,0x0000, /* 24DA */ +0x1330,0x0000,0x0000,0x0000,0x0000, /* 24DB */ +0x135F,0x0000,0x0000,0x0000,0x0000, /* 24DC */ +0x136D,0x0000,0x0000,0x0000,0x0000, /* 24DD */ +0x138E,0x0000,0x0000,0x0000,0x0000, /* 24DE */ +0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24DF */ +0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24E0 */ +0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24E1 */ +0x1410,0x0000,0x0000,0x0000,0x0000, /* 24E2 */ +0x1433,0x0000,0x0000,0x0000,0x0000, /* 24E3 */ +0x1453,0x0000,0x0000,0x0000,0x0000, /* 24E4 */ +0x147B,0x0000,0x0000,0x0000,0x0000, /* 24E5 */ +0x148D,0x0000,0x0000,0x0000,0x0000, /* 24E6 */ +0x1497,0x0000,0x0000,0x0000,0x0000, /* 24E7 */ +0x149C,0x0000,0x0000,0x0000,0x0000, /* 24E8 */ +0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24E9 */ +0x1205,0x0000,0x0000,0x0000,0x0000, /* 24EA */ +0x1206,0x1206,0x0000,0x0000,0x0000, /* 24EB */ +0x1206,0x1207,0x0000,0x0000,0x0000, /* 24EC */ +0x1206,0x1208,0x0000,0x0000,0x0000, /* 24ED */ +0x1206,0x1209,0x0000,0x0000,0x0000, /* 24EE */ +0x1206,0x120A,0x0000,0x0000,0x0000, /* 24EF */ +0x1206,0x120B,0x0000,0x0000,0x0000, /* 24F0 */ +0x1206,0x120C,0x0000,0x0000,0x0000, /* 24F1 */ +0x1206,0x120D,0x0000,0x0000,0x0000, /* 24F2 */ +0x1206,0x120E,0x0000,0x0000,0x0000, /* 24F3 */ +0x1207,0x1205,0x0000,0x0000,0x0000, /* 24F4 */ +0x1206,0x0000,0x0000,0x0000,0x0000, /* 24F5 */ +0x1207,0x0000,0x0000,0x0000,0x0000, /* 24F6 */ +0x1208,0x0000,0x0000,0x0000,0x0000, /* 24F7 */ +0x1209,0x0000,0x0000,0x0000,0x0000, /* 24F8 */ +0x120A,0x0000,0x0000,0x0000,0x0000, /* 24F9 */ +0x120B,0x0000,0x0000,0x0000,0x0000, /* 24FA */ +0x120C,0x0000,0x0000,0x0000,0x0000, /* 24FB */ +0x120D,0x0000,0x0000,0x0000,0x0000, /* 24FC */ +0x120E,0x0000,0x0000,0x0000,0x0000, /* 24FD */ +0x1206,0x1205,0x0000,0x0000,0x0000, /* 24FE */ +0x1205,0x0000,0x0000,0x0000,0x0000 /* 24FF */ +}; + +static const uint16 uca520_p025[]= { /* 2500 (2 weights per char) */ +0x073E,0x0000, 0x073F,0x0000, 0x0740,0x0000, 0x0741,0x0000, /* 2500 */ +0x0742,0x0000, 0x0743,0x0000, 0x0744,0x0000, 0x0745,0x0000, /* 2504 */ +0x0746,0x0000, 0x0747,0x0000, 0x0748,0x0000, 0x0749,0x0000, /* 2508 */ +0x074A,0x0000, 0x074B,0x0000, 0x074C,0x0000, 0x074D,0x0000, /* 250C */ +0x074E,0x0000, 0x074F,0x0000, 0x0750,0x0000, 0x0751,0x0000, /* 2510 */ +0x0752,0x0000, 0x0753,0x0000, 0x0754,0x0000, 0x0755,0x0000, /* 2514 */ +0x0756,0x0000, 0x0757,0x0000, 0x0758,0x0000, 0x0759,0x0000, /* 2518 */ +0x075A,0x0000, 0x075B,0x0000, 0x075C,0x0000, 0x075D,0x0000, /* 251C */ +0x075E,0x0000, 0x075F,0x0000, 0x0760,0x0000, 0x0761,0x0000, /* 2520 */ +0x0762,0x0000, 0x0763,0x0000, 0x0764,0x0000, 0x0765,0x0000, /* 2524 */ +0x0766,0x0000, 0x0767,0x0000, 0x0768,0x0000, 0x0769,0x0000, /* 2528 */ +0x076A,0x0000, 0x076B,0x0000, 0x076C,0x0000, 0x076D,0x0000, /* 252C */ +0x076E,0x0000, 0x076F,0x0000, 0x0770,0x0000, 0x0771,0x0000, /* 2530 */ +0x0772,0x0000, 0x0773,0x0000, 0x0774,0x0000, 0x0775,0x0000, /* 2534 */ +0x0776,0x0000, 0x0777,0x0000, 0x0778,0x0000, 0x0779,0x0000, /* 2538 */ +0x077A,0x0000, 0x077B,0x0000, 0x077C,0x0000, 0x077D,0x0000, /* 253C */ +0x077E,0x0000, 0x077F,0x0000, 0x0780,0x0000, 0x0781,0x0000, /* 2540 */ +0x0782,0x0000, 0x0783,0x0000, 0x0784,0x0000, 0x0785,0x0000, /* 2544 */ +0x0786,0x0000, 0x0787,0x0000, 0x0788,0x0000, 0x0789,0x0000, /* 2548 */ +0x078A,0x0000, 0x078B,0x0000, 0x078C,0x0000, 0x078D,0x0000, /* 254C */ +0x078E,0x0000, 0x078F,0x0000, 0x0790,0x0000, 0x0791,0x0000, /* 2550 */ +0x0792,0x0000, 0x0793,0x0000, 0x0794,0x0000, 0x0795,0x0000, /* 2554 */ +0x0796,0x0000, 0x0797,0x0000, 0x0798,0x0000, 0x0799,0x0000, /* 2558 */ +0x079A,0x0000, 0x079B,0x0000, 0x079C,0x0000, 0x079D,0x0000, /* 255C */ +0x079E,0x0000, 0x079F,0x0000, 0x07A0,0x0000, 0x07A1,0x0000, /* 2560 */ +0x07A2,0x0000, 0x07A3,0x0000, 0x07A4,0x0000, 0x07A5,0x0000, /* 2564 */ +0x07A6,0x0000, 0x07A7,0x0000, 0x07A8,0x0000, 0x07A9,0x0000, /* 2568 */ +0x07AA,0x0000, 0x07AB,0x0000, 0x07AC,0x0000, 0x07AD,0x0000, /* 256C */ +0x07AE,0x0000, 0x07AF,0x0000, 0x07B0,0x0000, 0x07B1,0x0000, /* 2570 */ +0x07B2,0x0000, 0x07B3,0x0000, 0x07B4,0x0000, 0x07B5,0x0000, /* 2574 */ +0x07B6,0x0000, 0x07B7,0x0000, 0x07B8,0x0000, 0x07B9,0x0000, /* 2578 */ +0x07BA,0x0000, 0x07BB,0x0000, 0x07BC,0x0000, 0x07BD,0x0000, /* 257C */ +0x07BE,0x0000, 0x07BF,0x0000, 0x07C0,0x0000, 0x07C1,0x0000, /* 2580 */ +0x07C2,0x0000, 0x07C3,0x0000, 0x07C4,0x0000, 0x07C5,0x0000, /* 2584 */ +0x07C6,0x0000, 0x07C7,0x0000, 0x07C8,0x0000, 0x07C9,0x0000, /* 2588 */ +0x07CA,0x0000, 0x07CB,0x0000, 0x07CC,0x0000, 0x07CD,0x0000, /* 258C */ +0x07CE,0x0000, 0x07CF,0x0000, 0x07D0,0x0000, 0x07D1,0x0000, /* 2590 */ +0x07D2,0x0000, 0x07D3,0x0000, 0x07D4,0x0000, 0x07D5,0x0000, /* 2594 */ +0x07D6,0x0000, 0x07D7,0x0000, 0x07D8,0x0000, 0x07D9,0x0000, /* 2598 */ +0x07DA,0x0000, 0x07DB,0x0000, 0x07DC,0x0000, 0x07DD,0x0000, /* 259C */ +0x07DE,0x0000, 0x07DF,0x0000, 0x07E0,0x0000, 0x07E1,0x0000, /* 25A0 */ +0x07E2,0x0000, 0x07E3,0x0000, 0x07E4,0x0000, 0x07E5,0x0000, /* 25A4 */ +0x07E6,0x0000, 0x07E7,0x0000, 0x07E8,0x0000, 0x07E9,0x0000, /* 25A8 */ +0x07EA,0x0000, 0x07EB,0x0000, 0x07EC,0x0000, 0x07ED,0x0000, /* 25AC */ +0x07EE,0x0000, 0x07EF,0x0000, 0x07F0,0x0000, 0x07F1,0x0000, /* 25B0 */ +0x07F2,0x0000, 0x07F3,0x0000, 0x07F4,0x0000, 0x07F5,0x0000, /* 25B4 */ +0x07F6,0x0000, 0x07F7,0x0000, 0x07F8,0x0000, 0x07F9,0x0000, /* 25B8 */ +0x07FA,0x0000, 0x07FB,0x0000, 0x07FC,0x0000, 0x07FD,0x0000, /* 25BC */ +0x07FE,0x0000, 0x07FF,0x0000, 0x0800,0x0000, 0x0801,0x0000, /* 25C0 */ +0x0802,0x0000, 0x0803,0x0000, 0x0804,0x0000, 0x0805,0x0000, /* 25C4 */ +0x0806,0x0000, 0x0807,0x0000, 0x0808,0x0000, 0x0809,0x0000, /* 25C8 */ +0x080A,0x0000, 0x080B,0x0000, 0x080C,0x0000, 0x080D,0x0000, /* 25CC */ +0x080E,0x0000, 0x080F,0x0000, 0x0810,0x0000, 0x0811,0x0000, /* 25D0 */ +0x0812,0x0000, 0x0813,0x0000, 0x0814,0x0000, 0x0815,0x0000, /* 25D4 */ +0x0816,0x0000, 0x0817,0x0000, 0x0818,0x0000, 0x0819,0x0000, /* 25D8 */ +0x081A,0x0000, 0x081B,0x0000, 0x081C,0x0000, 0x081D,0x0000, /* 25DC */ +0x081E,0x0000, 0x081F,0x0000, 0x0820,0x0000, 0x0821,0x0000, /* 25E0 */ +0x0822,0x0000, 0x0823,0x0000, 0x0824,0x0000, 0x0825,0x0000, /* 25E4 */ +0x0826,0x0000, 0x0827,0x0000, 0x0828,0x0000, 0x0829,0x0000, /* 25E8 */ +0x082A,0x0000, 0x082B,0x0000, 0x082C,0x0000, 0x082D,0x0000, /* 25EC */ +0x082E,0x0000, 0x082F,0x0000, 0x0830,0x0000, 0x0831,0x0000, /* 25F0 */ +0x0832,0x0000, 0x0833,0x0000, 0x0834,0x0000, 0x0835,0x0000, /* 25F4 */ +0x0836,0x0000, 0x0837,0x0000, 0x0838,0x0000, 0x0839,0x0000, /* 25F8 */ +0x083A,0x0000, 0x083B,0x0000, 0x083C,0x0000, 0x083D,0x0000 /* 25FC */ +}; + +static const uint16 uca520_p026[]= { /* 2600 (3 weights per char) */ +0x083E,0x0000,0x0000, 0x083F,0x0000,0x0000, 0x0840,0x0000,0x0000, /* 2600 */ +0x0841,0x0000,0x0000, 0x0842,0x0000,0x0000, 0x0843,0x0000,0x0000, /* 2603 */ +0x0844,0x0000,0x0000, 0x0845,0x0000,0x0000, 0x0846,0x0000,0x0000, /* 2606 */ +0x0847,0x0000,0x0000, 0x0848,0x0000,0x0000, 0x0849,0x0000,0x0000, /* 2609 */ +0x084A,0x0000,0x0000, 0x084B,0x0000,0x0000, 0x084C,0x0000,0x0000, /* 260C */ +0x084D,0x0000,0x0000, 0x084E,0x0000,0x0000, 0x084F,0x0000,0x0000, /* 260F */ +0x0850,0x0000,0x0000, 0x0851,0x0000,0x0000, 0x0852,0x0000,0x0000, /* 2612 */ +0x0853,0x0000,0x0000, 0x0854,0x0000,0x0000, 0x0855,0x0000,0x0000, /* 2615 */ +0x0856,0x0000,0x0000, 0x0857,0x0000,0x0000, 0x0858,0x0000,0x0000, /* 2618 */ +0x0859,0x0000,0x0000, 0x085A,0x0000,0x0000, 0x085B,0x0000,0x0000, /* 261B */ +0x085C,0x0000,0x0000, 0x085D,0x0000,0x0000, 0x085E,0x0000,0x0000, /* 261E */ +0x085F,0x0000,0x0000, 0x0860,0x0000,0x0000, 0x0861,0x0000,0x0000, /* 2621 */ +0x0862,0x0000,0x0000, 0x0863,0x0000,0x0000, 0x0864,0x0000,0x0000, /* 2624 */ +0x0865,0x0000,0x0000, 0x0866,0x0000,0x0000, 0x0867,0x0000,0x0000, /* 2627 */ +0x0868,0x0000,0x0000, 0x0869,0x0000,0x0000, 0x086A,0x0000,0x0000, /* 262A */ +0x086B,0x0000,0x0000, 0x086C,0x0000,0x0000, 0x086D,0x0000,0x0000, /* 262D */ +0x0D36,0x0000,0x0000, 0x0D37,0x0000,0x0000, 0x0D38,0x0000,0x0000, /* 2630 */ +0x0D39,0x0000,0x0000, 0x0D3A,0x0000,0x0000, 0x0D3B,0x0000,0x0000, /* 2633 */ +0x0D3C,0x0000,0x0000, 0x0D3D,0x0000,0x0000, 0x086E,0x0000,0x0000, /* 2636 */ +0x086F,0x0000,0x0000, 0x0870,0x0000,0x0000, 0x0871,0x0000,0x0000, /* 2639 */ +0x0872,0x0000,0x0000, 0x0873,0x0000,0x0000, 0x0874,0x0000,0x0000, /* 263C */ +0x0875,0x0000,0x0000, 0x0876,0x0000,0x0000, 0x0877,0x0000,0x0000, /* 263F */ +0x0878,0x0000,0x0000, 0x0879,0x0000,0x0000, 0x087A,0x0000,0x0000, /* 2642 */ +0x087B,0x0000,0x0000, 0x087C,0x0000,0x0000, 0x087D,0x0000,0x0000, /* 2645 */ +0x087E,0x0000,0x0000, 0x087F,0x0000,0x0000, 0x0880,0x0000,0x0000, /* 2648 */ +0x0881,0x0000,0x0000, 0x0882,0x0000,0x0000, 0x0883,0x0000,0x0000, /* 264B */ +0x0884,0x0000,0x0000, 0x0885,0x0000,0x0000, 0x0886,0x0000,0x0000, /* 264E */ +0x0887,0x0000,0x0000, 0x0888,0x0000,0x0000, 0x0889,0x0000,0x0000, /* 2651 */ +0x088A,0x0000,0x0000, 0x088B,0x0000,0x0000, 0x088C,0x0000,0x0000, /* 2654 */ +0x088D,0x0000,0x0000, 0x088E,0x0000,0x0000, 0x088F,0x0000,0x0000, /* 2657 */ +0x0890,0x0000,0x0000, 0x0891,0x0000,0x0000, 0x0892,0x0000,0x0000, /* 265A */ +0x0893,0x0000,0x0000, 0x0894,0x0000,0x0000, 0x0895,0x0000,0x0000, /* 265D */ +0x0896,0x0000,0x0000, 0x0897,0x0000,0x0000, 0x0898,0x0000,0x0000, /* 2660 */ +0x0899,0x0000,0x0000, 0x089A,0x0000,0x0000, 0x089B,0x0000,0x0000, /* 2663 */ +0x089C,0x0000,0x0000, 0x089D,0x0000,0x0000, 0x089E,0x0000,0x0000, /* 2666 */ +0x089F,0x0000,0x0000, 0x08A0,0x0000,0x0000, 0x08A1,0x0000,0x0000, /* 2669 */ +0x08A2,0x0000,0x0000, 0x0F7C,0x0000,0x0000, 0x0F7D,0x0000,0x0000, /* 266C */ +0x0F7E,0x0000,0x0000, 0x08A3,0x0000,0x0000, 0x08A4,0x0000,0x0000, /* 266F */ +0x08A5,0x0000,0x0000, 0x08A6,0x0000,0x0000, 0x08A7,0x0000,0x0000, /* 2672 */ +0x08A8,0x0000,0x0000, 0x08A9,0x0000,0x0000, 0x08AA,0x0000,0x0000, /* 2675 */ +0x08AB,0x0000,0x0000, 0x08AC,0x0000,0x0000, 0x08AD,0x0000,0x0000, /* 2678 */ +0x08AE,0x0000,0x0000, 0x08AF,0x0000,0x0000, 0x08B0,0x0000,0x0000, /* 267B */ +0x08B1,0x0000,0x0000, 0x08B2,0x0000,0x0000, 0x08B3,0x0000,0x0000, /* 267E */ +0x08B4,0x0000,0x0000, 0x08B5,0x0000,0x0000, 0x08B6,0x0000,0x0000, /* 2681 */ +0x08B7,0x0000,0x0000, 0x08B8,0x0000,0x0000, 0x08B9,0x0000,0x0000, /* 2684 */ +0x08BA,0x0000,0x0000, 0x08BB,0x0000,0x0000, 0x08BC,0x0000,0x0000, /* 2687 */ +0x0D30,0x0000,0x0000, 0x0D31,0x0000,0x0000, 0x0D32,0x0000,0x0000, /* 268A */ +0x0D33,0x0000,0x0000, 0x0D34,0x0000,0x0000, 0x0D35,0x0000,0x0000, /* 268D */ +0x08BD,0x0000,0x0000, 0x08BE,0x0000,0x0000, 0x08BF,0x0000,0x0000, /* 2690 */ +0x08C0,0x0000,0x0000, 0x08C1,0x0000,0x0000, 0x08C2,0x0000,0x0000, /* 2693 */ +0x08C3,0x0000,0x0000, 0x08C4,0x0000,0x0000, 0x08C5,0x0000,0x0000, /* 2696 */ +0x08C6,0x0000,0x0000, 0x08C7,0x0000,0x0000, 0x08C8,0x0000,0x0000, /* 2699 */ +0x08C9,0x0000,0x0000, 0x08CA,0x0000,0x0000, 0x08CB,0x0000,0x0000, /* 269C */ +0x08CC,0x0000,0x0000, 0x08CD,0x0000,0x0000, 0x08CE,0x0000,0x0000, /* 269F */ +0x08CF,0x0000,0x0000, 0x08D0,0x0000,0x0000, 0x08D1,0x0000,0x0000, /* 26A2 */ +0x08D2,0x0000,0x0000, 0x08D3,0x0000,0x0000, 0x08D4,0x0000,0x0000, /* 26A5 */ +0x08D5,0x0000,0x0000, 0x08D6,0x0000,0x0000, 0x08D7,0x0000,0x0000, /* 26A8 */ +0x08D8,0x0000,0x0000, 0x08D9,0x0000,0x0000, 0x08DA,0x0000,0x0000, /* 26AB */ +0x08DB,0x0000,0x0000, 0x08DC,0x0000,0x0000, 0x08DD,0x0000,0x0000, /* 26AE */ +0x08DE,0x0000,0x0000, 0x08DF,0x0000,0x0000, 0x08E0,0x0000,0x0000, /* 26B1 */ +0x08E1,0x0000,0x0000, 0x08E2,0x0000,0x0000, 0x08E3,0x0000,0x0000, /* 26B4 */ +0x08E4,0x0000,0x0000, 0x08E5,0x0000,0x0000, 0x08E6,0x0000,0x0000, /* 26B7 */ +0x08E7,0x0000,0x0000, 0x08E8,0x0000,0x0000, 0x08E9,0x0000,0x0000, /* 26BA */ +0x08EA,0x0000,0x0000, 0x08EB,0x0000,0x0000, 0x08EC,0x0000,0x0000, /* 26BD */ +0x08ED,0x0000,0x0000, 0x08EE,0x0000,0x0000, 0x08EF,0x0000,0x0000, /* 26C0 */ +0x08F0,0x0000,0x0000, 0x08F1,0x0000,0x0000, 0x08F2,0x0000,0x0000, /* 26C3 */ +0x08F3,0x0000,0x0000, 0x08F4,0x0000,0x0000, 0x08F5,0x0000,0x0000, /* 26C6 */ +0x08F6,0x0000,0x0000, 0x08F7,0x0000,0x0000, 0x08F8,0x0000,0x0000, /* 26C9 */ +0x08F9,0x0000,0x0000, 0x08FA,0x0000,0x0000, 0xFBC0,0xA6CE,0x0000, /* 26CC */ +0x08FB,0x0000,0x0000, 0x08FC,0x0000,0x0000, 0x08FD,0x0000,0x0000, /* 26CF */ +0x08FE,0x0000,0x0000, 0x08FF,0x0000,0x0000, 0x0900,0x0000,0x0000, /* 26D2 */ +0x0901,0x0000,0x0000, 0x0902,0x0000,0x0000, 0x0903,0x0000,0x0000, /* 26D5 */ +0x0904,0x0000,0x0000, 0x0905,0x0000,0x0000, 0x0906,0x0000,0x0000, /* 26D8 */ +0x0907,0x0000,0x0000, 0x0908,0x0000,0x0000, 0x0909,0x0000,0x0000, /* 26DB */ +0x090A,0x0000,0x0000, 0x090B,0x0000,0x0000, 0x090C,0x0000,0x0000, /* 26DE */ +0x090D,0x0000,0x0000, 0xFBC0,0xA6E2,0x0000, 0x090E,0x0000,0x0000, /* 26E1 */ +0xFBC0,0xA6E4,0x0000, 0xFBC0,0xA6E5,0x0000, 0xFBC0,0xA6E6,0x0000, /* 26E4 */ +0xFBC0,0xA6E7,0x0000, 0x090F,0x0000,0x0000, 0x0910,0x0000,0x0000, /* 26E7 */ +0x0911,0x0000,0x0000, 0x0912,0x0000,0x0000, 0x0913,0x0000,0x0000, /* 26EA */ +0x0914,0x0000,0x0000, 0x0915,0x0000,0x0000, 0x0916,0x0000,0x0000, /* 26ED */ +0x0917,0x0000,0x0000, 0x0918,0x0000,0x0000, 0x0919,0x0000,0x0000, /* 26F0 */ +0x091A,0x0000,0x0000, 0x091B,0x0000,0x0000, 0x091C,0x0000,0x0000, /* 26F3 */ +0x091D,0x0000,0x0000, 0x091E,0x0000,0x0000, 0x091F,0x0000,0x0000, /* 26F6 */ +0x0920,0x0000,0x0000, 0x0921,0x0000,0x0000, 0x0922,0x0000,0x0000, /* 26F9 */ +0x0923,0x0000,0x0000, 0x0924,0x0000,0x0000, 0x0925,0x0000,0x0000, /* 26FC */ +0x0926,0x0000,0x0000 }; + +static const uint16 uca520_p027[]= { /* 2700 (3 weights per char) */ +0xFBC0,0xA700,0x0000, 0x0927,0x0000,0x0000, 0x0928,0x0000,0x0000, /* 2700 */ +0x0929,0x0000,0x0000, 0x092A,0x0000,0x0000, 0xFBC0,0xA705,0x0000, /* 2703 */ +0x092B,0x0000,0x0000, 0x092C,0x0000,0x0000, 0x092D,0x0000,0x0000, /* 2706 */ +0x092E,0x0000,0x0000, 0xFBC0,0xA70A,0x0000, 0xFBC0,0xA70B,0x0000, /* 2709 */ +0x092F,0x0000,0x0000, 0x0930,0x0000,0x0000, 0x0931,0x0000,0x0000, /* 270C */ +0x0932,0x0000,0x0000, 0x0933,0x0000,0x0000, 0x0934,0x0000,0x0000, /* 270F */ +0x0935,0x0000,0x0000, 0x0936,0x0000,0x0000, 0x0937,0x0000,0x0000, /* 2712 */ +0x0938,0x0000,0x0000, 0x0939,0x0000,0x0000, 0x093A,0x0000,0x0000, /* 2715 */ +0x093B,0x0000,0x0000, 0x093C,0x0000,0x0000, 0x093D,0x0000,0x0000, /* 2718 */ +0x093E,0x0000,0x0000, 0x093F,0x0000,0x0000, 0x0940,0x0000,0x0000, /* 271B */ +0x0941,0x0000,0x0000, 0x0942,0x0000,0x0000, 0x0943,0x0000,0x0000, /* 271E */ +0x0944,0x0000,0x0000, 0x0945,0x0000,0x0000, 0x0946,0x0000,0x0000, /* 2721 */ +0x0947,0x0000,0x0000, 0x0948,0x0000,0x0000, 0x0949,0x0000,0x0000, /* 2724 */ +0x094A,0x0000,0x0000, 0xFBC0,0xA728,0x0000, 0x094B,0x0000,0x0000, /* 2727 */ +0x094C,0x0000,0x0000, 0x094D,0x0000,0x0000, 0x094E,0x0000,0x0000, /* 272A */ +0x094F,0x0000,0x0000, 0x0950,0x0000,0x0000, 0x0951,0x0000,0x0000, /* 272D */ +0x0952,0x0000,0x0000, 0x0953,0x0000,0x0000, 0x0954,0x0000,0x0000, /* 2730 */ +0x0955,0x0000,0x0000, 0x0956,0x0000,0x0000, 0x0957,0x0000,0x0000, /* 2733 */ +0x0958,0x0000,0x0000, 0x0959,0x0000,0x0000, 0x095A,0x0000,0x0000, /* 2736 */ +0x095B,0x0000,0x0000, 0x095C,0x0000,0x0000, 0x095D,0x0000,0x0000, /* 2739 */ +0x095E,0x0000,0x0000, 0x095F,0x0000,0x0000, 0x0960,0x0000,0x0000, /* 273C */ +0x0961,0x0000,0x0000, 0x0962,0x0000,0x0000, 0x0963,0x0000,0x0000, /* 273F */ +0x0964,0x0000,0x0000, 0x0965,0x0000,0x0000, 0x0966,0x0000,0x0000, /* 2742 */ +0x0967,0x0000,0x0000, 0x0968,0x0000,0x0000, 0x0969,0x0000,0x0000, /* 2745 */ +0x096A,0x0000,0x0000, 0x096B,0x0000,0x0000, 0x096C,0x0000,0x0000, /* 2748 */ +0x096D,0x0000,0x0000, 0xFBC0,0xA74C,0x0000, 0x096E,0x0000,0x0000, /* 274B */ +0xFBC0,0xA74E,0x0000, 0x096F,0x0000,0x0000, 0x0970,0x0000,0x0000, /* 274E */ +0x0971,0x0000,0x0000, 0x0972,0x0000,0x0000, 0xFBC0,0xA753,0x0000, /* 2751 */ +0xFBC0,0xA754,0x0000, 0xFBC0,0xA755,0x0000, 0x0973,0x0000,0x0000, /* 2754 */ +0x0974,0x0000,0x0000, 0x0975,0x0000,0x0000, 0x0976,0x0000,0x0000, /* 2757 */ +0x0977,0x0000,0x0000, 0x0978,0x0000,0x0000, 0x0979,0x0000,0x0000, /* 275A */ +0x097A,0x0000,0x0000, 0x097B,0x0000,0x0000, 0xFBC0,0xA75F,0x0000, /* 275D */ +0xFBC0,0xA760,0x0000, 0x097C,0x0000,0x0000, 0x097D,0x0000,0x0000, /* 2760 */ +0x097E,0x0000,0x0000, 0x097F,0x0000,0x0000, 0x0980,0x0000,0x0000, /* 2763 */ +0x0981,0x0000,0x0000, 0x0982,0x0000,0x0000, 0x0983,0x0000,0x0000, /* 2766 */ +0x0984,0x0000,0x0000, 0x0985,0x0000,0x0000, 0x0986,0x0000,0x0000, /* 2769 */ +0x0987,0x0000,0x0000, 0x0988,0x0000,0x0000, 0x0989,0x0000,0x0000, /* 276C */ +0x098A,0x0000,0x0000, 0x098B,0x0000,0x0000, 0x098C,0x0000,0x0000, /* 276F */ +0x098D,0x0000,0x0000, 0x098E,0x0000,0x0000, 0x098F,0x0000,0x0000, /* 2772 */ +0x0990,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 2775 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 2778 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 277B */ +0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, 0x1206,0x0000,0x0000, /* 277E */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 2781 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 2784 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, /* 2787 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 278A */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 278D */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 2790 */ +0x1206,0x1205,0x0000, 0x0991,0x0000,0x0000, 0xFBC0,0xA795,0x0000, /* 2793 */ +0xFBC0,0xA796,0x0000, 0xFBC0,0xA797,0x0000, 0x0992,0x0000,0x0000, /* 2796 */ +0x0993,0x0000,0x0000, 0x0994,0x0000,0x0000, 0x0995,0x0000,0x0000, /* 2799 */ +0x0996,0x0000,0x0000, 0x0997,0x0000,0x0000, 0x0998,0x0000,0x0000, /* 279C */ +0x0999,0x0000,0x0000, 0x099A,0x0000,0x0000, 0x099B,0x0000,0x0000, /* 279F */ +0x099C,0x0000,0x0000, 0x099D,0x0000,0x0000, 0x099E,0x0000,0x0000, /* 27A2 */ +0x099F,0x0000,0x0000, 0x09A0,0x0000,0x0000, 0x09A1,0x0000,0x0000, /* 27A5 */ +0x09A2,0x0000,0x0000, 0x09A3,0x0000,0x0000, 0x09A4,0x0000,0x0000, /* 27A8 */ +0x09A5,0x0000,0x0000, 0x09A6,0x0000,0x0000, 0x09A7,0x0000,0x0000, /* 27AB */ +0x09A8,0x0000,0x0000, 0x09A9,0x0000,0x0000, 0xFBC0,0xA7B0,0x0000, /* 27AE */ +0x09AA,0x0000,0x0000, 0x09AB,0x0000,0x0000, 0x09AC,0x0000,0x0000, /* 27B1 */ +0x09AD,0x0000,0x0000, 0x09AE,0x0000,0x0000, 0x09AF,0x0000,0x0000, /* 27B4 */ +0x09B0,0x0000,0x0000, 0x09B1,0x0000,0x0000, 0x09B2,0x0000,0x0000, /* 27B7 */ +0x09B3,0x0000,0x0000, 0x09B4,0x0000,0x0000, 0x09B5,0x0000,0x0000, /* 27BA */ +0x09B6,0x0000,0x0000, 0x09B7,0x0000,0x0000, 0xFBC0,0xA7BF,0x0000, /* 27BD */ +0x09B8,0x0000,0x0000, 0x09B9,0x0000,0x0000, 0x09BA,0x0000,0x0000, /* 27C0 */ +0x09BB,0x0000,0x0000, 0x09BC,0x0000,0x0000, 0x09BD,0x0000,0x0000, /* 27C3 */ +0x09BE,0x0000,0x0000, 0x09BF,0x0000,0x0000, 0x09C0,0x0000,0x0000, /* 27C6 */ +0x09C1,0x0000,0x0000, 0x09C2,0x0000,0x0000, 0xFBC0,0xA7CB,0x0000, /* 27C9 */ +0x09C3,0x0000,0x0000, 0xFBC0,0xA7CD,0x0000, 0xFBC0,0xA7CE,0x0000, /* 27CC */ +0xFBC0,0xA7CF,0x0000, 0x09C4,0x0000,0x0000, 0x09C5,0x0000,0x0000, /* 27CF */ +0x09C6,0x0000,0x0000, 0x09C7,0x0000,0x0000, 0x09C8,0x0000,0x0000, /* 27D2 */ +0x09C9,0x0000,0x0000, 0x09CA,0x0000,0x0000, 0x09CB,0x0000,0x0000, /* 27D5 */ +0x09CC,0x0000,0x0000, 0x09CD,0x0000,0x0000, 0x09CE,0x0000,0x0000, /* 27D8 */ +0x09CF,0x0000,0x0000, 0x09D0,0x0000,0x0000, 0x09D1,0x0000,0x0000, /* 27DB */ +0x09D2,0x0000,0x0000, 0x09D3,0x0000,0x0000, 0x09D4,0x0000,0x0000, /* 27DE */ +0x09D5,0x0000,0x0000, 0x09D6,0x0000,0x0000, 0x09D7,0x0000,0x0000, /* 27E1 */ +0x09D8,0x0000,0x0000, 0x09D9,0x0000,0x0000, 0x09DA,0x0000,0x0000, /* 27E4 */ +0x09DB,0x0000,0x0000, 0x09DC,0x0000,0x0000, 0x09DD,0x0000,0x0000, /* 27E7 */ +0x09DE,0x0000,0x0000, 0x09DF,0x0000,0x0000, 0x0325,0x0000,0x0000, /* 27EA */ +0x0326,0x0000,0x0000, 0x0327,0x0000,0x0000, 0x0328,0x0000,0x0000, /* 27ED */ +0x09E0,0x0000,0x0000, 0x09E1,0x0000,0x0000, 0x09E2,0x0000,0x0000, /* 27F0 */ +0x09E3,0x0000,0x0000, 0x09E4,0x0000,0x0000, 0x09E5,0x0000,0x0000, /* 27F3 */ +0x09E6,0x0000,0x0000, 0x09E7,0x0000,0x0000, 0x09E8,0x0000,0x0000, /* 27F6 */ +0x09E9,0x0000,0x0000, 0x09EA,0x0000,0x0000, 0x09EB,0x0000,0x0000, /* 27F9 */ +0x09EC,0x0000,0x0000, 0x09ED,0x0000,0x0000, 0x09EE,0x0000,0x0000, /* 27FC */ +0x09EF,0x0000,0x0000 }; + +static const uint16 uca520_p028[]= { /* 2800 (2 weights per char) */ +0x0C30,0x0000, 0x0C31,0x0000, 0x0C32,0x0000, 0x0C33,0x0000, /* 2800 */ +0x0C34,0x0000, 0x0C35,0x0000, 0x0C36,0x0000, 0x0C37,0x0000, /* 2804 */ +0x0C38,0x0000, 0x0C39,0x0000, 0x0C3A,0x0000, 0x0C3B,0x0000, /* 2808 */ +0x0C3C,0x0000, 0x0C3D,0x0000, 0x0C3E,0x0000, 0x0C3F,0x0000, /* 280C */ +0x0C40,0x0000, 0x0C41,0x0000, 0x0C42,0x0000, 0x0C43,0x0000, /* 2810 */ +0x0C44,0x0000, 0x0C45,0x0000, 0x0C46,0x0000, 0x0C47,0x0000, /* 2814 */ +0x0C48,0x0000, 0x0C49,0x0000, 0x0C4A,0x0000, 0x0C4B,0x0000, /* 2818 */ +0x0C4C,0x0000, 0x0C4D,0x0000, 0x0C4E,0x0000, 0x0C4F,0x0000, /* 281C */ +0x0C50,0x0000, 0x0C51,0x0000, 0x0C52,0x0000, 0x0C53,0x0000, /* 2820 */ +0x0C54,0x0000, 0x0C55,0x0000, 0x0C56,0x0000, 0x0C57,0x0000, /* 2824 */ +0x0C58,0x0000, 0x0C59,0x0000, 0x0C5A,0x0000, 0x0C5B,0x0000, /* 2828 */ +0x0C5C,0x0000, 0x0C5D,0x0000, 0x0C5E,0x0000, 0x0C5F,0x0000, /* 282C */ +0x0C60,0x0000, 0x0C61,0x0000, 0x0C62,0x0000, 0x0C63,0x0000, /* 2830 */ +0x0C64,0x0000, 0x0C65,0x0000, 0x0C66,0x0000, 0x0C67,0x0000, /* 2834 */ +0x0C68,0x0000, 0x0C69,0x0000, 0x0C6A,0x0000, 0x0C6B,0x0000, /* 2838 */ +0x0C6C,0x0000, 0x0C6D,0x0000, 0x0C6E,0x0000, 0x0C6F,0x0000, /* 283C */ +0x0C70,0x0000, 0x0C71,0x0000, 0x0C72,0x0000, 0x0C73,0x0000, /* 2840 */ +0x0C74,0x0000, 0x0C75,0x0000, 0x0C76,0x0000, 0x0C77,0x0000, /* 2844 */ +0x0C78,0x0000, 0x0C79,0x0000, 0x0C7A,0x0000, 0x0C7B,0x0000, /* 2848 */ +0x0C7C,0x0000, 0x0C7D,0x0000, 0x0C7E,0x0000, 0x0C7F,0x0000, /* 284C */ +0x0C80,0x0000, 0x0C81,0x0000, 0x0C82,0x0000, 0x0C83,0x0000, /* 2850 */ +0x0C84,0x0000, 0x0C85,0x0000, 0x0C86,0x0000, 0x0C87,0x0000, /* 2854 */ +0x0C88,0x0000, 0x0C89,0x0000, 0x0C8A,0x0000, 0x0C8B,0x0000, /* 2858 */ +0x0C8C,0x0000, 0x0C8D,0x0000, 0x0C8E,0x0000, 0x0C8F,0x0000, /* 285C */ +0x0C90,0x0000, 0x0C91,0x0000, 0x0C92,0x0000, 0x0C93,0x0000, /* 2860 */ +0x0C94,0x0000, 0x0C95,0x0000, 0x0C96,0x0000, 0x0C97,0x0000, /* 2864 */ +0x0C98,0x0000, 0x0C99,0x0000, 0x0C9A,0x0000, 0x0C9B,0x0000, /* 2868 */ +0x0C9C,0x0000, 0x0C9D,0x0000, 0x0C9E,0x0000, 0x0C9F,0x0000, /* 286C */ +0x0CA0,0x0000, 0x0CA1,0x0000, 0x0CA2,0x0000, 0x0CA3,0x0000, /* 2870 */ +0x0CA4,0x0000, 0x0CA5,0x0000, 0x0CA6,0x0000, 0x0CA7,0x0000, /* 2874 */ +0x0CA8,0x0000, 0x0CA9,0x0000, 0x0CAA,0x0000, 0x0CAB,0x0000, /* 2878 */ +0x0CAC,0x0000, 0x0CAD,0x0000, 0x0CAE,0x0000, 0x0CAF,0x0000, /* 287C */ +0x0CB0,0x0000, 0x0CB1,0x0000, 0x0CB2,0x0000, 0x0CB3,0x0000, /* 2880 */ +0x0CB4,0x0000, 0x0CB5,0x0000, 0x0CB6,0x0000, 0x0CB7,0x0000, /* 2884 */ +0x0CB8,0x0000, 0x0CB9,0x0000, 0x0CBA,0x0000, 0x0CBB,0x0000, /* 2888 */ +0x0CBC,0x0000, 0x0CBD,0x0000, 0x0CBE,0x0000, 0x0CBF,0x0000, /* 288C */ +0x0CC0,0x0000, 0x0CC1,0x0000, 0x0CC2,0x0000, 0x0CC3,0x0000, /* 2890 */ +0x0CC4,0x0000, 0x0CC5,0x0000, 0x0CC6,0x0000, 0x0CC7,0x0000, /* 2894 */ +0x0CC8,0x0000, 0x0CC9,0x0000, 0x0CCA,0x0000, 0x0CCB,0x0000, /* 2898 */ +0x0CCC,0x0000, 0x0CCD,0x0000, 0x0CCE,0x0000, 0x0CCF,0x0000, /* 289C */ +0x0CD0,0x0000, 0x0CD1,0x0000, 0x0CD2,0x0000, 0x0CD3,0x0000, /* 28A0 */ +0x0CD4,0x0000, 0x0CD5,0x0000, 0x0CD6,0x0000, 0x0CD7,0x0000, /* 28A4 */ +0x0CD8,0x0000, 0x0CD9,0x0000, 0x0CDA,0x0000, 0x0CDB,0x0000, /* 28A8 */ +0x0CDC,0x0000, 0x0CDD,0x0000, 0x0CDE,0x0000, 0x0CDF,0x0000, /* 28AC */ +0x0CE0,0x0000, 0x0CE1,0x0000, 0x0CE2,0x0000, 0x0CE3,0x0000, /* 28B0 */ +0x0CE4,0x0000, 0x0CE5,0x0000, 0x0CE6,0x0000, 0x0CE7,0x0000, /* 28B4 */ +0x0CE8,0x0000, 0x0CE9,0x0000, 0x0CEA,0x0000, 0x0CEB,0x0000, /* 28B8 */ +0x0CEC,0x0000, 0x0CED,0x0000, 0x0CEE,0x0000, 0x0CEF,0x0000, /* 28BC */ +0x0CF0,0x0000, 0x0CF1,0x0000, 0x0CF2,0x0000, 0x0CF3,0x0000, /* 28C0 */ +0x0CF4,0x0000, 0x0CF5,0x0000, 0x0CF6,0x0000, 0x0CF7,0x0000, /* 28C4 */ +0x0CF8,0x0000, 0x0CF9,0x0000, 0x0CFA,0x0000, 0x0CFB,0x0000, /* 28C8 */ +0x0CFC,0x0000, 0x0CFD,0x0000, 0x0CFE,0x0000, 0x0CFF,0x0000, /* 28CC */ +0x0D00,0x0000, 0x0D01,0x0000, 0x0D02,0x0000, 0x0D03,0x0000, /* 28D0 */ +0x0D04,0x0000, 0x0D05,0x0000, 0x0D06,0x0000, 0x0D07,0x0000, /* 28D4 */ +0x0D08,0x0000, 0x0D09,0x0000, 0x0D0A,0x0000, 0x0D0B,0x0000, /* 28D8 */ +0x0D0C,0x0000, 0x0D0D,0x0000, 0x0D0E,0x0000, 0x0D0F,0x0000, /* 28DC */ +0x0D10,0x0000, 0x0D11,0x0000, 0x0D12,0x0000, 0x0D13,0x0000, /* 28E0 */ +0x0D14,0x0000, 0x0D15,0x0000, 0x0D16,0x0000, 0x0D17,0x0000, /* 28E4 */ +0x0D18,0x0000, 0x0D19,0x0000, 0x0D1A,0x0000, 0x0D1B,0x0000, /* 28E8 */ +0x0D1C,0x0000, 0x0D1D,0x0000, 0x0D1E,0x0000, 0x0D1F,0x0000, /* 28EC */ +0x0D20,0x0000, 0x0D21,0x0000, 0x0D22,0x0000, 0x0D23,0x0000, /* 28F0 */ +0x0D24,0x0000, 0x0D25,0x0000, 0x0D26,0x0000, 0x0D27,0x0000, /* 28F4 */ +0x0D28,0x0000, 0x0D29,0x0000, 0x0D2A,0x0000, 0x0D2B,0x0000, /* 28F8 */ +0x0D2C,0x0000, 0x0D2D,0x0000, 0x0D2E,0x0000, 0x0D2F,0x0000 /* 28FC */ +}; + +static const uint16 uca520_p029[]= { /* 2900 (2 weights per char) */ +0x09F0,0x0000, 0x09F1,0x0000, 0x09F2,0x0000, 0x09F3,0x0000, /* 2900 */ +0x09F4,0x0000, 0x09F5,0x0000, 0x09F6,0x0000, 0x09F7,0x0000, /* 2904 */ +0x09F8,0x0000, 0x09F9,0x0000, 0x09FA,0x0000, 0x09FB,0x0000, /* 2908 */ +0x09FC,0x0000, 0x09FD,0x0000, 0x09FE,0x0000, 0x09FF,0x0000, /* 290C */ +0x0A00,0x0000, 0x0A01,0x0000, 0x0A02,0x0000, 0x0A03,0x0000, /* 2910 */ +0x0A04,0x0000, 0x0A05,0x0000, 0x0A06,0x0000, 0x0A07,0x0000, /* 2914 */ +0x0A08,0x0000, 0x0A09,0x0000, 0x0A0A,0x0000, 0x0A0B,0x0000, /* 2918 */ +0x0A0C,0x0000, 0x0A0D,0x0000, 0x0A0E,0x0000, 0x0A0F,0x0000, /* 291C */ +0x0A10,0x0000, 0x0A11,0x0000, 0x0A12,0x0000, 0x0A13,0x0000, /* 2920 */ +0x0A14,0x0000, 0x0A15,0x0000, 0x0A16,0x0000, 0x0A17,0x0000, /* 2924 */ +0x0A18,0x0000, 0x0A19,0x0000, 0x0A1A,0x0000, 0x0A1B,0x0000, /* 2928 */ +0x0A1C,0x0000, 0x0A1D,0x0000, 0x0A1E,0x0000, 0x0A1F,0x0000, /* 292C */ +0x0A20,0x0000, 0x0A21,0x0000, 0x0A22,0x0000, 0x0A23,0x0000, /* 2930 */ +0x0A24,0x0000, 0x0A25,0x0000, 0x0A26,0x0000, 0x0A27,0x0000, /* 2934 */ +0x0A28,0x0000, 0x0A29,0x0000, 0x0A2A,0x0000, 0x0A2B,0x0000, /* 2938 */ +0x0A2C,0x0000, 0x0A2D,0x0000, 0x0A2E,0x0000, 0x0A2F,0x0000, /* 293C */ +0x0A30,0x0000, 0x0A31,0x0000, 0x0A32,0x0000, 0x0A33,0x0000, /* 2940 */ +0x0A34,0x0000, 0x0A35,0x0000, 0x0A36,0x0000, 0x0A37,0x0000, /* 2944 */ +0x0A38,0x0000, 0x0A39,0x0000, 0x0A3A,0x0000, 0x0A3B,0x0000, /* 2948 */ +0x0A3C,0x0000, 0x0A3D,0x0000, 0x0A3E,0x0000, 0x0A3F,0x0000, /* 294C */ +0x0A40,0x0000, 0x0A41,0x0000, 0x0A42,0x0000, 0x0A43,0x0000, /* 2950 */ +0x0A44,0x0000, 0x0A45,0x0000, 0x0A46,0x0000, 0x0A47,0x0000, /* 2954 */ +0x0A48,0x0000, 0x0A49,0x0000, 0x0A4A,0x0000, 0x0A4B,0x0000, /* 2958 */ +0x0A4C,0x0000, 0x0A4D,0x0000, 0x0A4E,0x0000, 0x0A4F,0x0000, /* 295C */ +0x0A50,0x0000, 0x0A51,0x0000, 0x0A52,0x0000, 0x0A53,0x0000, /* 2960 */ +0x0A54,0x0000, 0x0A55,0x0000, 0x0A56,0x0000, 0x0A57,0x0000, /* 2964 */ +0x0A58,0x0000, 0x0A59,0x0000, 0x0A5A,0x0000, 0x0A5B,0x0000, /* 2968 */ +0x0A5C,0x0000, 0x0A5D,0x0000, 0x0A5E,0x0000, 0x0A5F,0x0000, /* 296C */ +0x0A60,0x0000, 0x0A61,0x0000, 0x0A62,0x0000, 0x0A63,0x0000, /* 2970 */ +0x0A64,0x0000, 0x0A65,0x0000, 0x0A66,0x0000, 0x0A67,0x0000, /* 2974 */ +0x0A68,0x0000, 0x0A69,0x0000, 0x0A6A,0x0000, 0x0A6B,0x0000, /* 2978 */ +0x0A6C,0x0000, 0x0A6D,0x0000, 0x0A6E,0x0000, 0x0A6F,0x0000, /* 297C */ +0x0A70,0x0000, 0x0A71,0x0000, 0x0A72,0x0000, 0x030F,0x0000, /* 2980 */ +0x0310,0x0000, 0x0311,0x0000, 0x0312,0x0000, 0x0313,0x0000, /* 2984 */ +0x0314,0x0000, 0x0315,0x0000, 0x0316,0x0000, 0x0317,0x0000, /* 2988 */ +0x0318,0x0000, 0x0319,0x0000, 0x031A,0x0000, 0x031B,0x0000, /* 298C */ +0x031C,0x0000, 0x031D,0x0000, 0x031E,0x0000, 0x031F,0x0000, /* 2990 */ +0x0320,0x0000, 0x0321,0x0000, 0x0322,0x0000, 0x0323,0x0000, /* 2994 */ +0x0324,0x0000, 0x0A73,0x0000, 0x0A74,0x0000, 0x0A75,0x0000, /* 2998 */ +0x0A76,0x0000, 0x0A77,0x0000, 0x0A78,0x0000, 0x0A79,0x0000, /* 299C */ +0x0A7A,0x0000, 0x0A7B,0x0000, 0x0A7C,0x0000, 0x0A7D,0x0000, /* 29A0 */ +0x0A7E,0x0000, 0x0A7F,0x0000, 0x0A80,0x0000, 0x0A81,0x0000, /* 29A4 */ +0x0A82,0x0000, 0x0A83,0x0000, 0x0A84,0x0000, 0x0A85,0x0000, /* 29A8 */ +0x0A86,0x0000, 0x0A87,0x0000, 0x0A88,0x0000, 0x0A89,0x0000, /* 29AC */ +0x0A8A,0x0000, 0x0A8B,0x0000, 0x0A8C,0x0000, 0x0A8D,0x0000, /* 29B0 */ +0x0A8E,0x0000, 0x0A8F,0x0000, 0x0A90,0x0000, 0x0A91,0x0000, /* 29B4 */ +0x0A92,0x0000, 0x0A93,0x0000, 0x0A94,0x0000, 0x0A95,0x0000, /* 29B8 */ +0x0A96,0x0000, 0x0A97,0x0000, 0x0A98,0x0000, 0x0A99,0x0000, /* 29BC */ +0x0A9A,0x0000, 0x0A9B,0x0000, 0x0A9C,0x0000, 0x0A9D,0x0000, /* 29C0 */ +0x0A9E,0x0000, 0x0A9F,0x0000, 0x0AA0,0x0000, 0x0AA1,0x0000, /* 29C4 */ +0x0AA2,0x0000, 0x0AA3,0x0000, 0x0AA4,0x0000, 0x0AA5,0x0000, /* 29C8 */ +0x0AA6,0x0000, 0x0AA7,0x0000, 0x0AA8,0x0000, 0x0AA9,0x0000, /* 29CC */ +0x0AAA,0x0000, 0x0AAB,0x0000, 0x0AAC,0x0000, 0x0AAD,0x0000, /* 29D0 */ +0x0AAE,0x0000, 0x0AAF,0x0000, 0x0AB0,0x0000, 0x0AB1,0x0000, /* 29D4 */ +0x0AB2,0x0000, 0x0AB3,0x0000, 0x0AB4,0x0000, 0x0AB5,0x0000, /* 29D8 */ +0x0AB6,0x0000, 0x0AB7,0x0000, 0x0AB8,0x0000, 0x0AB9,0x0000, /* 29DC */ +0x0ABA,0x0000, 0x0ABB,0x0000, 0x0ABC,0x0000, 0x0ABD,0x0000, /* 29E0 */ +0x0ABE,0x0000, 0x0ABF,0x0000, 0x0AC0,0x0000, 0x0AC1,0x0000, /* 29E4 */ +0x0AC2,0x0000, 0x0AC3,0x0000, 0x0AC4,0x0000, 0x0AC5,0x0000, /* 29E8 */ +0x0AC6,0x0000, 0x0AC7,0x0000, 0x0AC8,0x0000, 0x0AC9,0x0000, /* 29EC */ +0x0ACA,0x0000, 0x0ACB,0x0000, 0x0ACC,0x0000, 0x0ACD,0x0000, /* 29F0 */ +0x0ACE,0x0000, 0x0ACF,0x0000, 0x0AD0,0x0000, 0x0AD1,0x0000, /* 29F4 */ +0x0AD2,0x0000, 0x0AD3,0x0000, 0x0AD4,0x0000, 0x0AD5,0x0000, /* 29F8 */ +0x030D,0x0000, 0x030E,0x0000, 0x0AD6,0x0000, 0x0AD7,0x0000 /* 29FC */ +}; + +static const uint16 uca520_p02A[]= { /* 2A00 (5 weights per char) */ +0x0AD8,0x0000,0x0000,0x0000,0x0000, /* 2A00 */ +0x0AD9,0x0000,0x0000,0x0000,0x0000, /* 2A01 */ +0x0ADA,0x0000,0x0000,0x0000,0x0000, /* 2A02 */ +0x0ADB,0x0000,0x0000,0x0000,0x0000, /* 2A03 */ +0x0ADC,0x0000,0x0000,0x0000,0x0000, /* 2A04 */ +0x0ADD,0x0000,0x0000,0x0000,0x0000, /* 2A05 */ +0x0ADE,0x0000,0x0000,0x0000,0x0000, /* 2A06 */ +0x0ADF,0x0000,0x0000,0x0000,0x0000, /* 2A07 */ +0x0AE0,0x0000,0x0000,0x0000,0x0000, /* 2A08 */ +0x0AE1,0x0000,0x0000,0x0000,0x0000, /* 2A09 */ +0x0AE2,0x0000,0x0000,0x0000,0x0000, /* 2A0A */ +0x0AE3,0x0000,0x0000,0x0000,0x0000, /* 2A0B */ +0x0575,0x0575,0x0575,0x0575,0x0000, /* 2A0C */ +0x0AE4,0x0000,0x0000,0x0000,0x0000, /* 2A0D */ +0x0AE5,0x0000,0x0000,0x0000,0x0000, /* 2A0E */ +0x0AE6,0x0000,0x0000,0x0000,0x0000, /* 2A0F */ +0x0AE7,0x0000,0x0000,0x0000,0x0000, /* 2A10 */ +0x0AE8,0x0000,0x0000,0x0000,0x0000, /* 2A11 */ +0x0AE9,0x0000,0x0000,0x0000,0x0000, /* 2A12 */ +0x0AEA,0x0000,0x0000,0x0000,0x0000, /* 2A13 */ +0x0AEB,0x0000,0x0000,0x0000,0x0000, /* 2A14 */ +0x0AEC,0x0000,0x0000,0x0000,0x0000, /* 2A15 */ +0x0AED,0x0000,0x0000,0x0000,0x0000, /* 2A16 */ +0x0AEE,0x0000,0x0000,0x0000,0x0000, /* 2A17 */ +0x0AEF,0x0000,0x0000,0x0000,0x0000, /* 2A18 */ +0x0AF0,0x0000,0x0000,0x0000,0x0000, /* 2A19 */ +0x0AF1,0x0000,0x0000,0x0000,0x0000, /* 2A1A */ +0x0AF2,0x0000,0x0000,0x0000,0x0000, /* 2A1B */ +0x0AF3,0x0000,0x0000,0x0000,0x0000, /* 2A1C */ +0x0AF4,0x0000,0x0000,0x0000,0x0000, /* 2A1D */ +0x0AF5,0x0000,0x0000,0x0000,0x0000, /* 2A1E */ +0x0AF6,0x0000,0x0000,0x0000,0x0000, /* 2A1F */ +0x0AF7,0x0000,0x0000,0x0000,0x0000, /* 2A20 */ +0x0AF8,0x0000,0x0000,0x0000,0x0000, /* 2A21 */ +0x0AF9,0x0000,0x0000,0x0000,0x0000, /* 2A22 */ +0x0AFA,0x0000,0x0000,0x0000,0x0000, /* 2A23 */ +0x0AFB,0x0000,0x0000,0x0000,0x0000, /* 2A24 */ +0x0AFC,0x0000,0x0000,0x0000,0x0000, /* 2A25 */ +0x0AFD,0x0000,0x0000,0x0000,0x0000, /* 2A26 */ +0x0AFE,0x0000,0x0000,0x0000,0x0000, /* 2A27 */ +0x0AFF,0x0000,0x0000,0x0000,0x0000, /* 2A28 */ +0x0B00,0x0000,0x0000,0x0000,0x0000, /* 2A29 */ +0x0B01,0x0000,0x0000,0x0000,0x0000, /* 2A2A */ +0x0B02,0x0000,0x0000,0x0000,0x0000, /* 2A2B */ +0x0B03,0x0000,0x0000,0x0000,0x0000, /* 2A2C */ +0x0B04,0x0000,0x0000,0x0000,0x0000, /* 2A2D */ +0x0B05,0x0000,0x0000,0x0000,0x0000, /* 2A2E */ +0x0B06,0x0000,0x0000,0x0000,0x0000, /* 2A2F */ +0x0B07,0x0000,0x0000,0x0000,0x0000, /* 2A30 */ +0x0B08,0x0000,0x0000,0x0000,0x0000, /* 2A31 */ +0x0B09,0x0000,0x0000,0x0000,0x0000, /* 2A32 */ +0x0B0A,0x0000,0x0000,0x0000,0x0000, /* 2A33 */ +0x0B0B,0x0000,0x0000,0x0000,0x0000, /* 2A34 */ +0x0B0C,0x0000,0x0000,0x0000,0x0000, /* 2A35 */ +0x0B0D,0x0000,0x0000,0x0000,0x0000, /* 2A36 */ +0x0B0E,0x0000,0x0000,0x0000,0x0000, /* 2A37 */ +0x0B0F,0x0000,0x0000,0x0000,0x0000, /* 2A38 */ +0x0B10,0x0000,0x0000,0x0000,0x0000, /* 2A39 */ +0x0B11,0x0000,0x0000,0x0000,0x0000, /* 2A3A */ +0x0B12,0x0000,0x0000,0x0000,0x0000, /* 2A3B */ +0x0B13,0x0000,0x0000,0x0000,0x0000, /* 2A3C */ +0x0B14,0x0000,0x0000,0x0000,0x0000, /* 2A3D */ +0x0B15,0x0000,0x0000,0x0000,0x0000, /* 2A3E */ +0x0B16,0x0000,0x0000,0x0000,0x0000, /* 2A3F */ +0x0B17,0x0000,0x0000,0x0000,0x0000, /* 2A40 */ +0x0B18,0x0000,0x0000,0x0000,0x0000, /* 2A41 */ +0x0B19,0x0000,0x0000,0x0000,0x0000, /* 2A42 */ +0x0B1A,0x0000,0x0000,0x0000,0x0000, /* 2A43 */ +0x0B1B,0x0000,0x0000,0x0000,0x0000, /* 2A44 */ +0x0B1C,0x0000,0x0000,0x0000,0x0000, /* 2A45 */ +0x0B1D,0x0000,0x0000,0x0000,0x0000, /* 2A46 */ +0x0B1E,0x0000,0x0000,0x0000,0x0000, /* 2A47 */ +0x0B1F,0x0000,0x0000,0x0000,0x0000, /* 2A48 */ +0x0B20,0x0000,0x0000,0x0000,0x0000, /* 2A49 */ +0x0B21,0x0000,0x0000,0x0000,0x0000, /* 2A4A */ +0x0B22,0x0000,0x0000,0x0000,0x0000, /* 2A4B */ +0x0B23,0x0000,0x0000,0x0000,0x0000, /* 2A4C */ +0x0B24,0x0000,0x0000,0x0000,0x0000, /* 2A4D */ +0x0B25,0x0000,0x0000,0x0000,0x0000, /* 2A4E */ +0x0B26,0x0000,0x0000,0x0000,0x0000, /* 2A4F */ +0x0B27,0x0000,0x0000,0x0000,0x0000, /* 2A50 */ +0x0B28,0x0000,0x0000,0x0000,0x0000, /* 2A51 */ +0x0B29,0x0000,0x0000,0x0000,0x0000, /* 2A52 */ +0x0B2A,0x0000,0x0000,0x0000,0x0000, /* 2A53 */ +0x0B2B,0x0000,0x0000,0x0000,0x0000, /* 2A54 */ +0x0B2C,0x0000,0x0000,0x0000,0x0000, /* 2A55 */ +0x0B2D,0x0000,0x0000,0x0000,0x0000, /* 2A56 */ +0x0B2E,0x0000,0x0000,0x0000,0x0000, /* 2A57 */ +0x0B2F,0x0000,0x0000,0x0000,0x0000, /* 2A58 */ +0x0B30,0x0000,0x0000,0x0000,0x0000, /* 2A59 */ +0x0B31,0x0000,0x0000,0x0000,0x0000, /* 2A5A */ +0x0B32,0x0000,0x0000,0x0000,0x0000, /* 2A5B */ +0x0B33,0x0000,0x0000,0x0000,0x0000, /* 2A5C */ +0x0B34,0x0000,0x0000,0x0000,0x0000, /* 2A5D */ +0x0B35,0x0000,0x0000,0x0000,0x0000, /* 2A5E */ +0x0B36,0x0000,0x0000,0x0000,0x0000, /* 2A5F */ +0x0B37,0x0000,0x0000,0x0000,0x0000, /* 2A60 */ +0x0B38,0x0000,0x0000,0x0000,0x0000, /* 2A61 */ +0x0B39,0x0000,0x0000,0x0000,0x0000, /* 2A62 */ +0x0B3A,0x0000,0x0000,0x0000,0x0000, /* 2A63 */ +0x0B3B,0x0000,0x0000,0x0000,0x0000, /* 2A64 */ +0x0B3C,0x0000,0x0000,0x0000,0x0000, /* 2A65 */ +0x0B3D,0x0000,0x0000,0x0000,0x0000, /* 2A66 */ +0x0B3E,0x0000,0x0000,0x0000,0x0000, /* 2A67 */ +0x0B3F,0x0000,0x0000,0x0000,0x0000, /* 2A68 */ +0x0B40,0x0000,0x0000,0x0000,0x0000, /* 2A69 */ +0x0B41,0x0000,0x0000,0x0000,0x0000, /* 2A6A */ +0x0B42,0x0000,0x0000,0x0000,0x0000, /* 2A6B */ +0x0B43,0x0000,0x0000,0x0000,0x0000, /* 2A6C */ +0x0B44,0x0000,0x0000,0x0000,0x0000, /* 2A6D */ +0x0B45,0x0000,0x0000,0x0000,0x0000, /* 2A6E */ +0x0B46,0x0000,0x0000,0x0000,0x0000, /* 2A6F */ +0x0B47,0x0000,0x0000,0x0000,0x0000, /* 2A70 */ +0x0B48,0x0000,0x0000,0x0000,0x0000, /* 2A71 */ +0x0B49,0x0000,0x0000,0x0000,0x0000, /* 2A72 */ +0x0B4A,0x0000,0x0000,0x0000,0x0000, /* 2A73 */ +0x0247,0x0247,0x0555,0x0000,0x0000, /* 2A74 */ +0x0555,0x0555,0x0000,0x0000,0x0000, /* 2A75 */ +0x0555,0x0555,0x0555,0x0000,0x0000, /* 2A76 */ +0x0B4B,0x0000,0x0000,0x0000,0x0000, /* 2A77 */ +0x0B4C,0x0000,0x0000,0x0000,0x0000, /* 2A78 */ +0x0B4D,0x0000,0x0000,0x0000,0x0000, /* 2A79 */ +0x0B4E,0x0000,0x0000,0x0000,0x0000, /* 2A7A */ +0x0B4F,0x0000,0x0000,0x0000,0x0000, /* 2A7B */ +0x0B50,0x0000,0x0000,0x0000,0x0000, /* 2A7C */ +0x0B51,0x0000,0x0000,0x0000,0x0000, /* 2A7D */ +0x0B52,0x0000,0x0000,0x0000,0x0000, /* 2A7E */ +0x0B53,0x0000,0x0000,0x0000,0x0000, /* 2A7F */ +0x0B54,0x0000,0x0000,0x0000,0x0000, /* 2A80 */ +0x0B55,0x0000,0x0000,0x0000,0x0000, /* 2A81 */ +0x0B56,0x0000,0x0000,0x0000,0x0000, /* 2A82 */ +0x0B57,0x0000,0x0000,0x0000,0x0000, /* 2A83 */ +0x0B58,0x0000,0x0000,0x0000,0x0000, /* 2A84 */ +0x0B59,0x0000,0x0000,0x0000,0x0000, /* 2A85 */ +0x0B5A,0x0000,0x0000,0x0000,0x0000, /* 2A86 */ +0x0B5B,0x0000,0x0000,0x0000,0x0000, /* 2A87 */ +0x0B5C,0x0000,0x0000,0x0000,0x0000, /* 2A88 */ +0x0B5D,0x0000,0x0000,0x0000,0x0000, /* 2A89 */ +0x0B5E,0x0000,0x0000,0x0000,0x0000, /* 2A8A */ +0x0B5F,0x0000,0x0000,0x0000,0x0000, /* 2A8B */ +0x0B60,0x0000,0x0000,0x0000,0x0000, /* 2A8C */ +0x0B61,0x0000,0x0000,0x0000,0x0000, /* 2A8D */ +0x0B62,0x0000,0x0000,0x0000,0x0000, /* 2A8E */ +0x0B63,0x0000,0x0000,0x0000,0x0000, /* 2A8F */ +0x0B64,0x0000,0x0000,0x0000,0x0000, /* 2A90 */ +0x0B65,0x0000,0x0000,0x0000,0x0000, /* 2A91 */ +0x0B66,0x0000,0x0000,0x0000,0x0000, /* 2A92 */ +0x0B67,0x0000,0x0000,0x0000,0x0000, /* 2A93 */ +0x0B68,0x0000,0x0000,0x0000,0x0000, /* 2A94 */ +0x0B69,0x0000,0x0000,0x0000,0x0000, /* 2A95 */ +0x0B6A,0x0000,0x0000,0x0000,0x0000, /* 2A96 */ +0x0B6B,0x0000,0x0000,0x0000,0x0000, /* 2A97 */ +0x0B6C,0x0000,0x0000,0x0000,0x0000, /* 2A98 */ +0x0B6D,0x0000,0x0000,0x0000,0x0000, /* 2A99 */ +0x0B6E,0x0000,0x0000,0x0000,0x0000, /* 2A9A */ +0x0B6F,0x0000,0x0000,0x0000,0x0000, /* 2A9B */ +0x0B70,0x0000,0x0000,0x0000,0x0000, /* 2A9C */ +0x0B71,0x0000,0x0000,0x0000,0x0000, /* 2A9D */ +0x0B72,0x0000,0x0000,0x0000,0x0000, /* 2A9E */ +0x0B73,0x0000,0x0000,0x0000,0x0000, /* 2A9F */ +0x0B74,0x0000,0x0000,0x0000,0x0000, /* 2AA0 */ +0x0B75,0x0000,0x0000,0x0000,0x0000, /* 2AA1 */ +0x0B76,0x0000,0x0000,0x0000,0x0000, /* 2AA2 */ +0x0B77,0x0000,0x0000,0x0000,0x0000, /* 2AA3 */ +0x0B78,0x0000,0x0000,0x0000,0x0000, /* 2AA4 */ +0x0B79,0x0000,0x0000,0x0000,0x0000, /* 2AA5 */ +0x0B7A,0x0000,0x0000,0x0000,0x0000, /* 2AA6 */ +0x0B7B,0x0000,0x0000,0x0000,0x0000, /* 2AA7 */ +0x0B7C,0x0000,0x0000,0x0000,0x0000, /* 2AA8 */ +0x0B7D,0x0000,0x0000,0x0000,0x0000, /* 2AA9 */ +0x0B7E,0x0000,0x0000,0x0000,0x0000, /* 2AAA */ +0x0B7F,0x0000,0x0000,0x0000,0x0000, /* 2AAB */ +0x0B80,0x0000,0x0000,0x0000,0x0000, /* 2AAC */ +0x0B81,0x0000,0x0000,0x0000,0x0000, /* 2AAD */ +0x0B82,0x0000,0x0000,0x0000,0x0000, /* 2AAE */ +0x0B83,0x0000,0x0000,0x0000,0x0000, /* 2AAF */ +0x0B84,0x0000,0x0000,0x0000,0x0000, /* 2AB0 */ +0x0B85,0x0000,0x0000,0x0000,0x0000, /* 2AB1 */ +0x0B86,0x0000,0x0000,0x0000,0x0000, /* 2AB2 */ +0x0B87,0x0000,0x0000,0x0000,0x0000, /* 2AB3 */ +0x0B88,0x0000,0x0000,0x0000,0x0000, /* 2AB4 */ +0x0B89,0x0000,0x0000,0x0000,0x0000, /* 2AB5 */ +0x0B8A,0x0000,0x0000,0x0000,0x0000, /* 2AB6 */ +0x0B8B,0x0000,0x0000,0x0000,0x0000, /* 2AB7 */ +0x0B8C,0x0000,0x0000,0x0000,0x0000, /* 2AB8 */ +0x0B8D,0x0000,0x0000,0x0000,0x0000, /* 2AB9 */ +0x0B8E,0x0000,0x0000,0x0000,0x0000, /* 2ABA */ +0x0B8F,0x0000,0x0000,0x0000,0x0000, /* 2ABB */ +0x0B90,0x0000,0x0000,0x0000,0x0000, /* 2ABC */ +0x0B91,0x0000,0x0000,0x0000,0x0000, /* 2ABD */ +0x0B92,0x0000,0x0000,0x0000,0x0000, /* 2ABE */ +0x0B93,0x0000,0x0000,0x0000,0x0000, /* 2ABF */ +0x0B94,0x0000,0x0000,0x0000,0x0000, /* 2AC0 */ +0x0B95,0x0000,0x0000,0x0000,0x0000, /* 2AC1 */ +0x0B96,0x0000,0x0000,0x0000,0x0000, /* 2AC2 */ +0x0B97,0x0000,0x0000,0x0000,0x0000, /* 2AC3 */ +0x0B98,0x0000,0x0000,0x0000,0x0000, /* 2AC4 */ +0x0B99,0x0000,0x0000,0x0000,0x0000, /* 2AC5 */ +0x0B9A,0x0000,0x0000,0x0000,0x0000, /* 2AC6 */ +0x0B9B,0x0000,0x0000,0x0000,0x0000, /* 2AC7 */ +0x0B9C,0x0000,0x0000,0x0000,0x0000, /* 2AC8 */ +0x0B9D,0x0000,0x0000,0x0000,0x0000, /* 2AC9 */ +0x0B9E,0x0000,0x0000,0x0000,0x0000, /* 2ACA */ +0x0B9F,0x0000,0x0000,0x0000,0x0000, /* 2ACB */ +0x0BA0,0x0000,0x0000,0x0000,0x0000, /* 2ACC */ +0x0BA1,0x0000,0x0000,0x0000,0x0000, /* 2ACD */ +0x0BA2,0x0000,0x0000,0x0000,0x0000, /* 2ACE */ +0x0BA3,0x0000,0x0000,0x0000,0x0000, /* 2ACF */ +0x0BA4,0x0000,0x0000,0x0000,0x0000, /* 2AD0 */ +0x0BA5,0x0000,0x0000,0x0000,0x0000, /* 2AD1 */ +0x0BA6,0x0000,0x0000,0x0000,0x0000, /* 2AD2 */ +0x0BA7,0x0000,0x0000,0x0000,0x0000, /* 2AD3 */ +0x0BA8,0x0000,0x0000,0x0000,0x0000, /* 2AD4 */ +0x0BA9,0x0000,0x0000,0x0000,0x0000, /* 2AD5 */ +0x0BAA,0x0000,0x0000,0x0000,0x0000, /* 2AD6 */ +0x0BAB,0x0000,0x0000,0x0000,0x0000, /* 2AD7 */ +0x0BAC,0x0000,0x0000,0x0000,0x0000, /* 2AD8 */ +0x0BAD,0x0000,0x0000,0x0000,0x0000, /* 2AD9 */ +0x0BAE,0x0000,0x0000,0x0000,0x0000, /* 2ADA */ +0x0BAF,0x0000,0x0000,0x0000,0x0000, /* 2ADB */ +0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADC */ +0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADD */ +0x0BB1,0x0000,0x0000,0x0000,0x0000, /* 2ADE */ +0x0BB2,0x0000,0x0000,0x0000,0x0000, /* 2ADF */ +0x0BB3,0x0000,0x0000,0x0000,0x0000, /* 2AE0 */ +0x0BB4,0x0000,0x0000,0x0000,0x0000, /* 2AE1 */ +0x0BB5,0x0000,0x0000,0x0000,0x0000, /* 2AE2 */ +0x0BB6,0x0000,0x0000,0x0000,0x0000, /* 2AE3 */ +0x0BB7,0x0000,0x0000,0x0000,0x0000, /* 2AE4 */ +0x0BB8,0x0000,0x0000,0x0000,0x0000, /* 2AE5 */ +0x0BB9,0x0000,0x0000,0x0000,0x0000, /* 2AE6 */ +0x0BBA,0x0000,0x0000,0x0000,0x0000, /* 2AE7 */ +0x0BBB,0x0000,0x0000,0x0000,0x0000, /* 2AE8 */ +0x0BBC,0x0000,0x0000,0x0000,0x0000, /* 2AE9 */ +0x0BBD,0x0000,0x0000,0x0000,0x0000, /* 2AEA */ +0x0BBE,0x0000,0x0000,0x0000,0x0000, /* 2AEB */ +0x0BBF,0x0000,0x0000,0x0000,0x0000, /* 2AEC */ +0x0BC0,0x0000,0x0000,0x0000,0x0000, /* 2AED */ +0x0BC1,0x0000,0x0000,0x0000,0x0000, /* 2AEE */ +0x0BC2,0x0000,0x0000,0x0000,0x0000, /* 2AEF */ +0x0BC3,0x0000,0x0000,0x0000,0x0000, /* 2AF0 */ +0x0BC4,0x0000,0x0000,0x0000,0x0000, /* 2AF1 */ +0x0BC5,0x0000,0x0000,0x0000,0x0000, /* 2AF2 */ +0x0BC6,0x0000,0x0000,0x0000,0x0000, /* 2AF3 */ +0x0BC7,0x0000,0x0000,0x0000,0x0000, /* 2AF4 */ +0x0BC8,0x0000,0x0000,0x0000,0x0000, /* 2AF5 */ +0x0BC9,0x0000,0x0000,0x0000,0x0000, /* 2AF6 */ +0x0BCA,0x0000,0x0000,0x0000,0x0000, /* 2AF7 */ +0x0BCB,0x0000,0x0000,0x0000,0x0000, /* 2AF8 */ +0x0BCC,0x0000,0x0000,0x0000,0x0000, /* 2AF9 */ +0x0BCD,0x0000,0x0000,0x0000,0x0000, /* 2AFA */ +0x0BCE,0x0000,0x0000,0x0000,0x0000, /* 2AFB */ +0x0BCF,0x0000,0x0000,0x0000,0x0000, /* 2AFC */ +0x0BD0,0x0000,0x0000,0x0000,0x0000, /* 2AFD */ +0x0BD1,0x0000,0x0000,0x0000,0x0000, /* 2AFE */ +0x0BD2,0x0000,0x0000,0x0000,0x0000 /* 2AFF */ +}; + +static const uint16 uca520_p02B[]= { /* 2B00 (3 weights per char) */ +0x0BD3,0x0000,0x0000, 0x0BD4,0x0000,0x0000, 0x0BD5,0x0000,0x0000, /* 2B00 */ +0x0BD6,0x0000,0x0000, 0x0BD7,0x0000,0x0000, 0x0BD8,0x0000,0x0000, /* 2B03 */ +0x0BD9,0x0000,0x0000, 0x0BDA,0x0000,0x0000, 0x0BDB,0x0000,0x0000, /* 2B06 */ +0x0BDC,0x0000,0x0000, 0x0BDD,0x0000,0x0000, 0x0BDE,0x0000,0x0000, /* 2B09 */ +0x0BDF,0x0000,0x0000, 0x0BE0,0x0000,0x0000, 0x0BE1,0x0000,0x0000, /* 2B0C */ +0x0BE2,0x0000,0x0000, 0x0BE3,0x0000,0x0000, 0x0BE4,0x0000,0x0000, /* 2B0F */ +0x0BE5,0x0000,0x0000, 0x0BE6,0x0000,0x0000, 0x0BE7,0x0000,0x0000, /* 2B12 */ +0x0BE8,0x0000,0x0000, 0x0BE9,0x0000,0x0000, 0x0BEA,0x0000,0x0000, /* 2B15 */ +0x0BEB,0x0000,0x0000, 0x0BEC,0x0000,0x0000, 0x0BED,0x0000,0x0000, /* 2B18 */ +0x0BEE,0x0000,0x0000, 0x0BEF,0x0000,0x0000, 0x0BF0,0x0000,0x0000, /* 2B1B */ +0x0BF1,0x0000,0x0000, 0x0BF2,0x0000,0x0000, 0x0BF3,0x0000,0x0000, /* 2B1E */ +0x0BF4,0x0000,0x0000, 0x0BF5,0x0000,0x0000, 0x0BF6,0x0000,0x0000, /* 2B21 */ +0x0BF7,0x0000,0x0000, 0x0BF8,0x0000,0x0000, 0x0BF9,0x0000,0x0000, /* 2B24 */ +0x0BFA,0x0000,0x0000, 0x0BFB,0x0000,0x0000, 0x0BFC,0x0000,0x0000, /* 2B27 */ +0x0BFD,0x0000,0x0000, 0x0BFE,0x0000,0x0000, 0x0BFF,0x0000,0x0000, /* 2B2A */ +0x0C00,0x0000,0x0000, 0x0C01,0x0000,0x0000, 0x0C02,0x0000,0x0000, /* 2B2D */ +0x0C03,0x0000,0x0000, 0x0C04,0x0000,0x0000, 0x0C05,0x0000,0x0000, /* 2B30 */ +0x0C06,0x0000,0x0000, 0x0C07,0x0000,0x0000, 0x0C08,0x0000,0x0000, /* 2B33 */ +0x0C09,0x0000,0x0000, 0x0C0A,0x0000,0x0000, 0x0C0B,0x0000,0x0000, /* 2B36 */ +0x0C0C,0x0000,0x0000, 0x0C0D,0x0000,0x0000, 0x0C0E,0x0000,0x0000, /* 2B39 */ +0x0C0F,0x0000,0x0000, 0x0C10,0x0000,0x0000, 0x0C11,0x0000,0x0000, /* 2B3C */ +0x0C12,0x0000,0x0000, 0x0C13,0x0000,0x0000, 0x0C14,0x0000,0x0000, /* 2B3F */ +0x0C15,0x0000,0x0000, 0x0C16,0x0000,0x0000, 0x0C17,0x0000,0x0000, /* 2B42 */ +0x0C18,0x0000,0x0000, 0x0C19,0x0000,0x0000, 0x0C1A,0x0000,0x0000, /* 2B45 */ +0x0C1B,0x0000,0x0000, 0x0C1C,0x0000,0x0000, 0x0C1D,0x0000,0x0000, /* 2B48 */ +0x0C1E,0x0000,0x0000, 0x0C1F,0x0000,0x0000, 0xFBC0,0xAB4D,0x0000, /* 2B4B */ +0xFBC0,0xAB4E,0x0000, 0xFBC0,0xAB4F,0x0000, 0x0C20,0x0000,0x0000, /* 2B4E */ +0x0C21,0x0000,0x0000, 0x0C22,0x0000,0x0000, 0x0C23,0x0000,0x0000, /* 2B51 */ +0x0C24,0x0000,0x0000, 0x0C25,0x0000,0x0000, 0x0C26,0x0000,0x0000, /* 2B54 */ +0x0C27,0x0000,0x0000, 0x0C28,0x0000,0x0000, 0x0C29,0x0000,0x0000, /* 2B57 */ +0xFBC0,0xAB5A,0x0000, 0xFBC0,0xAB5B,0x0000, 0xFBC0,0xAB5C,0x0000, /* 2B5A */ +0xFBC0,0xAB5D,0x0000, 0xFBC0,0xAB5E,0x0000, 0xFBC0,0xAB5F,0x0000, /* 2B5D */ +0xFBC0,0xAB60,0x0000, 0xFBC0,0xAB61,0x0000, 0xFBC0,0xAB62,0x0000, /* 2B60 */ +0xFBC0,0xAB63,0x0000, 0xFBC0,0xAB64,0x0000, 0xFBC0,0xAB65,0x0000, /* 2B63 */ +0xFBC0,0xAB66,0x0000, 0xFBC0,0xAB67,0x0000, 0xFBC0,0xAB68,0x0000, /* 2B66 */ +0xFBC0,0xAB69,0x0000, 0xFBC0,0xAB6A,0x0000, 0xFBC0,0xAB6B,0x0000, /* 2B69 */ +0xFBC0,0xAB6C,0x0000, 0xFBC0,0xAB6D,0x0000, 0xFBC0,0xAB6E,0x0000, /* 2B6C */ +0xFBC0,0xAB6F,0x0000, 0xFBC0,0xAB70,0x0000, 0xFBC0,0xAB71,0x0000, /* 2B6F */ +0xFBC0,0xAB72,0x0000, 0xFBC0,0xAB73,0x0000, 0xFBC0,0xAB74,0x0000, /* 2B72 */ +0xFBC0,0xAB75,0x0000, 0xFBC0,0xAB76,0x0000, 0xFBC0,0xAB77,0x0000, /* 2B75 */ +0xFBC0,0xAB78,0x0000, 0xFBC0,0xAB79,0x0000, 0xFBC0,0xAB7A,0x0000, /* 2B78 */ +0xFBC0,0xAB7B,0x0000, 0xFBC0,0xAB7C,0x0000, 0xFBC0,0xAB7D,0x0000, /* 2B7B */ +0xFBC0,0xAB7E,0x0000, 0xFBC0,0xAB7F,0x0000, 0xFBC0,0xAB80,0x0000, /* 2B7E */ +0xFBC0,0xAB81,0x0000, 0xFBC0,0xAB82,0x0000, 0xFBC0,0xAB83,0x0000, /* 2B81 */ +0xFBC0,0xAB84,0x0000, 0xFBC0,0xAB85,0x0000, 0xFBC0,0xAB86,0x0000, /* 2B84 */ +0xFBC0,0xAB87,0x0000, 0xFBC0,0xAB88,0x0000, 0xFBC0,0xAB89,0x0000, /* 2B87 */ +0xFBC0,0xAB8A,0x0000, 0xFBC0,0xAB8B,0x0000, 0xFBC0,0xAB8C,0x0000, /* 2B8A */ +0xFBC0,0xAB8D,0x0000, 0xFBC0,0xAB8E,0x0000, 0xFBC0,0xAB8F,0x0000, /* 2B8D */ +0xFBC0,0xAB90,0x0000, 0xFBC0,0xAB91,0x0000, 0xFBC0,0xAB92,0x0000, /* 2B90 */ +0xFBC0,0xAB93,0x0000, 0xFBC0,0xAB94,0x0000, 0xFBC0,0xAB95,0x0000, /* 2B93 */ +0xFBC0,0xAB96,0x0000, 0xFBC0,0xAB97,0x0000, 0xFBC0,0xAB98,0x0000, /* 2B96 */ +0xFBC0,0xAB99,0x0000, 0xFBC0,0xAB9A,0x0000, 0xFBC0,0xAB9B,0x0000, /* 2B99 */ +0xFBC0,0xAB9C,0x0000, 0xFBC0,0xAB9D,0x0000, 0xFBC0,0xAB9E,0x0000, /* 2B9C */ +0xFBC0,0xAB9F,0x0000, 0xFBC0,0xABA0,0x0000, 0xFBC0,0xABA1,0x0000, /* 2B9F */ +0xFBC0,0xABA2,0x0000, 0xFBC0,0xABA3,0x0000, 0xFBC0,0xABA4,0x0000, /* 2BA2 */ +0xFBC0,0xABA5,0x0000, 0xFBC0,0xABA6,0x0000, 0xFBC0,0xABA7,0x0000, /* 2BA5 */ +0xFBC0,0xABA8,0x0000, 0xFBC0,0xABA9,0x0000, 0xFBC0,0xABAA,0x0000, /* 2BA8 */ +0xFBC0,0xABAB,0x0000, 0xFBC0,0xABAC,0x0000, 0xFBC0,0xABAD,0x0000, /* 2BAB */ +0xFBC0,0xABAE,0x0000, 0xFBC0,0xABAF,0x0000, 0xFBC0,0xABB0,0x0000, /* 2BAE */ +0xFBC0,0xABB1,0x0000, 0xFBC0,0xABB2,0x0000, 0xFBC0,0xABB3,0x0000, /* 2BB1 */ +0xFBC0,0xABB4,0x0000, 0xFBC0,0xABB5,0x0000, 0xFBC0,0xABB6,0x0000, /* 2BB4 */ +0xFBC0,0xABB7,0x0000, 0xFBC0,0xABB8,0x0000, 0xFBC0,0xABB9,0x0000, /* 2BB7 */ +0xFBC0,0xABBA,0x0000, 0xFBC0,0xABBB,0x0000, 0xFBC0,0xABBC,0x0000, /* 2BBA */ +0xFBC0,0xABBD,0x0000, 0xFBC0,0xABBE,0x0000, 0xFBC0,0xABBF,0x0000, /* 2BBD */ +0xFBC0,0xABC0,0x0000, 0xFBC0,0xABC1,0x0000, 0xFBC0,0xABC2,0x0000, /* 2BC0 */ +0xFBC0,0xABC3,0x0000, 0xFBC0,0xABC4,0x0000, 0xFBC0,0xABC5,0x0000, /* 2BC3 */ +0xFBC0,0xABC6,0x0000, 0xFBC0,0xABC7,0x0000, 0xFBC0,0xABC8,0x0000, /* 2BC6 */ +0xFBC0,0xABC9,0x0000, 0xFBC0,0xABCA,0x0000, 0xFBC0,0xABCB,0x0000, /* 2BC9 */ +0xFBC0,0xABCC,0x0000, 0xFBC0,0xABCD,0x0000, 0xFBC0,0xABCE,0x0000, /* 2BCC */ +0xFBC0,0xABCF,0x0000, 0xFBC0,0xABD0,0x0000, 0xFBC0,0xABD1,0x0000, /* 2BCF */ +0xFBC0,0xABD2,0x0000, 0xFBC0,0xABD3,0x0000, 0xFBC0,0xABD4,0x0000, /* 2BD2 */ +0xFBC0,0xABD5,0x0000, 0xFBC0,0xABD6,0x0000, 0xFBC0,0xABD7,0x0000, /* 2BD5 */ +0xFBC0,0xABD8,0x0000, 0xFBC0,0xABD9,0x0000, 0xFBC0,0xABDA,0x0000, /* 2BD8 */ +0xFBC0,0xABDB,0x0000, 0xFBC0,0xABDC,0x0000, 0xFBC0,0xABDD,0x0000, /* 2BDB */ +0xFBC0,0xABDE,0x0000, 0xFBC0,0xABDF,0x0000, 0xFBC0,0xABE0,0x0000, /* 2BDE */ +0xFBC0,0xABE1,0x0000, 0xFBC0,0xABE2,0x0000, 0xFBC0,0xABE3,0x0000, /* 2BE1 */ +0xFBC0,0xABE4,0x0000, 0xFBC0,0xABE5,0x0000, 0xFBC0,0xABE6,0x0000, /* 2BE4 */ +0xFBC0,0xABE7,0x0000, 0xFBC0,0xABE8,0x0000, 0xFBC0,0xABE9,0x0000, /* 2BE7 */ +0xFBC0,0xABEA,0x0000, 0xFBC0,0xABEB,0x0000, 0xFBC0,0xABEC,0x0000, /* 2BEA */ +0xFBC0,0xABED,0x0000, 0xFBC0,0xABEE,0x0000, 0xFBC0,0xABEF,0x0000, /* 2BED */ +0xFBC0,0xABF0,0x0000, 0xFBC0,0xABF1,0x0000, 0xFBC0,0xABF2,0x0000, /* 2BF0 */ +0xFBC0,0xABF3,0x0000, 0xFBC0,0xABF4,0x0000, 0xFBC0,0xABF5,0x0000, /* 2BF3 */ +0xFBC0,0xABF6,0x0000, 0xFBC0,0xABF7,0x0000, 0xFBC0,0xABF8,0x0000, /* 2BF6 */ +0xFBC0,0xABF9,0x0000, 0xFBC0,0xABFA,0x0000, 0xFBC0,0xABFB,0x0000, /* 2BF9 */ +0xFBC0,0xABFC,0x0000, 0xFBC0,0xABFD,0x0000, 0xFBC0,0xABFE,0x0000, /* 2BFC */ +0xFBC0,0xABFF,0x0000 }; + +static const uint16 uca520_p02C[]= { /* 2C00 (4 weights per char) */ +0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C00 */ +0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C02 */ +0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C04 */ +0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C06 */ +0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C08 */ +0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C0A */ +0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C0C */ +0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C0E */ +0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C10 */ +0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C12 */ +0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C14 */ +0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C16 */ +0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C18 */ +0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C1A */ +0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C1C */ +0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C1E */ +0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C20 */ +0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C22 */ +0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C24 */ +0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C26 */ +0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C28 */ +0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C2A */ +0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C2C */ +0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC2F,0x0000,0x0000, /* 2C2E */ +0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C30 */ +0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C32 */ +0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C34 */ +0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C36 */ +0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C38 */ +0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C3A */ +0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C3C */ +0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C3E */ +0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C40 */ +0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C42 */ +0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C44 */ +0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C46 */ +0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C48 */ +0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C4A */ +0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C4C */ +0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C4E */ +0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C50 */ +0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C52 */ +0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C54 */ +0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C56 */ +0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C58 */ +0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C5A */ +0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C5C */ +0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC5F,0x0000,0x0000, /* 2C5E */ +0x133F,0x0000,0x0000,0x0000, 0x133F,0x0000,0x0000,0x0000, /* 2C60 */ +0x1340,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000, /* 2C62 */ +0x13FC,0x0000,0x0000,0x0000, 0x1214,0x0000,0x0000,0x0000, /* 2C64 */ +0x143C,0x0000,0x0000,0x0000, 0x12E3,0x0000,0x0000,0x0000, /* 2C66 */ +0x12E3,0x0000,0x0000,0x0000, 0x1328,0x0000,0x0000,0x0000, /* 2C68 */ +0x1328,0x0000,0x0000,0x0000, 0x14C8,0x0000,0x0000,0x0000, /* 2C6A */ +0x14C8,0x0000,0x0000,0x0000, 0x121C,0x0000,0x0000,0x0000, /* 2C6C */ +0x1366,0x0000,0x0000,0x0000, 0x1218,0x0000,0x0000,0x0000, /* 2C6E */ +0x1221,0x0000,0x0000,0x0000, 0x1486,0x0000,0x0000,0x0000, /* 2C70 */ +0x1492,0x0000,0x0000,0x0000, 0x1492,0x0000,0x0000,0x0000, /* 2C72 */ +0x1487,0x0000,0x0000,0x0000, 0x12E4,0x0000,0x0000,0x0000, /* 2C74 */ +0x12E4,0x0000,0x0000,0x0000, 0x13C7,0x0000,0x0000,0x0000, /* 2C76 */ +0x1275,0x0000,0x0000,0x0000, 0x13F7,0x0000,0x0000,0x0000, /* 2C78 */ +0x13A4,0x0000,0x0000,0x0000, 0x127A,0x0000,0x0000,0x0000, /* 2C7A */ +0x1305,0x0000,0x0000,0x0000, 0x147B,0x0000,0x0000,0x0000, /* 2C7C */ +0x141B,0x0000,0x0000,0x0000, 0x14C4,0x0000,0x0000,0x0000, /* 2C7E */ +0x1571,0x0000,0x0000,0x0000, 0x1571,0x0000,0x0000,0x0000, /* 2C80 */ +0x1572,0x0000,0x0000,0x0000, 0x1572,0x0000,0x0000,0x0000, /* 2C82 */ +0x1573,0x0000,0x0000,0x0000, 0x1573,0x0000,0x0000,0x0000, /* 2C84 */ +0x1574,0x0000,0x0000,0x0000, 0x1574,0x0000,0x0000,0x0000, /* 2C86 */ +0x1575,0x0000,0x0000,0x0000, 0x1575,0x0000,0x0000,0x0000, /* 2C88 */ +0x1577,0x0000,0x0000,0x0000, 0x1577,0x0000,0x0000,0x0000, /* 2C8A */ +0x1578,0x0000,0x0000,0x0000, 0x1578,0x0000,0x0000,0x0000, /* 2C8C */ +0x1579,0x0000,0x0000,0x0000, 0x1579,0x0000,0x0000,0x0000, /* 2C8E */ +0x157A,0x0000,0x0000,0x0000, 0x157A,0x0000,0x0000,0x0000, /* 2C90 */ +0x157B,0x0000,0x0000,0x0000, 0x157B,0x0000,0x0000,0x0000, /* 2C92 */ +0x157C,0x0000,0x0000,0x0000, 0x157C,0x0000,0x0000,0x0000, /* 2C94 */ +0x157E,0x0000,0x0000,0x0000, 0x157E,0x0000,0x0000,0x0000, /* 2C96 */ +0x157F,0x0000,0x0000,0x0000, 0x157F,0x0000,0x0000,0x0000, /* 2C98 */ +0x1580,0x0000,0x0000,0x0000, 0x1580,0x0000,0x0000,0x0000, /* 2C9A */ +0x1583,0x0000,0x0000,0x0000, 0x1583,0x0000,0x0000,0x0000, /* 2C9C */ +0x1584,0x0000,0x0000,0x0000, 0x1584,0x0000,0x0000,0x0000, /* 2C9E */ +0x1585,0x0000,0x0000,0x0000, 0x1585,0x0000,0x0000,0x0000, /* 2CA0 */ +0x1586,0x0000,0x0000,0x0000, 0x1586,0x0000,0x0000,0x0000, /* 2CA2 */ +0x1587,0x0000,0x0000,0x0000, 0x1587,0x0000,0x0000,0x0000, /* 2CA4 */ +0x1588,0x0000,0x0000,0x0000, 0x1588,0x0000,0x0000,0x0000, /* 2CA6 */ +0x1589,0x0000,0x0000,0x0000, 0x1589,0x0000,0x0000,0x0000, /* 2CA8 */ +0x158A,0x0000,0x0000,0x0000, 0x158A,0x0000,0x0000,0x0000, /* 2CAA */ +0x158B,0x0000,0x0000,0x0000, 0x158B,0x0000,0x0000,0x0000, /* 2CAC */ +0x158C,0x0000,0x0000,0x0000, 0x158C,0x0000,0x0000,0x0000, /* 2CAE */ +0x158D,0x0000,0x0000,0x0000, 0x158D,0x0000,0x0000,0x0000, /* 2CB0 */ +0x15A7,0x0000,0x0000,0x0000, 0x15A7,0x0000,0x0000,0x0000, /* 2CB2 */ +0x15A8,0x0000,0x0000,0x0000, 0x15A8,0x0000,0x0000,0x0000, /* 2CB4 */ +0x1576,0x0000,0x0000,0x0000, 0x1576,0x0000,0x0000,0x0000, /* 2CB6 */ +0x157D,0x0000,0x0000,0x0000, 0x157D,0x0000,0x0000,0x0000, /* 2CB8 */ +0x1581,0x0000,0x0000,0x0000, 0x1581,0x0000,0x0000,0x0000, /* 2CBA */ +0x1582,0x0000,0x0000,0x0000, 0x1582,0x0000,0x0000,0x0000, /* 2CBC */ +0x158E,0x0000,0x0000,0x0000, 0x158E,0x0000,0x0000,0x0000, /* 2CBE */ +0x158F,0x0000,0x0000,0x0000, 0x158F,0x0000,0x0000,0x0000, /* 2CC0 */ +0x1592,0x0000,0x0000,0x0000, 0x1592,0x0000,0x0000,0x0000, /* 2CC2 */ +0x1593,0x0000,0x0000,0x0000, 0x1593,0x0000,0x0000,0x0000, /* 2CC4 */ +0x1594,0x0000,0x0000,0x0000, 0x1594,0x0000,0x0000,0x0000, /* 2CC6 */ +0x1597,0x0000,0x0000,0x0000, 0x1597,0x0000,0x0000,0x0000, /* 2CC8 */ +0x1599,0x0000,0x0000,0x0000, 0x1599,0x0000,0x0000,0x0000, /* 2CCA */ +0x159A,0x0000,0x0000,0x0000, 0x159A,0x0000,0x0000,0x0000, /* 2CCC */ +0x159B,0x0000,0x0000,0x0000, 0x159B,0x0000,0x0000,0x0000, /* 2CCE */ +0x159C,0x0000,0x0000,0x0000, 0x159C,0x0000,0x0000,0x0000, /* 2CD0 */ +0x159D,0x0000,0x0000,0x0000, 0x159D,0x0000,0x0000,0x0000, /* 2CD2 */ +0x159E,0x0000,0x0000,0x0000, 0x159E,0x0000,0x0000,0x0000, /* 2CD4 */ +0x15A1,0x0000,0x0000,0x0000, 0x15A1,0x0000,0x0000,0x0000, /* 2CD6 */ +0x15A3,0x0000,0x0000,0x0000, 0x15A3,0x0000,0x0000,0x0000, /* 2CD8 */ +0x15A4,0x0000,0x0000,0x0000, 0x15A4,0x0000,0x0000,0x0000, /* 2CDA */ +0x15A5,0x0000,0x0000,0x0000, 0x15A5,0x0000,0x0000,0x0000, /* 2CDC */ +0x15A9,0x0000,0x0000,0x0000, 0x15A9,0x0000,0x0000,0x0000, /* 2CDE */ +0x15AA,0x0000,0x0000,0x0000, 0x15AA,0x0000,0x0000,0x0000, /* 2CE0 */ +0x15AB,0x0000,0x0000,0x0000, 0x15AB,0x0000,0x0000,0x0000, /* 2CE2 */ +0x157C,0x1571,0x157B,0x0000, 0x0C2A,0x0000,0x0000,0x0000, /* 2CE4 */ +0x0C2B,0x0000,0x0000,0x0000, 0x0C2C,0x0000,0x0000,0x0000, /* 2CE6 */ +0x0C2D,0x0000,0x0000,0x0000, 0x0C2E,0x0000,0x0000,0x0000, /* 2CE8 */ +0x0C2F,0x0000,0x0000,0x0000, 0x1591,0x0000,0x0000,0x0000, /* 2CEA */ +0x1591,0x0000,0x0000,0x0000, 0x15A0,0x0000,0x0000,0x0000, /* 2CEC */ +0x15A0,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CEE */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CF0 */ +0xFBC0,0xACF2,0x0000,0x0000, 0xFBC0,0xACF3,0x0000,0x0000, /* 2CF2 */ +0xFBC0,0xACF4,0x0000,0x0000, 0xFBC0,0xACF5,0x0000,0x0000, /* 2CF4 */ +0xFBC0,0xACF6,0x0000,0x0000, 0xFBC0,0xACF7,0x0000,0x0000, /* 2CF6 */ +0xFBC0,0xACF8,0x0000,0x0000, 0x028B,0x0000,0x0000,0x0000, /* 2CF8 */ +0x027B,0x0000,0x0000,0x0000, 0x027C,0x0000,0x0000,0x0000, /* 2CFA */ +0x02E0,0x0000,0x0000,0x0000, 0x114C,0x0000,0x0000,0x0000, /* 2CFC */ +0x028C,0x0000,0x0000,0x0000, 0x02E1,0x0000,0x0000,0x0000 /* 2CFE */ +}; + +static const uint16 uca520_p02D[]= { /* 2D00 (3 weights per char) */ +0x17E5,0x0000,0x0000, 0x17E7,0x0000,0x0000, 0x17E9,0x0000,0x0000, /* 2D00 */ +0x17EB,0x0000,0x0000, 0x17ED,0x0000,0x0000, 0x17EF,0x0000,0x0000, /* 2D03 */ +0x17F1,0x0000,0x0000, 0x17F5,0x0000,0x0000, 0x17F7,0x0000,0x0000, /* 2D06 */ +0x17F9,0x0000,0x0000, 0x17FB,0x0000,0x0000, 0x17FD,0x0000,0x0000, /* 2D09 */ +0x17FF,0x0000,0x0000, 0x1803,0x0000,0x0000, 0x1805,0x0000,0x0000, /* 2D0C */ +0x1807,0x0000,0x0000, 0x1809,0x0000,0x0000, 0x180B,0x0000,0x0000, /* 2D0F */ +0x180D,0x0000,0x0000, 0x1811,0x0000,0x0000, 0x1813,0x0000,0x0000, /* 2D12 */ +0x1815,0x0000,0x0000, 0x1817,0x0000,0x0000, 0x1819,0x0000,0x0000, /* 2D15 */ +0x181B,0x0000,0x0000, 0x181D,0x0000,0x0000, 0x181F,0x0000,0x0000, /* 2D18 */ +0x1821,0x0000,0x0000, 0x1823,0x0000,0x0000, 0x1825,0x0000,0x0000, /* 2D1B */ +0x1827,0x0000,0x0000, 0x182B,0x0000,0x0000, 0x182D,0x0000,0x0000, /* 2D1E */ +0x17F3,0x0000,0x0000, 0x1801,0x0000,0x0000, 0x180F,0x0000,0x0000, /* 2D21 */ +0x1829,0x0000,0x0000, 0x182F,0x0000,0x0000, 0xFBC0,0xAD26,0x0000, /* 2D24 */ +0xFBC0,0xAD27,0x0000, 0xFBC0,0xAD28,0x0000, 0xFBC0,0xAD29,0x0000, /* 2D27 */ +0xFBC0,0xAD2A,0x0000, 0xFBC0,0xAD2B,0x0000, 0xFBC0,0xAD2C,0x0000, /* 2D2A */ +0xFBC0,0xAD2D,0x0000, 0xFBC0,0xAD2E,0x0000, 0xFBC0,0xAD2F,0x0000, /* 2D2D */ +0x19CC,0x0000,0x0000, 0x19CD,0x0000,0x0000, 0x19CE,0x0000,0x0000, /* 2D30 */ +0x19CF,0x0000,0x0000, 0x19D0,0x0000,0x0000, 0x19D1,0x0000,0x0000, /* 2D33 */ +0x19D2,0x0000,0x0000, 0x19D3,0x0000,0x0000, 0x19D4,0x0000,0x0000, /* 2D36 */ +0x19D5,0x0000,0x0000, 0x19D6,0x0000,0x0000, 0x19D7,0x0000,0x0000, /* 2D39 */ +0x19D8,0x0000,0x0000, 0x19D9,0x0000,0x0000, 0x19DA,0x0000,0x0000, /* 2D3C */ +0x19DB,0x0000,0x0000, 0x19DC,0x0000,0x0000, 0x19DD,0x0000,0x0000, /* 2D3F */ +0x19DE,0x0000,0x0000, 0x19DF,0x0000,0x0000, 0x19E0,0x0000,0x0000, /* 2D42 */ +0x19E1,0x0000,0x0000, 0x19E2,0x0000,0x0000, 0x19E3,0x0000,0x0000, /* 2D45 */ +0x19E4,0x0000,0x0000, 0x19E5,0x0000,0x0000, 0x19E6,0x0000,0x0000, /* 2D48 */ +0x19E7,0x0000,0x0000, 0x19E8,0x0000,0x0000, 0x19E9,0x0000,0x0000, /* 2D4B */ +0x19EA,0x0000,0x0000, 0x19EB,0x0000,0x0000, 0x19EC,0x0000,0x0000, /* 2D4E */ +0x19ED,0x0000,0x0000, 0x19EE,0x0000,0x0000, 0x19EF,0x0000,0x0000, /* 2D51 */ +0x19F0,0x0000,0x0000, 0x19F1,0x0000,0x0000, 0x19F2,0x0000,0x0000, /* 2D54 */ +0x19F3,0x0000,0x0000, 0x19F4,0x0000,0x0000, 0x19F5,0x0000,0x0000, /* 2D57 */ +0x19F6,0x0000,0x0000, 0x19F7,0x0000,0x0000, 0x19F8,0x0000,0x0000, /* 2D5A */ +0x19F9,0x0000,0x0000, 0x19FA,0x0000,0x0000, 0x19FB,0x0000,0x0000, /* 2D5D */ +0x19FC,0x0000,0x0000, 0x19FD,0x0000,0x0000, 0x19FE,0x0000,0x0000, /* 2D60 */ +0x19FF,0x0000,0x0000, 0x1A00,0x0000,0x0000, 0x1A01,0x0000,0x0000, /* 2D63 */ +0xFBC0,0xAD66,0x0000, 0xFBC0,0xAD67,0x0000, 0xFBC0,0xAD68,0x0000, /* 2D66 */ +0xFBC0,0xAD69,0x0000, 0xFBC0,0xAD6A,0x0000, 0xFBC0,0xAD6B,0x0000, /* 2D69 */ +0xFBC0,0xAD6C,0x0000, 0xFBC0,0xAD6D,0x0000, 0xFBC0,0xAD6E,0x0000, /* 2D6C */ +0x1A02,0x0000,0x0000, 0xFBC0,0xAD70,0x0000, 0xFBC0,0xAD71,0x0000, /* 2D6F */ +0xFBC0,0xAD72,0x0000, 0xFBC0,0xAD73,0x0000, 0xFBC0,0xAD74,0x0000, /* 2D72 */ +0xFBC0,0xAD75,0x0000, 0xFBC0,0xAD76,0x0000, 0xFBC0,0xAD77,0x0000, /* 2D75 */ +0xFBC0,0xAD78,0x0000, 0xFBC0,0xAD79,0x0000, 0xFBC0,0xAD7A,0x0000, /* 2D78 */ +0xFBC0,0xAD7B,0x0000, 0xFBC0,0xAD7C,0x0000, 0xFBC0,0xAD7D,0x0000, /* 2D7B */ +0xFBC0,0xAD7E,0x0000, 0xFBC0,0xAD7F,0x0000, 0x1A13,0x0000,0x0000, /* 2D7E */ +0x1A28,0x0000,0x0000, 0x1A39,0x0000,0x0000, 0x1A42,0x0000,0x0000, /* 2D81 */ +0x1A4B,0x0000,0x0000, 0x1A71,0x0000,0x0000, 0x1A82,0x0000,0x0000, /* 2D84 */ +0x1A8B,0x0000,0x0000, 0x1AA1,0x0000,0x0000, 0x1AAA,0x0000,0x0000, /* 2D87 */ +0x1AB3,0x0000,0x0000, 0x1AE4,0x0000,0x0000, 0x1AFD,0x0000,0x0000, /* 2D8A */ +0x1B06,0x0000,0x0000, 0x1B0F,0x0000,0x0000, 0x1B31,0x0000,0x0000, /* 2D8D */ +0x1B3A,0x0000,0x0000, 0x1B43,0x0000,0x0000, 0x1B6C,0x0000,0x0000, /* 2D90 */ +0x1B25,0x0000,0x0000, 0x1B26,0x0000,0x0000, 0x1B27,0x0000,0x0000, /* 2D93 */ +0x1B28,0x0000,0x0000, 0xFBC0,0xAD97,0x0000, 0xFBC0,0xAD98,0x0000, /* 2D96 */ +0xFBC0,0xAD99,0x0000, 0xFBC0,0xAD9A,0x0000, 0xFBC0,0xAD9B,0x0000, /* 2D99 */ +0xFBC0,0xAD9C,0x0000, 0xFBC0,0xAD9D,0x0000, 0xFBC0,0xAD9E,0x0000, /* 2D9C */ +0xFBC0,0xAD9F,0x0000, 0x1B70,0x0000,0x0000, 0x1B71,0x0000,0x0000, /* 2D9F */ +0x1B72,0x0000,0x0000, 0x1B73,0x0000,0x0000, 0x1B74,0x0000,0x0000, /* 2DA2 */ +0x1B75,0x0000,0x0000, 0x1B76,0x0000,0x0000, 0xFBC0,0xADA7,0x0000, /* 2DA5 */ +0x1B77,0x0000,0x0000, 0x1B78,0x0000,0x0000, 0x1B79,0x0000,0x0000, /* 2DA8 */ +0x1B7A,0x0000,0x0000, 0x1B7B,0x0000,0x0000, 0x1B7C,0x0000,0x0000, /* 2DAB */ +0x1B7D,0x0000,0x0000, 0xFBC0,0xADAF,0x0000, 0x1B7E,0x0000,0x0000, /* 2DAE */ +0x1B7F,0x0000,0x0000, 0x1B80,0x0000,0x0000, 0x1B81,0x0000,0x0000, /* 2DB1 */ +0x1B82,0x0000,0x0000, 0x1B83,0x0000,0x0000, 0x1B84,0x0000,0x0000, /* 2DB4 */ +0xFBC0,0xADB7,0x0000, 0x1B85,0x0000,0x0000, 0x1B86,0x0000,0x0000, /* 2DB7 */ +0x1B87,0x0000,0x0000, 0x1B88,0x0000,0x0000, 0x1B89,0x0000,0x0000, /* 2DBA */ +0x1B8A,0x0000,0x0000, 0x1B8B,0x0000,0x0000, 0xFBC0,0xADBF,0x0000, /* 2DBD */ +0x1B8C,0x0000,0x0000, 0x1B8D,0x0000,0x0000, 0x1B8E,0x0000,0x0000, /* 2DC0 */ +0x1B8F,0x0000,0x0000, 0x1B90,0x0000,0x0000, 0x1B91,0x0000,0x0000, /* 2DC3 */ +0x1B92,0x0000,0x0000, 0xFBC0,0xADC7,0x0000, 0x1B93,0x0000,0x0000, /* 2DC6 */ +0x1B94,0x0000,0x0000, 0x1B95,0x0000,0x0000, 0x1B96,0x0000,0x0000, /* 2DC9 */ +0x1B97,0x0000,0x0000, 0x1B98,0x0000,0x0000, 0x1B99,0x0000,0x0000, /* 2DCC */ +0xFBC0,0xADCF,0x0000, 0x1B9A,0x0000,0x0000, 0x1B9B,0x0000,0x0000, /* 2DCF */ +0x1B9C,0x0000,0x0000, 0x1B9D,0x0000,0x0000, 0x1B9E,0x0000,0x0000, /* 2DD2 */ +0x1B9F,0x0000,0x0000, 0x1BA0,0x0000,0x0000, 0xFBC0,0xADD7,0x0000, /* 2DD5 */ +0x1BA1,0x0000,0x0000, 0x1BA2,0x0000,0x0000, 0x1BA3,0x0000,0x0000, /* 2DD8 */ +0x1BA4,0x0000,0x0000, 0x1BA5,0x0000,0x0000, 0x1BA6,0x0000,0x0000, /* 2DDB */ +0x1BA7,0x0000,0x0000, 0xFBC0,0xADDF,0x0000, 0x15C4,0x0000,0x0000, /* 2DDE */ +0x15C8,0x0000,0x0000, 0x15CC,0x0000,0x0000, 0x15E0,0x0000,0x0000, /* 2DE1 */ +0x1600,0x0000,0x0000, 0x160D,0x0000,0x0000, 0x1643,0x0000,0x0000, /* 2DE4 */ +0x165D,0x0000,0x0000, 0x166F,0x0000,0x0000, 0x1678,0x0000,0x0000, /* 2DE7 */ +0x1692,0x0000,0x0000, 0x16A2,0x0000,0x0000, 0x16AF,0x0000,0x0000, /* 2DEA */ +0x16B8,0x0000,0x0000, 0x16C1,0x0000,0x0000, 0x16F5,0x0000,0x0000, /* 2DED */ +0x171B,0x0000,0x0000, 0x1725,0x0000,0x0000, 0x1747,0x0000,0x0000, /* 2DF0 */ +0x174C,0x0000,0x0000, 0x179F,0x0000,0x0000, 0x16B8,0x16C1,0x0000, /* 2DF3 */ +0x15AC,0x0000,0x0000, 0x15F4,0x0000,0x0000, 0x1642,0x0000,0x0000, /* 2DF6 */ +0x16EC,0x0000,0x0000, 0x1768,0x0000,0x0000, 0x1775,0x0000,0x0000, /* 2DF9 */ +0x177A,0x0000,0x0000, 0x1784,0x0000,0x0000, 0x1789,0x0000,0x0000, /* 2DFC */ +0x1793,0x0000,0x0000 }; + +static const uint16 uca520_p02E[]= { /* 2E00 (3 weights per char) */ +0x037E,0x0000,0x0000, 0x037F,0x0000,0x0000, 0x0329,0x0000,0x0000, /* 2E00 */ +0x032A,0x0000,0x0000, 0x032B,0x0000,0x0000, 0x032C,0x0000,0x0000, /* 2E03 */ +0x0380,0x0000,0x0000, 0x0381,0x0000,0x0000, 0x0382,0x0000,0x0000, /* 2E06 */ +0x032D,0x0000,0x0000, 0x032E,0x0000,0x0000, 0x0383,0x0000,0x0000, /* 2E09 */ +0x032F,0x0000,0x0000, 0x0330,0x0000,0x0000, 0x0384,0x0000,0x0000, /* 2E0C */ +0x0385,0x0000,0x0000, 0x0386,0x0000,0x0000, 0x0387,0x0000,0x0000, /* 2E0F */ +0x0388,0x0000,0x0000, 0x0389,0x0000,0x0000, 0x038A,0x0000,0x0000, /* 2E12 */ +0x038B,0x0000,0x0000, 0x038C,0x0000,0x0000, 0x022F,0x0000,0x0000, /* 2E15 */ +0x0280,0x0000,0x0000, 0x02E2,0x0000,0x0000, 0x038D,0x0000,0x0000, /* 2E18 */ +0x038E,0x0000,0x0000, 0x0331,0x0000,0x0000, 0x0332,0x0000,0x0000, /* 2E1B */ +0x038F,0x0000,0x0000, 0x0390,0x0000,0x0000, 0x0333,0x0000,0x0000, /* 2E1E */ +0x0334,0x0000,0x0000, 0x0335,0x0000,0x0000, 0x0336,0x0000,0x0000, /* 2E21 */ +0x0337,0x0000,0x0000, 0x0338,0x0000,0x0000, 0x0339,0x0000,0x0000, /* 2E24 */ +0x033A,0x0000,0x0000, 0x033B,0x0000,0x0000, 0x033C,0x0000,0x0000, /* 2E27 */ +0x02DC,0x0000,0x0000, 0x02DD,0x0000,0x0000, 0x02DE,0x0000,0x0000, /* 2E2A */ +0x02DF,0x0000,0x0000, 0x0275,0x0000,0x0000, 0x1751,0x0000,0x0000, /* 2E2D */ +0x028D,0x0000,0x0000, 0x0293,0x0000,0x0000, 0xFBC0,0xAE32,0x0000, /* 2E30 */ +0xFBC0,0xAE33,0x0000, 0xFBC0,0xAE34,0x0000, 0xFBC0,0xAE35,0x0000, /* 2E33 */ +0xFBC0,0xAE36,0x0000, 0xFBC0,0xAE37,0x0000, 0xFBC0,0xAE38,0x0000, /* 2E36 */ +0xFBC0,0xAE39,0x0000, 0xFBC0,0xAE3A,0x0000, 0xFBC0,0xAE3B,0x0000, /* 2E39 */ +0xFBC0,0xAE3C,0x0000, 0xFBC0,0xAE3D,0x0000, 0xFBC0,0xAE3E,0x0000, /* 2E3C */ +0xFBC0,0xAE3F,0x0000, 0xFBC0,0xAE40,0x0000, 0xFBC0,0xAE41,0x0000, /* 2E3F */ +0xFBC0,0xAE42,0x0000, 0xFBC0,0xAE43,0x0000, 0xFBC0,0xAE44,0x0000, /* 2E42 */ +0xFBC0,0xAE45,0x0000, 0xFBC0,0xAE46,0x0000, 0xFBC0,0xAE47,0x0000, /* 2E45 */ +0xFBC0,0xAE48,0x0000, 0xFBC0,0xAE49,0x0000, 0xFBC0,0xAE4A,0x0000, /* 2E48 */ +0xFBC0,0xAE4B,0x0000, 0xFBC0,0xAE4C,0x0000, 0xFBC0,0xAE4D,0x0000, /* 2E4B */ +0xFBC0,0xAE4E,0x0000, 0xFBC0,0xAE4F,0x0000, 0xFBC0,0xAE50,0x0000, /* 2E4E */ +0xFBC0,0xAE51,0x0000, 0xFBC0,0xAE52,0x0000, 0xFBC0,0xAE53,0x0000, /* 2E51 */ +0xFBC0,0xAE54,0x0000, 0xFBC0,0xAE55,0x0000, 0xFBC0,0xAE56,0x0000, /* 2E54 */ +0xFBC0,0xAE57,0x0000, 0xFBC0,0xAE58,0x0000, 0xFBC0,0xAE59,0x0000, /* 2E57 */ +0xFBC0,0xAE5A,0x0000, 0xFBC0,0xAE5B,0x0000, 0xFBC0,0xAE5C,0x0000, /* 2E5A */ +0xFBC0,0xAE5D,0x0000, 0xFBC0,0xAE5E,0x0000, 0xFBC0,0xAE5F,0x0000, /* 2E5D */ +0xFBC0,0xAE60,0x0000, 0xFBC0,0xAE61,0x0000, 0xFBC0,0xAE62,0x0000, /* 2E60 */ +0xFBC0,0xAE63,0x0000, 0xFBC0,0xAE64,0x0000, 0xFBC0,0xAE65,0x0000, /* 2E63 */ +0xFBC0,0xAE66,0x0000, 0xFBC0,0xAE67,0x0000, 0xFBC0,0xAE68,0x0000, /* 2E66 */ +0xFBC0,0xAE69,0x0000, 0xFBC0,0xAE6A,0x0000, 0xFBC0,0xAE6B,0x0000, /* 2E69 */ +0xFBC0,0xAE6C,0x0000, 0xFBC0,0xAE6D,0x0000, 0xFBC0,0xAE6E,0x0000, /* 2E6C */ +0xFBC0,0xAE6F,0x0000, 0xFBC0,0xAE70,0x0000, 0xFBC0,0xAE71,0x0000, /* 2E6F */ +0xFBC0,0xAE72,0x0000, 0xFBC0,0xAE73,0x0000, 0xFBC0,0xAE74,0x0000, /* 2E72 */ +0xFBC0,0xAE75,0x0000, 0xFBC0,0xAE76,0x0000, 0xFBC0,0xAE77,0x0000, /* 2E75 */ +0xFBC0,0xAE78,0x0000, 0xFBC0,0xAE79,0x0000, 0xFBC0,0xAE7A,0x0000, /* 2E78 */ +0xFBC0,0xAE7B,0x0000, 0xFBC0,0xAE7C,0x0000, 0xFBC0,0xAE7D,0x0000, /* 2E7B */ +0xFBC0,0xAE7E,0x0000, 0xFBC0,0xAE7F,0x0000, 0xFB40,0xCE36,0x0000, /* 2E7E */ +0xFB40,0xD382,0x0000, 0xFB40,0xCE5B,0x0000, 0xFB40,0xCE5A,0x0000, /* 2E81 */ +0xFB40,0xCE59,0x0000, 0xFB40,0xCEBB,0x0000, 0xFB40,0xD182,0x0000, /* 2E84 */ +0xFB40,0xD1E0,0x0000, 0xFB40,0xD200,0x0000, 0xFB40,0xD202,0x0000, /* 2E87 */ +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xDC0F,0x0000, /* 2E8A */ +0xFB40,0xDC0F,0x0000, 0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, /* 2E8D */ +0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, 0xFB40,0xDDF3,0x0000, /* 2E90 */ +0xFB40,0xDE7A,0x0000, 0xFB40,0xDF51,0x0000, 0xFB40,0xDF50,0x0000, /* 2E93 */ +0xFB40,0xDFC4,0x0000, 0xFB40,0xDFC3,0x0000, 0xFB40,0xE24C,0x0000, /* 2E96 */ +0xFB40,0xE535,0x0000, 0xFBC0,0xAE9A,0x0000, 0xFB40,0xE5E1,0x0000, /* 2E99 */ +0xFB40,0xE5E5,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xEB7A,0x0000, /* 2E9C */ +0xFB40,0xEBCD,0x0000, 0xFB40,0xEC11,0x0000, 0xFB40,0xEC35,0x0000, /* 2E9F */ +0xFB40,0xEC3A,0x0000, 0xFB40,0xF06C,0x0000, 0xFB40,0xF22B,0x0000, /* 2EA2 */ +0xFB40,0xF22B,0x0000, 0xFB40,0xCE2C,0x0000, 0xFB40,0xF25B,0x0000, /* 2EA5 */ +0xFB40,0xF2AD,0x0000, 0xFB40,0xF38B,0x0000, 0xFB40,0xF58B,0x0000, /* 2EA8 */ +0xFB40,0xF6EE,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF93B,0x0000, /* 2EAB */ +0xFB40,0xFAF9,0x0000, 0xFB40,0xFCF9,0x0000, 0xFB40,0xFE9F,0x0000, /* 2EAE */ +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF53,0x0000, /* 2EB1 */ +0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF8A,0x0000, /* 2EB4 */ +0xFB40,0xFF8A,0x0000, 0xFB40,0xFF8B,0x0000, 0xFB41,0x8002,0x0000, /* 2EB7 */ +0xFB41,0x8080,0x0000, 0xFB41,0x807F,0x0000, 0xFB41,0x8089,0x0000, /* 2EBA */ +0xFB41,0x81FC,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, /* 2EBD */ +0xFB41,0x8279,0x0000, 0xFB41,0x864E,0x0000, 0xFB41,0x8864,0x0000, /* 2EC0 */ +0xFB41,0x8980,0x0000, 0xFB41,0x897F,0x0000, 0xFB41,0x89C1,0x0000, /* 2EC3 */ +0xFB41,0x89D2,0x0000, 0xFB41,0x89D2,0x0000, 0xFB41,0x8BA0,0x0000, /* 2EC6 */ +0xFB41,0x8D1D,0x0000, 0xFB41,0x8DB3,0x0000, 0xFB41,0x8F66,0x0000, /* 2EC9 */ +0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, /* 2ECC */ +0xFB41,0x9091,0x0000, 0xFB41,0x9485,0x0000, 0xFB41,0x9577,0x0000, /* 2ECF */ +0xFB41,0x9578,0x0000, 0xFB41,0x957F,0x0000, 0xFB41,0x95E8,0x0000, /* 2ED2 */ +0xFB41,0x961C,0x0000, 0xFB41,0x961D,0x0000, 0xFB41,0x96E8,0x0000, /* 2ED5 */ +0xFB41,0x9752,0x0000, 0xFB41,0x97E6,0x0000, 0xFB41,0x9875,0x0000, /* 2ED8 */ +0xFB41,0x98CE,0x0000, 0xFB41,0x98DE,0x0000, 0xFB41,0x98DF,0x0000, /* 2EDB */ +0xFB41,0x98E0,0x0000, 0xFB41,0x98E0,0x0000, 0xFB41,0x9963,0x0000, /* 2EDE */ +0xFB41,0x9996,0x0000, 0xFB41,0x9A6C,0x0000, 0xFB41,0x9AA8,0x0000, /* 2EE1 */ +0xFB41,0x9B3C,0x0000, 0xFB41,0x9C7C,0x0000, 0xFB41,0x9E1F,0x0000, /* 2EE4 */ +0xFB41,0x9E75,0x0000, 0xFB41,0x9EA6,0x0000, 0xFB41,0x9EC4,0x0000, /* 2EE7 */ +0xFB41,0x9EFE,0x0000, 0xFB41,0x9F4A,0x0000, 0xFB41,0x9F50,0x0000, /* 2EEA */ +0xFB41,0x9F52,0x0000, 0xFB41,0x9F7F,0x0000, 0xFB41,0x9F8D,0x0000, /* 2EED */ +0xFB41,0x9F99,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* 2EF0 */ +0xFB41,0x9F9F,0x0000, 0xFBC0,0xAEF4,0x0000, 0xFBC0,0xAEF5,0x0000, /* 2EF3 */ +0xFBC0,0xAEF6,0x0000, 0xFBC0,0xAEF7,0x0000, 0xFBC0,0xAEF8,0x0000, /* 2EF6 */ +0xFBC0,0xAEF9,0x0000, 0xFBC0,0xAEFA,0x0000, 0xFBC0,0xAEFB,0x0000, /* 2EF9 */ +0xFBC0,0xAEFC,0x0000, 0xFBC0,0xAEFD,0x0000, 0xFBC0,0xAEFE,0x0000, /* 2EFC */ +0xFBC0,0xAEFF,0x0000 }; + +static const uint16 uca520_p02F[]= { /* 2F00 (3 weights per char) */ +0xFB40,0xCE00,0x0000, 0xFB40,0xCE28,0x0000, 0xFB40,0xCE36,0x0000, /* 2F00 */ +0xFB40,0xCE3F,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE85,0x0000, /* 2F03 */ +0xFB40,0xCE8C,0x0000, 0xFB40,0xCEA0,0x0000, 0xFB40,0xCEBA,0x0000, /* 2F06 */ +0xFB40,0xD13F,0x0000, 0xFB40,0xD165,0x0000, 0xFB40,0xD16B,0x0000, /* 2F09 */ +0xFB40,0xD182,0x0000, 0xFB40,0xD196,0x0000, 0xFB40,0xD1AB,0x0000, /* 2F0C */ +0xFB40,0xD1E0,0x0000, 0xFB40,0xD1F5,0x0000, 0xFB40,0xD200,0x0000, /* 2F0F */ +0xFB40,0xD29B,0x0000, 0xFB40,0xD2F9,0x0000, 0xFB40,0xD315,0x0000, /* 2F12 */ +0xFB40,0xD31A,0x0000, 0xFB40,0xD338,0x0000, 0xFB40,0xD341,0x0000, /* 2F15 */ +0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xD382,0x0000, /* 2F18 */ +0xFB40,0xD3B6,0x0000, 0xFB40,0xD3C8,0x0000, 0xFB40,0xD3E3,0x0000, /* 2F1B */ +0xFB40,0xD6D7,0x0000, 0xFB40,0xD71F,0x0000, 0xFB40,0xD8EB,0x0000, /* 2F1E */ +0xFB40,0xD902,0x0000, 0xFB40,0xD90A,0x0000, 0xFB40,0xD915,0x0000, /* 2F21 */ +0xFB40,0xD927,0x0000, 0xFB40,0xD973,0x0000, 0xFB40,0xDB50,0x0000, /* 2F24 */ +0xFB40,0xDB80,0x0000, 0xFB40,0xDBF8,0x0000, 0xFB40,0xDC0F,0x0000, /* 2F27 */ +0xFB40,0xDC22,0x0000, 0xFB40,0xDC38,0x0000, 0xFB40,0xDC6E,0x0000, /* 2F2A */ +0xFB40,0xDC71,0x0000, 0xFB40,0xDDDB,0x0000, 0xFB40,0xDDE5,0x0000, /* 2F2D */ +0xFB40,0xDDF1,0x0000, 0xFB40,0xDDFE,0x0000, 0xFB40,0xDE72,0x0000, /* 2F30 */ +0xFB40,0xDE7A,0x0000, 0xFB40,0xDE7F,0x0000, 0xFB40,0xDEF4,0x0000, /* 2F33 */ +0xFB40,0xDEFE,0x0000, 0xFB40,0xDF0B,0x0000, 0xFB40,0xDF13,0x0000, /* 2F36 */ +0xFB40,0xDF50,0x0000, 0xFB40,0xDF61,0x0000, 0xFB40,0xDF73,0x0000, /* 2F39 */ +0xFB40,0xDFC3,0x0000, 0xFB40,0xE208,0x0000, 0xFB40,0xE236,0x0000, /* 2F3C */ +0xFB40,0xE24B,0x0000, 0xFB40,0xE52F,0x0000, 0xFB40,0xE534,0x0000, /* 2F3F */ +0xFB40,0xE587,0x0000, 0xFB40,0xE597,0x0000, 0xFB40,0xE5A4,0x0000, /* 2F42 */ +0xFB40,0xE5B9,0x0000, 0xFB40,0xE5E0,0x0000, 0xFB40,0xE5E5,0x0000, /* 2F45 */ +0xFB40,0xE6F0,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xE728,0x0000, /* 2F48 */ +0xFB40,0xEB20,0x0000, 0xFB40,0xEB62,0x0000, 0xFB40,0xEB79,0x0000, /* 2F4B */ +0xFB40,0xEBB3,0x0000, 0xFB40,0xEBCB,0x0000, 0xFB40,0xEBD4,0x0000, /* 2F4E */ +0xFB40,0xEBDB,0x0000, 0xFB40,0xEC0F,0x0000, 0xFB40,0xEC14,0x0000, /* 2F51 */ +0xFB40,0xEC34,0x0000, 0xFB40,0xF06B,0x0000, 0xFB40,0xF22A,0x0000, /* 2F54 */ +0xFB40,0xF236,0x0000, 0xFB40,0xF23B,0x0000, 0xFB40,0xF23F,0x0000, /* 2F57 */ +0xFB40,0xF247,0x0000, 0xFB40,0xF259,0x0000, 0xFB40,0xF25B,0x0000, /* 2F5A */ +0xFB40,0xF2AC,0x0000, 0xFB40,0xF384,0x0000, 0xFB40,0xF389,0x0000, /* 2F5D */ +0xFB40,0xF4DC,0x0000, 0xFB40,0xF4E6,0x0000, 0xFB40,0xF518,0x0000, /* 2F60 */ +0xFB40,0xF51F,0x0000, 0xFB40,0xF528,0x0000, 0xFB40,0xF530,0x0000, /* 2F63 */ +0xFB40,0xF58B,0x0000, 0xFB40,0xF592,0x0000, 0xFB40,0xF676,0x0000, /* 2F66 */ +0xFB40,0xF67D,0x0000, 0xFB40,0xF6AE,0x0000, 0xFB40,0xF6BF,0x0000, /* 2F69 */ +0xFB40,0xF6EE,0x0000, 0xFB40,0xF7DB,0x0000, 0xFB40,0xF7E2,0x0000, /* 2F6C */ +0xFB40,0xF7F3,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF9B8,0x0000, /* 2F6F */ +0xFB40,0xF9BE,0x0000, 0xFB40,0xFA74,0x0000, 0xFB40,0xFACB,0x0000, /* 2F72 */ +0xFB40,0xFAF9,0x0000, 0xFB40,0xFC73,0x0000, 0xFB40,0xFCF8,0x0000, /* 2F75 */ +0xFB40,0xFF36,0x0000, 0xFB40,0xFF51,0x0000, 0xFB40,0xFF8A,0x0000, /* 2F78 */ +0xFB40,0xFFBD,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x800C,0x0000, /* 2F7B */ +0xFB41,0x8012,0x0000, 0xFB41,0x8033,0x0000, 0xFB41,0x807F,0x0000, /* 2F7E */ +0xFB41,0x8089,0x0000, 0xFB41,0x81E3,0x0000, 0xFB41,0x81EA,0x0000, /* 2F81 */ +0xFB41,0x81F3,0x0000, 0xFB41,0x81FC,0x0000, 0xFB41,0x820C,0x0000, /* 2F84 */ +0xFB41,0x821B,0x0000, 0xFB41,0x821F,0x0000, 0xFB41,0x826E,0x0000, /* 2F87 */ +0xFB41,0x8272,0x0000, 0xFB41,0x8278,0x0000, 0xFB41,0x864D,0x0000, /* 2F8A */ +0xFB41,0x866B,0x0000, 0xFB41,0x8840,0x0000, 0xFB41,0x884C,0x0000, /* 2F8D */ +0xFB41,0x8863,0x0000, 0xFB41,0x897E,0x0000, 0xFB41,0x898B,0x0000, /* 2F90 */ +0xFB41,0x89D2,0x0000, 0xFB41,0x8A00,0x0000, 0xFB41,0x8C37,0x0000, /* 2F93 */ +0xFB41,0x8C46,0x0000, 0xFB41,0x8C55,0x0000, 0xFB41,0x8C78,0x0000, /* 2F96 */ +0xFB41,0x8C9D,0x0000, 0xFB41,0x8D64,0x0000, 0xFB41,0x8D70,0x0000, /* 2F99 */ +0xFB41,0x8DB3,0x0000, 0xFB41,0x8EAB,0x0000, 0xFB41,0x8ECA,0x0000, /* 2F9C */ +0xFB41,0x8F9B,0x0000, 0xFB41,0x8FB0,0x0000, 0xFB41,0x8FB5,0x0000, /* 2F9F */ +0xFB41,0x9091,0x0000, 0xFB41,0x9149,0x0000, 0xFB41,0x91C6,0x0000, /* 2FA2 */ +0xFB41,0x91CC,0x0000, 0xFB41,0x91D1,0x0000, 0xFB41,0x9577,0x0000, /* 2FA5 */ +0xFB41,0x9580,0x0000, 0xFB41,0x961C,0x0000, 0xFB41,0x96B6,0x0000, /* 2FA8 */ +0xFB41,0x96B9,0x0000, 0xFB41,0x96E8,0x0000, 0xFB41,0x9751,0x0000, /* 2FAB */ +0xFB41,0x975E,0x0000, 0xFB41,0x9762,0x0000, 0xFB41,0x9769,0x0000, /* 2FAE */ +0xFB41,0x97CB,0x0000, 0xFB41,0x97ED,0x0000, 0xFB41,0x97F3,0x0000, /* 2FB1 */ +0xFB41,0x9801,0x0000, 0xFB41,0x98A8,0x0000, 0xFB41,0x98DB,0x0000, /* 2FB4 */ +0xFB41,0x98DF,0x0000, 0xFB41,0x9996,0x0000, 0xFB41,0x9999,0x0000, /* 2FB7 */ +0xFB41,0x99AC,0x0000, 0xFB41,0x9AA8,0x0000, 0xFB41,0x9AD8,0x0000, /* 2FBA */ +0xFB41,0x9ADF,0x0000, 0xFB41,0x9B25,0x0000, 0xFB41,0x9B2F,0x0000, /* 2FBD */ +0xFB41,0x9B32,0x0000, 0xFB41,0x9B3C,0x0000, 0xFB41,0x9B5A,0x0000, /* 2FC0 */ +0xFB41,0x9CE5,0x0000, 0xFB41,0x9E75,0x0000, 0xFB41,0x9E7F,0x0000, /* 2FC3 */ +0xFB41,0x9EA5,0x0000, 0xFB41,0x9EBB,0x0000, 0xFB41,0x9EC3,0x0000, /* 2FC6 */ +0xFB41,0x9ECD,0x0000, 0xFB41,0x9ED1,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FC9 */ +0xFB41,0x9EFD,0x0000, 0xFB41,0x9F0E,0x0000, 0xFB41,0x9F13,0x0000, /* 2FCC */ +0xFB41,0x9F20,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB41,0x9F4A,0x0000, /* 2FCF */ +0xFB41,0x9F52,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB41,0x9F9C,0x0000, /* 2FD2 */ +0xFB41,0x9FA0,0x0000, 0xFBC0,0xAFD6,0x0000, 0xFBC0,0xAFD7,0x0000, /* 2FD5 */ +0xFBC0,0xAFD8,0x0000, 0xFBC0,0xAFD9,0x0000, 0xFBC0,0xAFDA,0x0000, /* 2FD8 */ +0xFBC0,0xAFDB,0x0000, 0xFBC0,0xAFDC,0x0000, 0xFBC0,0xAFDD,0x0000, /* 2FDB */ +0xFBC0,0xAFDE,0x0000, 0xFBC0,0xAFDF,0x0000, 0xFBC0,0xAFE0,0x0000, /* 2FDE */ +0xFBC0,0xAFE1,0x0000, 0xFBC0,0xAFE2,0x0000, 0xFBC0,0xAFE3,0x0000, /* 2FE1 */ +0xFBC0,0xAFE4,0x0000, 0xFBC0,0xAFE5,0x0000, 0xFBC0,0xAFE6,0x0000, /* 2FE4 */ +0xFBC0,0xAFE7,0x0000, 0xFBC0,0xAFE8,0x0000, 0xFBC0,0xAFE9,0x0000, /* 2FE7 */ +0xFBC0,0xAFEA,0x0000, 0xFBC0,0xAFEB,0x0000, 0xFBC0,0xAFEC,0x0000, /* 2FEA */ +0xFBC0,0xAFED,0x0000, 0xFBC0,0xAFEE,0x0000, 0xFBC0,0xAFEF,0x0000, /* 2FED */ +0x10D4,0x0000,0x0000, 0x10D5,0x0000,0x0000, 0x10D6,0x0000,0x0000, /* 2FF0 */ +0x10D7,0x0000,0x0000, 0x10D8,0x0000,0x0000, 0x10D9,0x0000,0x0000, /* 2FF3 */ +0x10DA,0x0000,0x0000, 0x10DB,0x0000,0x0000, 0x10DC,0x0000,0x0000, /* 2FF6 */ +0x10DD,0x0000,0x0000, 0x10DE,0x0000,0x0000, 0x10DF,0x0000,0x0000, /* 2FF9 */ +0xFBC0,0xAFFC,0x0000, 0xFBC0,0xAFFD,0x0000, 0xFBC0,0xAFFE,0x0000, /* 2FFC */ +0xFBC0,0xAFFF,0x0000 }; + +static const uint16 uca520_p030[]= { /* 3000 (3 weights per char) */ +0x020A,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0291,0x0000,0x0000, /* 3000 */ +0x0374,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x11D7,0x0000,0x0000, /* 3003 */ +0x2B20,0x2B36,0x0000, 0x1205,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 3006 */ +0x033E,0x0000,0x0000, 0x033F,0x0000,0x0000, 0x0340,0x0000,0x0000, /* 3009 */ +0x0341,0x0000,0x0000, 0x0342,0x0000,0x0000, 0x0343,0x0000,0x0000, /* 300C */ +0x0344,0x0000,0x0000, 0x0345,0x0000,0x0000, 0x0346,0x0000,0x0000, /* 300F */ +0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x0347,0x0000,0x0000, /* 3012 */ +0x0348,0x0000,0x0000, 0x0349,0x0000,0x0000, 0x034A,0x0000,0x0000, /* 3015 */ +0x034B,0x0000,0x0000, 0x034C,0x0000,0x0000, 0x034D,0x0000,0x0000, /* 3018 */ +0x034E,0x0000,0x0000, 0x0230,0x0000,0x0000, 0x02FA,0x0000,0x0000, /* 301B */ +0x02FB,0x0000,0x0000, 0x02FC,0x0000,0x0000, 0x1107,0x0000,0x0000, /* 301E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 3021 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 3024 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 3027 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302D */ +0x0231,0x0000,0x0000, 0x11D9,0x0000,0x0000, 0x11D9,0x0000,0x0000, /* 3030 */ +0x11DA,0x0000,0x0000, 0x11DA,0x0000,0x0000, 0x11DB,0x0000,0x0000, /* 3033 */ +0x1105,0x0000,0x0000, 0x1108,0x0000,0x0000, 0xFB40,0xD341,0x0000, /* 3036 */ +0xFB40,0xD344,0x0000, 0xFB40,0xD345,0x0000, 0x11D8,0x0000,0x0000, /* 3039 */ +0x2B33,0x2B21,0x0000, 0x0375,0x0000,0x0000, 0x1109,0x0000,0x0000, /* 303C */ +0x110A,0x0000,0x0000, 0xFBC0,0xB040,0x0000, 0x2B15,0x0000,0x0000, /* 303F */ +0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 3042 */ +0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 3045 */ +0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 3048 */ +0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 304B */ +0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 304E */ +0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 3051 */ +0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 3054 */ +0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 3057 */ +0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 305A */ +0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 305D */ +0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 3060 */ +0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 3063 */ +0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 3066 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 3069 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 306C */ +0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 306F */ +0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 3072 */ +0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 3075 */ +0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 3078 */ +0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 307B */ +0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 307E */ +0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 3081 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 3084 */ +0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 3087 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 308A */ +0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 308D */ +0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 3090 */ +0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 3093 */ +0x2B1D,0x0000,0x0000, 0xFBC0,0xB097,0x0000, 0xFBC0,0xB098,0x0000, /* 3096 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0220,0x0000,0x0000, /* 3099 */ +0x0221,0x0000,0x0000, 0x11DC,0x0000,0x0000, 0x11DC,0x0000,0x0000, /* 309C */ +0x2B3A,0x2B3C,0x0000, 0x0232,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* 309F */ +0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 30A2 */ +0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 30A5 */ +0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 30A8 */ +0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 30AB */ +0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 30AE */ +0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 30B1 */ +0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 30B4 */ +0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 30B7 */ +0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 30BA */ +0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 30BD */ +0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 30C0 */ +0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 30C3 */ +0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 30C6 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 30C9 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 30CC */ +0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 30CF */ +0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 30D2 */ +0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 30D5 */ +0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 30D8 */ +0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 30DB */ +0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 30DE */ +0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 30E1 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 30E4 */ +0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 30E7 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 30EA */ +0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 30ED */ +0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 30F0 */ +0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 30F3 */ +0x2B1D,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B41,0x0000,0x0000, /* 30F6 */ +0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, 0x0233,0x0000,0x0000, /* 30F9 */ +0x11DD,0x0000,0x0000, 0x11DE,0x0000,0x0000, 0x11DE,0x0000,0x0000, /* 30FC */ +0x2B1E,0x2B28,0x0000 }; + +static const uint16 uca520_p031[]= { /* 3100 (3 weights per char) */ +0xFBC0,0xB100,0x0000, 0xFBC0,0xB101,0x0000, 0xFBC0,0xB102,0x0000, /* 3100 */ +0xFBC0,0xB103,0x0000, 0xFBC0,0xB104,0x0000, 0x2B45,0x0000,0x0000, /* 3103 */ +0x2B46,0x0000,0x0000, 0x2B47,0x0000,0x0000, 0x2B48,0x0000,0x0000, /* 3106 */ +0x2B4A,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4C,0x0000,0x0000, /* 3109 */ +0x2B4D,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 310C */ +0x2B52,0x0000,0x0000, 0x2B53,0x0000,0x0000, 0x2B54,0x0000,0x0000, /* 310F */ +0x2B55,0x0000,0x0000, 0x2B57,0x0000,0x0000, 0x2B58,0x0000,0x0000, /* 3112 */ +0x2B59,0x0000,0x0000, 0x2B5A,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 3115 */ +0x2B5C,0x0000,0x0000, 0x2B5D,0x0000,0x0000, 0x2B5E,0x0000,0x0000, /* 3118 */ +0x2B5F,0x0000,0x0000, 0x2B61,0x0000,0x0000, 0x2B62,0x0000,0x0000, /* 311B */ +0x2B64,0x0000,0x0000, 0x2B65,0x0000,0x0000, 0x2B66,0x0000,0x0000, /* 311E */ +0x2B67,0x0000,0x0000, 0x2B68,0x0000,0x0000, 0x2B69,0x0000,0x0000, /* 3121 */ +0x2B6A,0x0000,0x0000, 0x2B6C,0x0000,0x0000, 0x2B70,0x0000,0x0000, /* 3124 */ +0x2B71,0x0000,0x0000, 0x2B72,0x0000,0x0000, 0x2B73,0x0000,0x0000, /* 3127 */ +0x2B49,0x0000,0x0000, 0x2B50,0x0000,0x0000, 0x2B56,0x0000,0x0000, /* 312A */ +0x2B74,0x0000,0x0000, 0xFBC0,0xB12E,0x0000, 0xFBC0,0xB12F,0x0000, /* 312D */ +0xFBC0,0xB130,0x0000, 0x29B0,0x0000,0x0000, 0x29B1,0x0000,0x0000, /* 3130 */ +0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, 0x2A90,0x0000,0x0000, /* 3133 */ +0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, 0x29B4,0x0000,0x0000, /* 3136 */ +0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, 0x2A95,0x0000,0x0000, /* 3139 */ +0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, 0x2A98,0x0000,0x0000, /* 313C */ +0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, 0x29B6,0x0000,0x0000, /* 313F */ +0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, 0x29D1,0x0000,0x0000, /* 3142 */ +0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, 0x29BB,0x0000,0x0000, /* 3145 */ +0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, 0x29BE,0x0000,0x0000, /* 3148 */ +0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, 0x29C1,0x0000,0x0000, /* 314B */ +0x29C2,0x0000,0x0000, 0x2A2E,0x0000,0x0000, 0x2A2F,0x0000,0x0000, /* 314E */ +0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, 0x2A32,0x0000,0x0000, /* 3151 */ +0x2A33,0x0000,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* 3154 */ +0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* 3157 */ +0x2A39,0x0000,0x0000, 0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, /* 315A */ +0x2A3C,0x0000,0x0000, 0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, /* 315D */ +0x2A3F,0x0000,0x0000, 0x2A40,0x0000,0x0000, 0x2A41,0x0000,0x0000, /* 3160 */ +0x2A42,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29C4,0x0000,0x0000, /* 3163 */ +0x29C5,0x0000,0x0000, 0x2AAB,0x0000,0x0000, 0x2AAC,0x0000,0x0000, /* 3166 */ +0x2AB0,0x0000,0x0000, 0x2AB2,0x0000,0x0000, 0x2AB7,0x0000,0x0000, /* 3169 */ +0x2ABB,0x0000,0x0000, 0x2ABD,0x0000,0x0000, 0x29CC,0x0000,0x0000, /* 316C */ +0x2AC1,0x0000,0x0000, 0x2AC3,0x0000,0x0000, 0x29CD,0x0000,0x0000, /* 316F */ +0x29CE,0x0000,0x0000, 0x29D0,0x0000,0x0000, 0x29D2,0x0000,0x0000, /* 3172 */ +0x29D3,0x0000,0x0000, 0x29D7,0x0000,0x0000, 0x29D9,0x0000,0x0000, /* 3175 */ +0x29DB,0x0000,0x0000, 0x29DC,0x0000,0x0000, 0x29DD,0x0000,0x0000, /* 3178 */ +0x29DE,0x0000,0x0000, 0x29DF,0x0000,0x0000, 0x29E2,0x0000,0x0000, /* 317B */ +0x29E6,0x0000,0x0000, 0x29F0,0x0000,0x0000, 0x29F7,0x0000,0x0000, /* 317E */ +0x29FC,0x0000,0x0000, 0x2AD5,0x0000,0x0000, 0x2AD6,0x0000,0x0000, /* 3181 */ +0x2A07,0x0000,0x0000, 0x2A08,0x0000,0x0000, 0x2A09,0x0000,0x0000, /* 3184 */ +0x2A51,0x0000,0x0000, 0x2A52,0x0000,0x0000, 0x2A55,0x0000,0x0000, /* 3187 */ +0x2A5E,0x0000,0x0000, 0x2A5F,0x0000,0x0000, 0x2A61,0x0000,0x0000, /* 318A */ +0x2A6B,0x0000,0x0000, 0x2A6E,0x0000,0x0000, 0xFBC0,0xB18F,0x0000, /* 318D */ +0x110B,0x0000,0x0000, 0x110C,0x0000,0x0000, 0xFB40,0xCE00,0x0000, /* 3190 */ +0xFB40,0xCE8C,0x0000, 0xFB40,0xCE09,0x0000, 0xFB40,0xD6DB,0x0000, /* 3193 */ +0xFB40,0xCE0A,0x0000, 0xFB40,0xCE2D,0x0000, 0xFB40,0xCE0B,0x0000, /* 3196 */ +0xFB40,0xF532,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE19,0x0000, /* 3199 */ +0xFB40,0xCE01,0x0000, 0xFB40,0xD929,0x0000, 0xFB40,0xD730,0x0000, /* 319C */ +0xFB40,0xCEBA,0x0000, 0x2B45,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 319F */ +0x2B53,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B63,0x0000,0x0000, /* 31A2 */ +0x2B63,0x0000,0x0000, 0x2B60,0x0000,0x0000, 0x2B5F,0x0000,0x0000, /* 31A5 */ +0x2B72,0x0000,0x0000, 0x2B5E,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31A8 */ +0x2B72,0x0000,0x0000, 0x2B6F,0x0000,0x0000, 0x2B51,0x0000,0x0000, /* 31AB */ +0x2B64,0x0000,0x0000, 0x2B66,0x0000,0x0000, 0x2B6D,0x0000,0x0000, /* 31AE */ +0x2B6E,0x0000,0x0000, 0x2B6B,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31B1 */ +0x2B46,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 31B4 */ +0x2B52,0x0000,0x0000, 0xFBC0,0xB1B8,0x0000, 0xFBC0,0xB1B9,0x0000, /* 31B7 */ +0xFBC0,0xB1BA,0x0000, 0xFBC0,0xB1BB,0x0000, 0xFBC0,0xB1BC,0x0000, /* 31BA */ +0xFBC0,0xB1BD,0x0000, 0xFBC0,0xB1BE,0x0000, 0xFBC0,0xB1BF,0x0000, /* 31BD */ +0x10E0,0x0000,0x0000, 0x10E1,0x0000,0x0000, 0x10E2,0x0000,0x0000, /* 31C0 */ +0x10E3,0x0000,0x0000, 0x10E4,0x0000,0x0000, 0x10E5,0x0000,0x0000, /* 31C3 */ +0x10E6,0x0000,0x0000, 0x10E7,0x0000,0x0000, 0x10E8,0x0000,0x0000, /* 31C6 */ +0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x10EB,0x0000,0x0000, /* 31C9 */ +0x10EC,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10EE,0x0000,0x0000, /* 31CC */ +0x10EF,0x0000,0x0000, 0x10F0,0x0000,0x0000, 0x10F1,0x0000,0x0000, /* 31CF */ +0x10F2,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F4,0x0000,0x0000, /* 31D2 */ +0x10F5,0x0000,0x0000, 0x10F6,0x0000,0x0000, 0x10F7,0x0000,0x0000, /* 31D5 */ +0x10F8,0x0000,0x0000, 0x10F9,0x0000,0x0000, 0x10FA,0x0000,0x0000, /* 31D8 */ +0x10FB,0x0000,0x0000, 0x10FC,0x0000,0x0000, 0x10FD,0x0000,0x0000, /* 31DB */ +0x10FE,0x0000,0x0000, 0x10FF,0x0000,0x0000, 0x1100,0x0000,0x0000, /* 31DE */ +0x1101,0x0000,0x0000, 0x1102,0x0000,0x0000, 0x1103,0x0000,0x0000, /* 31E1 */ +0xFBC0,0xB1E4,0x0000, 0xFBC0,0xB1E5,0x0000, 0xFBC0,0xB1E6,0x0000, /* 31E4 */ +0xFBC0,0xB1E7,0x0000, 0xFBC0,0xB1E8,0x0000, 0xFBC0,0xB1E9,0x0000, /* 31E7 */ +0xFBC0,0xB1EA,0x0000, 0xFBC0,0xB1EB,0x0000, 0xFBC0,0xB1EC,0x0000, /* 31EA */ +0xFBC0,0xB1ED,0x0000, 0xFBC0,0xB1EE,0x0000, 0xFBC0,0xB1EF,0x0000, /* 31ED */ +0x2B1C,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 31F0 */ +0x2B28,0x0000,0x0000, 0x2B2B,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 31F3 */ +0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 31F6 */ +0x2B32,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 31F9 */ +0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 31FC */ +0x2B3F,0x0000,0x0000 }; + +static const uint16 uca520_p032[]= { /* 3200 (8 weights per char) */ +0x02FF,0x29B0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3200 */ +0x02FF,0x29B2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3201 */ +0x02FF,0x29B3,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3202 */ +0x02FF,0x29B5,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3203 */ +0x02FF,0x29B6,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3204 */ +0x02FF,0x29B7,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3205 */ +0x02FF,0x29B9,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3206 */ +0x02FF,0x29BB,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3207 */ +0x02FF,0x29BC,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3208 */ +0x02FF,0x29BE,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3209 */ +0x02FF,0x29BF,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320A */ +0x02FF,0x29C0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320B */ +0x02FF,0x29C1,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320C */ +0x02FF,0x29C2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320D */ +0x02FF,0x29B0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320E */ +0x02FF,0x29B2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320F */ +0x02FF,0x29B3,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3210 */ +0x02FF,0x29B5,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3211 */ +0x02FF,0x29B6,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3212 */ +0x02FF,0x29B7,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3213 */ +0x02FF,0x29B9,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3214 */ +0x02FF,0x29BB,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3215 */ +0x02FF,0x29BC,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3216 */ +0x02FF,0x29BE,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3217 */ +0x02FF,0x29BF,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3218 */ +0x02FF,0x29C0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3219 */ +0x02FF,0x29C1,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321A */ +0x02FF,0x29C2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321B */ +0x02FF,0x29BC,0x2A3B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321C */ +0x02FF,0x29BB,0x2A36,0x29BC,0x2A32,0x2A8F,0x0300,0x0000, /* 321D */ +0x02FF,0x29BB,0x2A36,0x29C2,0x2A3B,0x0300,0x0000,0x0000, /* 321E */ +0xFBC0,0xB21F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 321F */ +0x02FF,0xFB40,0xCE00,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3220 */ +0x02FF,0xFB40,0xCE8C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3221 */ +0x02FF,0xFB40,0xCE09,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3222 */ +0x02FF,0xFB40,0xD6DB,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3223 */ +0x02FF,0xFB40,0xCE94,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3224 */ +0x02FF,0xFB40,0xD16D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3225 */ +0x02FF,0xFB40,0xCE03,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3226 */ +0x02FF,0xFB40,0xD16B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3227 */ +0x02FF,0xFB40,0xCE5D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3228 */ +0x02FF,0xFB40,0xD341,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3229 */ +0x02FF,0xFB40,0xE708,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322A */ +0x02FF,0xFB40,0xF06B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322B */ +0x02FF,0xFB40,0xEC34,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322C */ +0x02FF,0xFB40,0xE728,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322D */ +0x02FF,0xFB41,0x91D1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322E */ +0x02FF,0xFB40,0xD71F,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322F */ +0x02FF,0xFB40,0xE5E5,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3230 */ +0x02FF,0xFB40,0xE82A,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3231 */ +0x02FF,0xFB40,0xE709,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3232 */ +0x02FF,0xFB40,0xF93E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3233 */ +0x02FF,0xFB40,0xD40D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3234 */ +0x02FF,0xFB40,0xF279,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3235 */ +0x02FF,0xFB41,0x8CA1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3236 */ +0x02FF,0xFB40,0xF95D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3237 */ +0x02FF,0xFB40,0xD2B4,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3238 */ +0x02FF,0xFB40,0xCEE3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3239 */ +0x02FF,0xFB40,0xD47C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323A */ +0x02FF,0xFB40,0xDB66,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323B */ +0x02FF,0xFB40,0xF6E3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323C */ +0x02FF,0xFB40,0xCF01,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323D */ +0x02FF,0xFB41,0x8CC7,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323E */ +0x02FF,0xFB40,0xD354,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323F */ +0x02FF,0xFB40,0xF96D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3240 */ +0x02FF,0xFB40,0xCF11,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3241 */ +0x02FF,0xFB41,0x81EA,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3242 */ +0x02FF,0xFB41,0x81F3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3243 */ +0xFB40,0xD54F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3244 */ +0xFB40,0xDE7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3245 */ +0xFB40,0xE587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3246 */ +0xFB40,0xFB8F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3247 */ +0x1206,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3248 */ +0x1207,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3249 */ +0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324A */ +0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324B */ +0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324C */ +0x120B,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324D */ +0x120C,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324E */ +0x120D,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324F */ +0x13B3,0x1433,0x126B,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3250 */ +0x1207,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3251 */ +0x1207,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3252 */ +0x1207,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3253 */ +0x1207,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3254 */ +0x1207,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3255 */ +0x1207,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3256 */ +0x1207,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3257 */ +0x1207,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3258 */ +0x1207,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3259 */ +0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325A */ +0x1208,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325B */ +0x1208,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325C */ +0x1208,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325D */ +0x1208,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325E */ +0x1208,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325F */ +0x29B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3260 */ +0x29B2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3261 */ +0x29B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3262 */ +0x29B5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3263 */ +0x29B6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3264 */ +0x29B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3265 */ +0x29B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3266 */ +0x29BB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3267 */ +0x29BC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3268 */ +0x29BE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3269 */ +0x29BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326A */ +0x29C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326B */ +0x29C1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326C */ +0x29C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326D */ +0x29B0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326E */ +0x29B2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326F */ +0x29B3,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3270 */ +0x29B5,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3271 */ +0x29B6,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3272 */ +0x29B7,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3273 */ +0x29B9,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3274 */ +0x29BB,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3275 */ +0x29BC,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3276 */ +0x29BE,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3277 */ +0x29BF,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3278 */ +0x29C0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3279 */ +0x29C1,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327A */ +0x29C2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327B */ +0x29BE,0x2A2E,0x2A9B,0x29B0,0x2A36,0x0000,0x0000,0x0000, /* 327C */ +0x29BC,0x2A3B,0x29BB,0x2A41,0x0000,0x0000,0x0000,0x0000, /* 327D */ +0x29BB,0x2A3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327E */ +0x110D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327F */ +0xFB40,0xCE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3280 */ +0xFB40,0xCE8C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3281 */ +0xFB40,0xCE09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3282 */ +0xFB40,0xD6DB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3283 */ +0xFB40,0xCE94,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3284 */ +0xFB40,0xD16D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3285 */ +0xFB40,0xCE03,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3286 */ +0xFB40,0xD16B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3287 */ +0xFB40,0xCE5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3288 */ +0xFB40,0xD341,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3289 */ +0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328A */ +0xFB40,0xF06B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328B */ +0xFB40,0xEC34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328C */ +0xFB40,0xE728,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328D */ +0xFB41,0x91D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328E */ +0xFB40,0xD71F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328F */ +0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3290 */ +0xFB40,0xE82A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3291 */ +0xFB40,0xE709,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3292 */ +0xFB40,0xF93E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3293 */ +0xFB40,0xD40D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3294 */ +0xFB40,0xF279,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3295 */ +0xFB41,0x8CA1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3296 */ +0xFB40,0xF95D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3297 */ +0xFB40,0xD2B4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3298 */ +0xFB40,0xF9D8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3299 */ +0xFB40,0xF537,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329A */ +0xFB40,0xD973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329B */ +0xFB41,0x9069,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329C */ +0xFB40,0xD12A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329D */ +0xFB40,0xD370,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329E */ +0xFB40,0xECE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329F */ +0xFB41,0x9805,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A0 */ +0xFB40,0xCF11,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A1 */ +0xFB40,0xD199,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A2 */ +0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A3 */ +0xFB40,0xCE0A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A4 */ +0xFB40,0xCE2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A5 */ +0xFB40,0xCE0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A6 */ +0xFB40,0xDDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A7 */ +0xFB40,0xD3F3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A8 */ +0xFB40,0xD33B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A9 */ +0xFB40,0xDB97,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AA */ +0xFB40,0xDB66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AB */ +0xFB40,0xF6E3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AC */ +0xFB40,0xCF01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AD */ +0xFB41,0x8CC7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AE */ +0xFB40,0xD354,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AF */ +0xFB40,0xD91C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B0 */ +0x1208,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B1 */ +0x1208,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B2 */ +0x1208,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B3 */ +0x1208,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B4 */ +0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B5 */ +0x1209,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B6 */ +0x1209,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B7 */ +0x1209,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B8 */ +0x1209,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B9 */ +0x1209,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BA */ +0x1209,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BB */ +0x1209,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BC */ +0x1209,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BD */ +0x1209,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BE */ +0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BF */ +0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C0 */ +0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C1 */ +0x1208,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C2 */ +0x1209,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C3 */ +0x120A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C4 */ +0x120B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C5 */ +0x120C,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C6 */ +0x120D,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C7 */ +0x120E,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C8 */ +0x1206,0x1205,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32C9 */ +0x1206,0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CA */ +0x1206,0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CB */ +0x12D3,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CC */ +0x126B,0x13DA,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CD */ +0x126B,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CE */ +0x1330,0x1433,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CF */ +0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D0 */ +0x2B16,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D1 */ +0x2B17,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D2 */ +0x2B18,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D3 */ +0x2B19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D4 */ +0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D5 */ +0x2B1B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D6 */ +0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D7 */ +0x2B1D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D8 */ +0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D9 */ +0x2B1F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DA */ +0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DB */ +0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DC */ +0x2B22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DD */ +0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DE */ +0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DF */ +0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E0 */ +0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E1 */ +0x2B27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E2 */ +0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E3 */ +0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E4 */ +0x2B2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E5 */ +0x2B2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E6 */ +0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E7 */ +0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E8 */ +0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E9 */ +0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EA */ +0x2B30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EB */ +0x2B31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EC */ +0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32ED */ +0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EE */ +0x2B34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EF */ +0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F0 */ +0x2B36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F1 */ +0x2B37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F2 */ +0x2B38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F3 */ +0x2B39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F4 */ +0x2B3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F5 */ +0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F6 */ +0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F7 */ +0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F8 */ +0x2B3E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F9 */ +0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FA */ +0x2B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FB */ +0x2B41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FC */ +0x2B42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FD */ +0x2B43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FE */ +0xFBC0,0xB2FF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 32FF */ +}; + +static const uint16 uca520_p033[]= { /* 3300 (9 weights per char) */ +0x2B15,0x2B2E,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3300 */ +0x2B15,0x2B3D,0x2B30,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3301 */ +0x2B15,0x2B44,0x2B31,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3302 */ +0x2B15,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3303 */ +0x2B16,0x2B2A,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3304 */ +0x2B16,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3305 */ +0x2B17,0x2B19,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3306 */ +0x2B18,0x2B21,0x2B1C,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3307 */ +0x2B18,0x11DD,0x2B1A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3308 */ +0x2B19,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3309 */ +0x2B19,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330A */ +0x2B1A,0x2B16,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330B */ +0x2B1A,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330C */ +0x2B1A,0x2B3F,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330D */ +0x2B1A,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330E */ +0x2B1A,0x2B44,0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330F */ +0x2B1B,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3310 */ +0x2B1B,0x2B2A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3311 */ +0x2B1B,0x2B39,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3312 */ +0x2B1B,0x2B3D,0x2B24,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3313 */ +0x2B1B,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3314 */ +0x2B1B,0x2B3F,0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3315 */ +0x2B1B,0x2B3F,0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000, /* 3316 */ +0x2B1B,0x2B3F,0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3317 */ +0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3318 */ +0x2B1C,0x2B3B,0x2B35,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3319 */ +0x2B1C,0x2B3D,0x2B22,0x2B16,0x2B3F,0x0000,0x0000,0x0000,0x0000, /* 331A */ +0x2B1C,0x2B3F,0x11DD,0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331B */ +0x2B1D,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331C */ +0x2B1E,0x2B3D,0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331D */ +0x2B1E,0x11DD,0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331E */ +0x2B1F,0x2B16,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331F */ +0x2B1F,0x2B44,0x2B25,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3320 */ +0x2B20,0x2B3C,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3321 */ +0x2B22,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3322 */ +0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3323 */ +0x2B24,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3324 */ +0x2B27,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3325 */ +0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3326 */ +0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3327 */ +0x2B29,0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3328 */ +0x2B2D,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3329 */ +0x2B2E,0x2B16,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332A */ +0x2B2E,0x11DD,0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 332B */ +0x2B2E,0x11DD,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332C */ +0x2B2E,0x11DD,0x2B3E,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332D */ +0x2B2F,0x2B15,0x2B21,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 332E */ +0x2B2F,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332F */ +0x2B2F,0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3330 */ +0x2B2F,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3331 */ +0x2B30,0x2B15,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3332 */ +0x2B30,0x2B16,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3333 */ +0x2B30,0x2B26,0x2B20,0x2B18,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3334 */ +0x2B30,0x2B3B,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3335 */ +0x2B31,0x2B1C,0x2B24,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3336 */ +0x2B31,0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3337 */ +0x2B31,0x2B2A,0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3338 */ +0x2B31,0x2B3D,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3339 */ +0x2B31,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333A */ +0x2B31,0x11DD,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333B */ +0x2B31,0x11DD,0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333C */ +0x2B32,0x2B16,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333D */ +0x2B32,0x2B3D,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333E */ +0x2B32,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333F */ +0x2B32,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3340 */ +0x2B32,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3341 */ +0x2B32,0x11DD,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3342 */ +0x2B33,0x2B16,0x2B1C,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3343 */ +0x2B33,0x2B16,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3344 */ +0x2B33,0x2B26,0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3345 */ +0x2B33,0x2B3D,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3346 */ +0x2B33,0x2B44,0x2B20,0x2B3A,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3347 */ +0x2B34,0x2B1C,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3348 */ +0x2B34,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3349 */ +0x2B34,0x2B3C,0x2B2E,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 334A */ +0x2B36,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334B */ +0x2B36,0x2B1A,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334C */ +0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334D */ +0x2B38,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334E */ +0x2B38,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334F */ +0x2B39,0x2B15,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3350 */ +0x2B3C,0x2B26,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3351 */ +0x2B3C,0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3352 */ +0x2B3D,0x2B2F,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3353 */ +0x2B3D,0x11DD,0x2B30,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3354 */ +0x2B3E,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3355 */ +0x2B3E,0x2B44,0x2B28,0x2B1D,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3356 */ +0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3357 */ +0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3358 */ +0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3359 */ +0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335A */ +0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335B */ +0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335C */ +0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335D */ +0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335E */ +0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335F */ +0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3360 */ +0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3361 */ +0x1206,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3362 */ +0x1206,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3363 */ +0x1206,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3364 */ +0x1206,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3365 */ +0x1206,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3366 */ +0x1206,0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3367 */ +0x1206,0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3368 */ +0x1206,0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3369 */ +0x1206,0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336A */ +0x1206,0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336B */ +0x1207,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336C */ +0x1207,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336D */ +0x1207,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336E */ +0x1207,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336F */ +0x1207,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3370 */ +0x12D3,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3371 */ +0x1250,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3372 */ +0x120F,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3373 */ +0x1225,0x120F,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3374 */ +0x138E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3375 */ +0x13B3,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3376 */ +0x1250,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3377 */ +0x1250,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3378 */ +0x1250,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3379 */ +0x12EC,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337A */ +0xFB40,0xDE73,0xFB40,0xE210,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337B */ +0xFB40,0xE62D,0xFB40,0xD48C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337C */ +0xFB40,0xD927,0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337D */ +0xFB40,0xE60E,0xFB40,0xECBB,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337E */ +0xFB40,0xE82A,0xFB40,0xDF0F,0xFB40,0xCF1A,0xFB40,0xF93E,0x0000, /* 337F */ +0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3380 */ +0x136D,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3381 */ +0x1557,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3382 */ +0x135F,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3383 */ +0x131E,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3384 */ +0x131E,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3385 */ +0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3386 */ +0x12B0,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3387 */ +0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3388 */ +0x131E,0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3389 */ +0x13B3,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338A */ +0x136D,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338B */ +0x1557,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338C */ +0x1557,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338D */ +0x135F,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338E */ +0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338F */ +0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3390 */ +0x131E,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3391 */ +0x135F,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3392 */ +0x12B0,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3393 */ +0x1433,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3394 */ +0x1557,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3395 */ +0x135F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3396 */ +0x1250,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3397 */ +0x131E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3398 */ +0x12A3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3399 */ +0x136D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339A */ +0x1557,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339B */ +0x135F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339C */ +0x123D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339D */ +0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339E */ +0x135F,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339F */ +0x123D,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A0 */ +0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A1 */ +0x131E,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A2 */ +0x135F,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A3 */ +0x123D,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A4 */ +0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A5 */ +0x131E,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A6 */ +0x135F,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A7 */ +0x135F,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A8 */ +0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A9 */ +0x131E,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AA */ +0x135F,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AB */ +0x12B0,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AC */ +0x13DA,0x120F,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AD */ +0x13DA,0x120F,0x1250,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000, /* 33AE */ +0x13DA,0x120F,0x1250,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000, /* 33AF */ +0x13B3,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B0 */ +0x136D,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B1 */ +0x1557,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B2 */ +0x135F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B3 */ +0x13B3,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B4 */ +0x136D,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B5 */ +0x1557,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B6 */ +0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B7 */ +0x131E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B8 */ +0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B9 */ +0x13B3,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BA */ +0x136D,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BB */ +0x1557,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BC */ +0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BD */ +0x131E,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BE */ +0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BF */ +0x131E,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C0 */ +0x135F,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C1 */ +0x120F,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C2 */ +0x1225,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C3 */ +0x123D,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C4 */ +0x123D,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C5 */ +0x123D,0x055F,0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C6 */ +0x123D,0x138E,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C7 */ +0x1250,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C8 */ +0x12B0,0x149C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C9 */ +0x12D3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CA */ +0x12D3,0x13B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CB */ +0x12EC,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CC */ +0x131E,0x131E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CD */ +0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CE */ +0x131E,0x1433,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CF */ +0x1330,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D0 */ +0x1330,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D1 */ +0x1330,0x138E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D2 */ +0x1330,0x1497,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D3 */ +0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D4 */ +0x135F,0x12EC,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D5 */ +0x135F,0x138E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D6 */ +0x13B3,0x12D3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D7 */ +0x13B3,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D8 */ +0x13B3,0x13B3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D9 */ +0x13B3,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DA */ +0x1410,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DB */ +0x1410,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DC */ +0x148D,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DD */ +0x147B,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DE */ +0x120F,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DF */ +0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E0 */ +0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E1 */ +0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E2 */ +0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E3 */ +0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E4 */ +0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E5 */ +0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E6 */ +0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E7 */ +0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E8 */ +0x1206,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E9 */ +0x1206,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EA */ +0x1206,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EB */ +0x1206,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EC */ +0x1206,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33ED */ +0x1206,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EE */ +0x1206,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EF */ +0x1206,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F0 */ +0x1206,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F1 */ +0x1206,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F2 */ +0x1207,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F3 */ +0x1207,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F4 */ +0x1207,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F5 */ +0x1207,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F6 */ +0x1207,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F7 */ +0x1207,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F8 */ +0x1207,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F9 */ +0x1207,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FA */ +0x1207,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FB */ +0x1207,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FC */ +0x1208,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FD */ +0x1208,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FE */ +0x12B0,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 33FF */ +}; + +static const uint16 uca520_p04D[]= { /* 4D00 (3 weights per char) */ +0xFB80,0xCD00,0x0000, 0xFB80,0xCD01,0x0000, 0xFB80,0xCD02,0x0000, /* 4D00 */ +0xFB80,0xCD03,0x0000, 0xFB80,0xCD04,0x0000, 0xFB80,0xCD05,0x0000, /* 4D03 */ +0xFB80,0xCD06,0x0000, 0xFB80,0xCD07,0x0000, 0xFB80,0xCD08,0x0000, /* 4D06 */ +0xFB80,0xCD09,0x0000, 0xFB80,0xCD0A,0x0000, 0xFB80,0xCD0B,0x0000, /* 4D09 */ +0xFB80,0xCD0C,0x0000, 0xFB80,0xCD0D,0x0000, 0xFB80,0xCD0E,0x0000, /* 4D0C */ +0xFB80,0xCD0F,0x0000, 0xFB80,0xCD10,0x0000, 0xFB80,0xCD11,0x0000, /* 4D0F */ +0xFB80,0xCD12,0x0000, 0xFB80,0xCD13,0x0000, 0xFB80,0xCD14,0x0000, /* 4D12 */ +0xFB80,0xCD15,0x0000, 0xFB80,0xCD16,0x0000, 0xFB80,0xCD17,0x0000, /* 4D15 */ +0xFB80,0xCD18,0x0000, 0xFB80,0xCD19,0x0000, 0xFB80,0xCD1A,0x0000, /* 4D18 */ +0xFB80,0xCD1B,0x0000, 0xFB80,0xCD1C,0x0000, 0xFB80,0xCD1D,0x0000, /* 4D1B */ +0xFB80,0xCD1E,0x0000, 0xFB80,0xCD1F,0x0000, 0xFB80,0xCD20,0x0000, /* 4D1E */ +0xFB80,0xCD21,0x0000, 0xFB80,0xCD22,0x0000, 0xFB80,0xCD23,0x0000, /* 4D21 */ +0xFB80,0xCD24,0x0000, 0xFB80,0xCD25,0x0000, 0xFB80,0xCD26,0x0000, /* 4D24 */ +0xFB80,0xCD27,0x0000, 0xFB80,0xCD28,0x0000, 0xFB80,0xCD29,0x0000, /* 4D27 */ +0xFB80,0xCD2A,0x0000, 0xFB80,0xCD2B,0x0000, 0xFB80,0xCD2C,0x0000, /* 4D2A */ +0xFB80,0xCD2D,0x0000, 0xFB80,0xCD2E,0x0000, 0xFB80,0xCD2F,0x0000, /* 4D2D */ +0xFB80,0xCD30,0x0000, 0xFB80,0xCD31,0x0000, 0xFB80,0xCD32,0x0000, /* 4D30 */ +0xFB80,0xCD33,0x0000, 0xFB80,0xCD34,0x0000, 0xFB80,0xCD35,0x0000, /* 4D33 */ +0xFB80,0xCD36,0x0000, 0xFB80,0xCD37,0x0000, 0xFB80,0xCD38,0x0000, /* 4D36 */ +0xFB80,0xCD39,0x0000, 0xFB80,0xCD3A,0x0000, 0xFB80,0xCD3B,0x0000, /* 4D39 */ +0xFB80,0xCD3C,0x0000, 0xFB80,0xCD3D,0x0000, 0xFB80,0xCD3E,0x0000, /* 4D3C */ +0xFB80,0xCD3F,0x0000, 0xFB80,0xCD40,0x0000, 0xFB80,0xCD41,0x0000, /* 4D3F */ +0xFB80,0xCD42,0x0000, 0xFB80,0xCD43,0x0000, 0xFB80,0xCD44,0x0000, /* 4D42 */ +0xFB80,0xCD45,0x0000, 0xFB80,0xCD46,0x0000, 0xFB80,0xCD47,0x0000, /* 4D45 */ +0xFB80,0xCD48,0x0000, 0xFB80,0xCD49,0x0000, 0xFB80,0xCD4A,0x0000, /* 4D48 */ +0xFB80,0xCD4B,0x0000, 0xFB80,0xCD4C,0x0000, 0xFB80,0xCD4D,0x0000, /* 4D4B */ +0xFB80,0xCD4E,0x0000, 0xFB80,0xCD4F,0x0000, 0xFB80,0xCD50,0x0000, /* 4D4E */ +0xFB80,0xCD51,0x0000, 0xFB80,0xCD52,0x0000, 0xFB80,0xCD53,0x0000, /* 4D51 */ +0xFB80,0xCD54,0x0000, 0xFB80,0xCD55,0x0000, 0xFB80,0xCD56,0x0000, /* 4D54 */ +0xFB80,0xCD57,0x0000, 0xFB80,0xCD58,0x0000, 0xFB80,0xCD59,0x0000, /* 4D57 */ +0xFB80,0xCD5A,0x0000, 0xFB80,0xCD5B,0x0000, 0xFB80,0xCD5C,0x0000, /* 4D5A */ +0xFB80,0xCD5D,0x0000, 0xFB80,0xCD5E,0x0000, 0xFB80,0xCD5F,0x0000, /* 4D5D */ +0xFB80,0xCD60,0x0000, 0xFB80,0xCD61,0x0000, 0xFB80,0xCD62,0x0000, /* 4D60 */ +0xFB80,0xCD63,0x0000, 0xFB80,0xCD64,0x0000, 0xFB80,0xCD65,0x0000, /* 4D63 */ +0xFB80,0xCD66,0x0000, 0xFB80,0xCD67,0x0000, 0xFB80,0xCD68,0x0000, /* 4D66 */ +0xFB80,0xCD69,0x0000, 0xFB80,0xCD6A,0x0000, 0xFB80,0xCD6B,0x0000, /* 4D69 */ +0xFB80,0xCD6C,0x0000, 0xFB80,0xCD6D,0x0000, 0xFB80,0xCD6E,0x0000, /* 4D6C */ +0xFB80,0xCD6F,0x0000, 0xFB80,0xCD70,0x0000, 0xFB80,0xCD71,0x0000, /* 4D6F */ +0xFB80,0xCD72,0x0000, 0xFB80,0xCD73,0x0000, 0xFB80,0xCD74,0x0000, /* 4D72 */ +0xFB80,0xCD75,0x0000, 0xFB80,0xCD76,0x0000, 0xFB80,0xCD77,0x0000, /* 4D75 */ +0xFB80,0xCD78,0x0000, 0xFB80,0xCD79,0x0000, 0xFB80,0xCD7A,0x0000, /* 4D78 */ +0xFB80,0xCD7B,0x0000, 0xFB80,0xCD7C,0x0000, 0xFB80,0xCD7D,0x0000, /* 4D7B */ +0xFB80,0xCD7E,0x0000, 0xFB80,0xCD7F,0x0000, 0xFB80,0xCD80,0x0000, /* 4D7E */ +0xFB80,0xCD81,0x0000, 0xFB80,0xCD82,0x0000, 0xFB80,0xCD83,0x0000, /* 4D81 */ +0xFB80,0xCD84,0x0000, 0xFB80,0xCD85,0x0000, 0xFB80,0xCD86,0x0000, /* 4D84 */ +0xFB80,0xCD87,0x0000, 0xFB80,0xCD88,0x0000, 0xFB80,0xCD89,0x0000, /* 4D87 */ +0xFB80,0xCD8A,0x0000, 0xFB80,0xCD8B,0x0000, 0xFB80,0xCD8C,0x0000, /* 4D8A */ +0xFB80,0xCD8D,0x0000, 0xFB80,0xCD8E,0x0000, 0xFB80,0xCD8F,0x0000, /* 4D8D */ +0xFB80,0xCD90,0x0000, 0xFB80,0xCD91,0x0000, 0xFB80,0xCD92,0x0000, /* 4D90 */ +0xFB80,0xCD93,0x0000, 0xFB80,0xCD94,0x0000, 0xFB80,0xCD95,0x0000, /* 4D93 */ +0xFB80,0xCD96,0x0000, 0xFB80,0xCD97,0x0000, 0xFB80,0xCD98,0x0000, /* 4D96 */ +0xFB80,0xCD99,0x0000, 0xFB80,0xCD9A,0x0000, 0xFB80,0xCD9B,0x0000, /* 4D99 */ +0xFB80,0xCD9C,0x0000, 0xFB80,0xCD9D,0x0000, 0xFB80,0xCD9E,0x0000, /* 4D9C */ +0xFB80,0xCD9F,0x0000, 0xFB80,0xCDA0,0x0000, 0xFB80,0xCDA1,0x0000, /* 4D9F */ +0xFB80,0xCDA2,0x0000, 0xFB80,0xCDA3,0x0000, 0xFB80,0xCDA4,0x0000, /* 4DA2 */ +0xFB80,0xCDA5,0x0000, 0xFB80,0xCDA6,0x0000, 0xFB80,0xCDA7,0x0000, /* 4DA5 */ +0xFB80,0xCDA8,0x0000, 0xFB80,0xCDA9,0x0000, 0xFB80,0xCDAA,0x0000, /* 4DA8 */ +0xFB80,0xCDAB,0x0000, 0xFB80,0xCDAC,0x0000, 0xFB80,0xCDAD,0x0000, /* 4DAB */ +0xFB80,0xCDAE,0x0000, 0xFB80,0xCDAF,0x0000, 0xFB80,0xCDB0,0x0000, /* 4DAE */ +0xFB80,0xCDB1,0x0000, 0xFB80,0xCDB2,0x0000, 0xFB80,0xCDB3,0x0000, /* 4DB1 */ +0xFB80,0xCDB4,0x0000, 0xFB80,0xCDB5,0x0000, 0xFBC0,0xCDB6,0x0000, /* 4DB4 */ +0xFBC0,0xCDB7,0x0000, 0xFBC0,0xCDB8,0x0000, 0xFBC0,0xCDB9,0x0000, /* 4DB7 */ +0xFBC0,0xCDBA,0x0000, 0xFBC0,0xCDBB,0x0000, 0xFBC0,0xCDBC,0x0000, /* 4DBA */ +0xFBC0,0xCDBD,0x0000, 0xFBC0,0xCDBE,0x0000, 0xFBC0,0xCDBF,0x0000, /* 4DBD */ +0x0D3E,0x0000,0x0000, 0x0D3F,0x0000,0x0000, 0x0D40,0x0000,0x0000, /* 4DC0 */ +0x0D41,0x0000,0x0000, 0x0D42,0x0000,0x0000, 0x0D43,0x0000,0x0000, /* 4DC3 */ +0x0D44,0x0000,0x0000, 0x0D45,0x0000,0x0000, 0x0D46,0x0000,0x0000, /* 4DC6 */ +0x0D47,0x0000,0x0000, 0x0D48,0x0000,0x0000, 0x0D49,0x0000,0x0000, /* 4DC9 */ +0x0D4A,0x0000,0x0000, 0x0D4B,0x0000,0x0000, 0x0D4C,0x0000,0x0000, /* 4DCC */ +0x0D4D,0x0000,0x0000, 0x0D4E,0x0000,0x0000, 0x0D4F,0x0000,0x0000, /* 4DCF */ +0x0D50,0x0000,0x0000, 0x0D51,0x0000,0x0000, 0x0D52,0x0000,0x0000, /* 4DD2 */ +0x0D53,0x0000,0x0000, 0x0D54,0x0000,0x0000, 0x0D55,0x0000,0x0000, /* 4DD5 */ +0x0D56,0x0000,0x0000, 0x0D57,0x0000,0x0000, 0x0D58,0x0000,0x0000, /* 4DD8 */ +0x0D59,0x0000,0x0000, 0x0D5A,0x0000,0x0000, 0x0D5B,0x0000,0x0000, /* 4DDB */ +0x0D5C,0x0000,0x0000, 0x0D5D,0x0000,0x0000, 0x0D5E,0x0000,0x0000, /* 4DDE */ +0x0D5F,0x0000,0x0000, 0x0D60,0x0000,0x0000, 0x0D61,0x0000,0x0000, /* 4DE1 */ +0x0D62,0x0000,0x0000, 0x0D63,0x0000,0x0000, 0x0D64,0x0000,0x0000, /* 4DE4 */ +0x0D65,0x0000,0x0000, 0x0D66,0x0000,0x0000, 0x0D67,0x0000,0x0000, /* 4DE7 */ +0x0D68,0x0000,0x0000, 0x0D69,0x0000,0x0000, 0x0D6A,0x0000,0x0000, /* 4DEA */ +0x0D6B,0x0000,0x0000, 0x0D6C,0x0000,0x0000, 0x0D6D,0x0000,0x0000, /* 4DED */ +0x0D6E,0x0000,0x0000, 0x0D6F,0x0000,0x0000, 0x0D70,0x0000,0x0000, /* 4DF0 */ +0x0D71,0x0000,0x0000, 0x0D72,0x0000,0x0000, 0x0D73,0x0000,0x0000, /* 4DF3 */ +0x0D74,0x0000,0x0000, 0x0D75,0x0000,0x0000, 0x0D76,0x0000,0x0000, /* 4DF6 */ +0x0D77,0x0000,0x0000, 0x0D78,0x0000,0x0000, 0x0D79,0x0000,0x0000, /* 4DF9 */ +0x0D7A,0x0000,0x0000, 0x0D7B,0x0000,0x0000, 0x0D7C,0x0000,0x0000, /* 4DFC */ +0x0D7D,0x0000,0x0000 }; + +static const uint16 uca520_p0A0[]= { /* A000 (2 weights per char) */ +0x2B75,0x0000, 0x2B76,0x0000, 0x2B77,0x0000, 0x2B78,0x0000, /* A000 */ +0x2B79,0x0000, 0x2B7A,0x0000, 0x2B7B,0x0000, 0x2B7C,0x0000, /* A004 */ +0x2B7D,0x0000, 0x2B7E,0x0000, 0x2B7F,0x0000, 0x2B80,0x0000, /* A008 */ +0x2B81,0x0000, 0x2B82,0x0000, 0x2B83,0x0000, 0x2B84,0x0000, /* A00C */ +0x2B85,0x0000, 0x2B86,0x0000, 0x2B87,0x0000, 0x2B88,0x0000, /* A010 */ +0x2B89,0x0000, 0x2B8A,0x0000, 0x2B8B,0x0000, 0x2B8C,0x0000, /* A014 */ +0x2B8D,0x0000, 0x2B8E,0x0000, 0x2B8F,0x0000, 0x2B90,0x0000, /* A018 */ +0x2B91,0x0000, 0x2B92,0x0000, 0x2B93,0x0000, 0x2B94,0x0000, /* A01C */ +0x2B95,0x0000, 0x2B96,0x0000, 0x2B97,0x0000, 0x2B98,0x0000, /* A020 */ +0x2B99,0x0000, 0x2B9A,0x0000, 0x2B9B,0x0000, 0x2B9C,0x0000, /* A024 */ +0x2B9D,0x0000, 0x2B9E,0x0000, 0x2B9F,0x0000, 0x2BA0,0x0000, /* A028 */ +0x2BA1,0x0000, 0x2BA2,0x0000, 0x2BA3,0x0000, 0x2BA4,0x0000, /* A02C */ +0x2BA5,0x0000, 0x2BA6,0x0000, 0x2BA7,0x0000, 0x2BA8,0x0000, /* A030 */ +0x2BA9,0x0000, 0x2BAA,0x0000, 0x2BAB,0x0000, 0x2BAC,0x0000, /* A034 */ +0x2BAD,0x0000, 0x2BAE,0x0000, 0x2BAF,0x0000, 0x2BB0,0x0000, /* A038 */ +0x2BB1,0x0000, 0x2BB2,0x0000, 0x2BB3,0x0000, 0x2BB4,0x0000, /* A03C */ +0x2BB5,0x0000, 0x2BB6,0x0000, 0x2BB7,0x0000, 0x2BB8,0x0000, /* A040 */ +0x2BB9,0x0000, 0x2BBA,0x0000, 0x2BBB,0x0000, 0x2BBC,0x0000, /* A044 */ +0x2BBD,0x0000, 0x2BBE,0x0000, 0x2BBF,0x0000, 0x2BC0,0x0000, /* A048 */ +0x2BC1,0x0000, 0x2BC2,0x0000, 0x2BC3,0x0000, 0x2BC4,0x0000, /* A04C */ +0x2BC5,0x0000, 0x2BC6,0x0000, 0x2BC7,0x0000, 0x2BC8,0x0000, /* A050 */ +0x2BC9,0x0000, 0x2BCA,0x0000, 0x2BCB,0x0000, 0x2BCC,0x0000, /* A054 */ +0x2BCD,0x0000, 0x2BCE,0x0000, 0x2BCF,0x0000, 0x2BD0,0x0000, /* A058 */ +0x2BD1,0x0000, 0x2BD2,0x0000, 0x2BD3,0x0000, 0x2BD4,0x0000, /* A05C */ +0x2BD5,0x0000, 0x2BD6,0x0000, 0x2BD7,0x0000, 0x2BD8,0x0000, /* A060 */ +0x2BD9,0x0000, 0x2BDA,0x0000, 0x2BDB,0x0000, 0x2BDC,0x0000, /* A064 */ +0x2BDD,0x0000, 0x2BDE,0x0000, 0x2BDF,0x0000, 0x2BE0,0x0000, /* A068 */ +0x2BE1,0x0000, 0x2BE2,0x0000, 0x2BE3,0x0000, 0x2BE4,0x0000, /* A06C */ +0x2BE5,0x0000, 0x2BE6,0x0000, 0x2BE7,0x0000, 0x2BE8,0x0000, /* A070 */ +0x2BE9,0x0000, 0x2BEA,0x0000, 0x2BEB,0x0000, 0x2BEC,0x0000, /* A074 */ +0x2BED,0x0000, 0x2BEE,0x0000, 0x2BEF,0x0000, 0x2BF0,0x0000, /* A078 */ +0x2BF1,0x0000, 0x2BF2,0x0000, 0x2BF3,0x0000, 0x2BF4,0x0000, /* A07C */ +0x2BF5,0x0000, 0x2BF6,0x0000, 0x2BF7,0x0000, 0x2BF8,0x0000, /* A080 */ +0x2BF9,0x0000, 0x2BFA,0x0000, 0x2BFB,0x0000, 0x2BFC,0x0000, /* A084 */ +0x2BFD,0x0000, 0x2BFE,0x0000, 0x2BFF,0x0000, 0x2C00,0x0000, /* A088 */ +0x2C01,0x0000, 0x2C02,0x0000, 0x2C03,0x0000, 0x2C04,0x0000, /* A08C */ +0x2C05,0x0000, 0x2C06,0x0000, 0x2C07,0x0000, 0x2C08,0x0000, /* A090 */ +0x2C09,0x0000, 0x2C0A,0x0000, 0x2C0B,0x0000, 0x2C0C,0x0000, /* A094 */ +0x2C0D,0x0000, 0x2C0E,0x0000, 0x2C0F,0x0000, 0x2C10,0x0000, /* A098 */ +0x2C11,0x0000, 0x2C12,0x0000, 0x2C13,0x0000, 0x2C14,0x0000, /* A09C */ +0x2C15,0x0000, 0x2C16,0x0000, 0x2C17,0x0000, 0x2C18,0x0000, /* A0A0 */ +0x2C19,0x0000, 0x2C1A,0x0000, 0x2C1B,0x0000, 0x2C1C,0x0000, /* A0A4 */ +0x2C1D,0x0000, 0x2C1E,0x0000, 0x2C1F,0x0000, 0x2C20,0x0000, /* A0A8 */ +0x2C21,0x0000, 0x2C22,0x0000, 0x2C23,0x0000, 0x2C24,0x0000, /* A0AC */ +0x2C25,0x0000, 0x2C26,0x0000, 0x2C27,0x0000, 0x2C28,0x0000, /* A0B0 */ +0x2C29,0x0000, 0x2C2A,0x0000, 0x2C2B,0x0000, 0x2C2C,0x0000, /* A0B4 */ +0x2C2D,0x0000, 0x2C2E,0x0000, 0x2C2F,0x0000, 0x2C30,0x0000, /* A0B8 */ +0x2C31,0x0000, 0x2C32,0x0000, 0x2C33,0x0000, 0x2C34,0x0000, /* A0BC */ +0x2C35,0x0000, 0x2C36,0x0000, 0x2C37,0x0000, 0x2C38,0x0000, /* A0C0 */ +0x2C39,0x0000, 0x2C3A,0x0000, 0x2C3B,0x0000, 0x2C3C,0x0000, /* A0C4 */ +0x2C3D,0x0000, 0x2C3E,0x0000, 0x2C3F,0x0000, 0x2C40,0x0000, /* A0C8 */ +0x2C41,0x0000, 0x2C42,0x0000, 0x2C43,0x0000, 0x2C44,0x0000, /* A0CC */ +0x2C45,0x0000, 0x2C46,0x0000, 0x2C47,0x0000, 0x2C48,0x0000, /* A0D0 */ +0x2C49,0x0000, 0x2C4A,0x0000, 0x2C4B,0x0000, 0x2C4C,0x0000, /* A0D4 */ +0x2C4D,0x0000, 0x2C4E,0x0000, 0x2C4F,0x0000, 0x2C50,0x0000, /* A0D8 */ +0x2C51,0x0000, 0x2C52,0x0000, 0x2C53,0x0000, 0x2C54,0x0000, /* A0DC */ +0x2C55,0x0000, 0x2C56,0x0000, 0x2C57,0x0000, 0x2C58,0x0000, /* A0E0 */ +0x2C59,0x0000, 0x2C5A,0x0000, 0x2C5B,0x0000, 0x2C5C,0x0000, /* A0E4 */ +0x2C5D,0x0000, 0x2C5E,0x0000, 0x2C5F,0x0000, 0x2C60,0x0000, /* A0E8 */ +0x2C61,0x0000, 0x2C62,0x0000, 0x2C63,0x0000, 0x2C64,0x0000, /* A0EC */ +0x2C65,0x0000, 0x2C66,0x0000, 0x2C67,0x0000, 0x2C68,0x0000, /* A0F0 */ +0x2C69,0x0000, 0x2C6A,0x0000, 0x2C6B,0x0000, 0x2C6C,0x0000, /* A0F4 */ +0x2C6D,0x0000, 0x2C6E,0x0000, 0x2C6F,0x0000, 0x2C70,0x0000, /* A0F8 */ +0x2C71,0x0000, 0x2C72,0x0000, 0x2C73,0x0000, 0x2C74,0x0000 /* A0FC */ +}; + +static const uint16 uca520_p0A1[]= { /* A100 (2 weights per char) */ +0x2C75,0x0000, 0x2C76,0x0000, 0x2C77,0x0000, 0x2C78,0x0000, /* A100 */ +0x2C79,0x0000, 0x2C7A,0x0000, 0x2C7B,0x0000, 0x2C7C,0x0000, /* A104 */ +0x2C7D,0x0000, 0x2C7E,0x0000, 0x2C7F,0x0000, 0x2C80,0x0000, /* A108 */ +0x2C81,0x0000, 0x2C82,0x0000, 0x2C83,0x0000, 0x2C84,0x0000, /* A10C */ +0x2C85,0x0000, 0x2C86,0x0000, 0x2C87,0x0000, 0x2C88,0x0000, /* A110 */ +0x2C89,0x0000, 0x2C8A,0x0000, 0x2C8B,0x0000, 0x2C8C,0x0000, /* A114 */ +0x2C8D,0x0000, 0x2C8E,0x0000, 0x2C8F,0x0000, 0x2C90,0x0000, /* A118 */ +0x2C91,0x0000, 0x2C92,0x0000, 0x2C93,0x0000, 0x2C94,0x0000, /* A11C */ +0x2C95,0x0000, 0x2C96,0x0000, 0x2C97,0x0000, 0x2C98,0x0000, /* A120 */ +0x2C99,0x0000, 0x2C9A,0x0000, 0x2C9B,0x0000, 0x2C9C,0x0000, /* A124 */ +0x2C9D,0x0000, 0x2C9E,0x0000, 0x2C9F,0x0000, 0x2CA0,0x0000, /* A128 */ +0x2CA1,0x0000, 0x2CA2,0x0000, 0x2CA3,0x0000, 0x2CA4,0x0000, /* A12C */ +0x2CA5,0x0000, 0x2CA6,0x0000, 0x2CA7,0x0000, 0x2CA8,0x0000, /* A130 */ +0x2CA9,0x0000, 0x2CAA,0x0000, 0x2CAB,0x0000, 0x2CAC,0x0000, /* A134 */ +0x2CAD,0x0000, 0x2CAE,0x0000, 0x2CAF,0x0000, 0x2CB0,0x0000, /* A138 */ +0x2CB1,0x0000, 0x2CB2,0x0000, 0x2CB3,0x0000, 0x2CB4,0x0000, /* A13C */ +0x2CB5,0x0000, 0x2CB6,0x0000, 0x2CB7,0x0000, 0x2CB8,0x0000, /* A140 */ +0x2CB9,0x0000, 0x2CBA,0x0000, 0x2CBB,0x0000, 0x2CBC,0x0000, /* A144 */ +0x2CBD,0x0000, 0x2CBE,0x0000, 0x2CBF,0x0000, 0x2CC0,0x0000, /* A148 */ +0x2CC1,0x0000, 0x2CC2,0x0000, 0x2CC3,0x0000, 0x2CC4,0x0000, /* A14C */ +0x2CC5,0x0000, 0x2CC6,0x0000, 0x2CC7,0x0000, 0x2CC8,0x0000, /* A150 */ +0x2CC9,0x0000, 0x2CCA,0x0000, 0x2CCB,0x0000, 0x2CCC,0x0000, /* A154 */ +0x2CCD,0x0000, 0x2CCE,0x0000, 0x2CCF,0x0000, 0x2CD0,0x0000, /* A158 */ +0x2CD1,0x0000, 0x2CD2,0x0000, 0x2CD3,0x0000, 0x2CD4,0x0000, /* A15C */ +0x2CD5,0x0000, 0x2CD6,0x0000, 0x2CD7,0x0000, 0x2CD8,0x0000, /* A160 */ +0x2CD9,0x0000, 0x2CDA,0x0000, 0x2CDB,0x0000, 0x2CDC,0x0000, /* A164 */ +0x2CDD,0x0000, 0x2CDE,0x0000, 0x2CDF,0x0000, 0x2CE0,0x0000, /* A168 */ +0x2CE1,0x0000, 0x2CE2,0x0000, 0x2CE3,0x0000, 0x2CE4,0x0000, /* A16C */ +0x2CE5,0x0000, 0x2CE6,0x0000, 0x2CE7,0x0000, 0x2CE8,0x0000, /* A170 */ +0x2CE9,0x0000, 0x2CEA,0x0000, 0x2CEB,0x0000, 0x2CEC,0x0000, /* A174 */ +0x2CED,0x0000, 0x2CEE,0x0000, 0x2CEF,0x0000, 0x2CF0,0x0000, /* A178 */ +0x2CF1,0x0000, 0x2CF2,0x0000, 0x2CF3,0x0000, 0x2CF4,0x0000, /* A17C */ +0x2CF5,0x0000, 0x2CF6,0x0000, 0x2CF7,0x0000, 0x2CF8,0x0000, /* A180 */ +0x2CF9,0x0000, 0x2CFA,0x0000, 0x2CFB,0x0000, 0x2CFC,0x0000, /* A184 */ +0x2CFD,0x0000, 0x2CFE,0x0000, 0x2CFF,0x0000, 0x2D00,0x0000, /* A188 */ +0x2D01,0x0000, 0x2D02,0x0000, 0x2D03,0x0000, 0x2D04,0x0000, /* A18C */ +0x2D05,0x0000, 0x2D06,0x0000, 0x2D07,0x0000, 0x2D08,0x0000, /* A190 */ +0x2D09,0x0000, 0x2D0A,0x0000, 0x2D0B,0x0000, 0x2D0C,0x0000, /* A194 */ +0x2D0D,0x0000, 0x2D0E,0x0000, 0x2D0F,0x0000, 0x2D10,0x0000, /* A198 */ +0x2D11,0x0000, 0x2D12,0x0000, 0x2D13,0x0000, 0x2D14,0x0000, /* A19C */ +0x2D15,0x0000, 0x2D16,0x0000, 0x2D17,0x0000, 0x2D18,0x0000, /* A1A0 */ +0x2D19,0x0000, 0x2D1A,0x0000, 0x2D1B,0x0000, 0x2D1C,0x0000, /* A1A4 */ +0x2D1D,0x0000, 0x2D1E,0x0000, 0x2D1F,0x0000, 0x2D20,0x0000, /* A1A8 */ +0x2D21,0x0000, 0x2D22,0x0000, 0x2D23,0x0000, 0x2D24,0x0000, /* A1AC */ +0x2D25,0x0000, 0x2D26,0x0000, 0x2D27,0x0000, 0x2D28,0x0000, /* A1B0 */ +0x2D29,0x0000, 0x2D2A,0x0000, 0x2D2B,0x0000, 0x2D2C,0x0000, /* A1B4 */ +0x2D2D,0x0000, 0x2D2E,0x0000, 0x2D2F,0x0000, 0x2D30,0x0000, /* A1B8 */ +0x2D31,0x0000, 0x2D32,0x0000, 0x2D33,0x0000, 0x2D34,0x0000, /* A1BC */ +0x2D35,0x0000, 0x2D36,0x0000, 0x2D37,0x0000, 0x2D38,0x0000, /* A1C0 */ +0x2D39,0x0000, 0x2D3A,0x0000, 0x2D3B,0x0000, 0x2D3C,0x0000, /* A1C4 */ +0x2D3D,0x0000, 0x2D3E,0x0000, 0x2D3F,0x0000, 0x2D40,0x0000, /* A1C8 */ +0x2D41,0x0000, 0x2D42,0x0000, 0x2D43,0x0000, 0x2D44,0x0000, /* A1CC */ +0x2D45,0x0000, 0x2D46,0x0000, 0x2D47,0x0000, 0x2D48,0x0000, /* A1D0 */ +0x2D49,0x0000, 0x2D4A,0x0000, 0x2D4B,0x0000, 0x2D4C,0x0000, /* A1D4 */ +0x2D4D,0x0000, 0x2D4E,0x0000, 0x2D4F,0x0000, 0x2D50,0x0000, /* A1D8 */ +0x2D51,0x0000, 0x2D52,0x0000, 0x2D53,0x0000, 0x2D54,0x0000, /* A1DC */ +0x2D55,0x0000, 0x2D56,0x0000, 0x2D57,0x0000, 0x2D58,0x0000, /* A1E0 */ +0x2D59,0x0000, 0x2D5A,0x0000, 0x2D5B,0x0000, 0x2D5C,0x0000, /* A1E4 */ +0x2D5D,0x0000, 0x2D5E,0x0000, 0x2D5F,0x0000, 0x2D60,0x0000, /* A1E8 */ +0x2D61,0x0000, 0x2D62,0x0000, 0x2D63,0x0000, 0x2D64,0x0000, /* A1EC */ +0x2D65,0x0000, 0x2D66,0x0000, 0x2D67,0x0000, 0x2D68,0x0000, /* A1F0 */ +0x2D69,0x0000, 0x2D6A,0x0000, 0x2D6B,0x0000, 0x2D6C,0x0000, /* A1F4 */ +0x2D6D,0x0000, 0x2D6E,0x0000, 0x2D6F,0x0000, 0x2D70,0x0000, /* A1F8 */ +0x2D71,0x0000, 0x2D72,0x0000, 0x2D73,0x0000, 0x2D74,0x0000 /* A1FC */ +}; + +static const uint16 uca520_p0A2[]= { /* A200 (2 weights per char) */ +0x2D75,0x0000, 0x2D76,0x0000, 0x2D77,0x0000, 0x2D78,0x0000, /* A200 */ +0x2D79,0x0000, 0x2D7A,0x0000, 0x2D7B,0x0000, 0x2D7C,0x0000, /* A204 */ +0x2D7D,0x0000, 0x2D7E,0x0000, 0x2D7F,0x0000, 0x2D80,0x0000, /* A208 */ +0x2D81,0x0000, 0x2D82,0x0000, 0x2D83,0x0000, 0x2D84,0x0000, /* A20C */ +0x2D85,0x0000, 0x2D86,0x0000, 0x2D87,0x0000, 0x2D88,0x0000, /* A210 */ +0x2D89,0x0000, 0x2D8A,0x0000, 0x2D8B,0x0000, 0x2D8C,0x0000, /* A214 */ +0x2D8D,0x0000, 0x2D8E,0x0000, 0x2D8F,0x0000, 0x2D90,0x0000, /* A218 */ +0x2D91,0x0000, 0x2D92,0x0000, 0x2D93,0x0000, 0x2D94,0x0000, /* A21C */ +0x2D95,0x0000, 0x2D96,0x0000, 0x2D97,0x0000, 0x2D98,0x0000, /* A220 */ +0x2D99,0x0000, 0x2D9A,0x0000, 0x2D9B,0x0000, 0x2D9C,0x0000, /* A224 */ +0x2D9D,0x0000, 0x2D9E,0x0000, 0x2D9F,0x0000, 0x2DA0,0x0000, /* A228 */ +0x2DA1,0x0000, 0x2DA2,0x0000, 0x2DA3,0x0000, 0x2DA4,0x0000, /* A22C */ +0x2DA5,0x0000, 0x2DA6,0x0000, 0x2DA7,0x0000, 0x2DA8,0x0000, /* A230 */ +0x2DA9,0x0000, 0x2DAA,0x0000, 0x2DAB,0x0000, 0x2DAC,0x0000, /* A234 */ +0x2DAD,0x0000, 0x2DAE,0x0000, 0x2DAF,0x0000, 0x2DB0,0x0000, /* A238 */ +0x2DB1,0x0000, 0x2DB2,0x0000, 0x2DB3,0x0000, 0x2DB4,0x0000, /* A23C */ +0x2DB5,0x0000, 0x2DB6,0x0000, 0x2DB7,0x0000, 0x2DB8,0x0000, /* A240 */ +0x2DB9,0x0000, 0x2DBA,0x0000, 0x2DBB,0x0000, 0x2DBC,0x0000, /* A244 */ +0x2DBD,0x0000, 0x2DBE,0x0000, 0x2DBF,0x0000, 0x2DC0,0x0000, /* A248 */ +0x2DC1,0x0000, 0x2DC2,0x0000, 0x2DC3,0x0000, 0x2DC4,0x0000, /* A24C */ +0x2DC5,0x0000, 0x2DC6,0x0000, 0x2DC7,0x0000, 0x2DC8,0x0000, /* A250 */ +0x2DC9,0x0000, 0x2DCA,0x0000, 0x2DCB,0x0000, 0x2DCC,0x0000, /* A254 */ +0x2DCD,0x0000, 0x2DCE,0x0000, 0x2DCF,0x0000, 0x2DD0,0x0000, /* A258 */ +0x2DD1,0x0000, 0x2DD2,0x0000, 0x2DD3,0x0000, 0x2DD4,0x0000, /* A25C */ +0x2DD5,0x0000, 0x2DD6,0x0000, 0x2DD7,0x0000, 0x2DD8,0x0000, /* A260 */ +0x2DD9,0x0000, 0x2DDA,0x0000, 0x2DDB,0x0000, 0x2DDC,0x0000, /* A264 */ +0x2DDD,0x0000, 0x2DDE,0x0000, 0x2DDF,0x0000, 0x2DE0,0x0000, /* A268 */ +0x2DE1,0x0000, 0x2DE2,0x0000, 0x2DE3,0x0000, 0x2DE4,0x0000, /* A26C */ +0x2DE5,0x0000, 0x2DE6,0x0000, 0x2DE7,0x0000, 0x2DE8,0x0000, /* A270 */ +0x2DE9,0x0000, 0x2DEA,0x0000, 0x2DEB,0x0000, 0x2DEC,0x0000, /* A274 */ +0x2DED,0x0000, 0x2DEE,0x0000, 0x2DEF,0x0000, 0x2DF0,0x0000, /* A278 */ +0x2DF1,0x0000, 0x2DF2,0x0000, 0x2DF3,0x0000, 0x2DF4,0x0000, /* A27C */ +0x2DF5,0x0000, 0x2DF6,0x0000, 0x2DF7,0x0000, 0x2DF8,0x0000, /* A280 */ +0x2DF9,0x0000, 0x2DFA,0x0000, 0x2DFB,0x0000, 0x2DFC,0x0000, /* A284 */ +0x2DFD,0x0000, 0x2DFE,0x0000, 0x2DFF,0x0000, 0x2E00,0x0000, /* A288 */ +0x2E01,0x0000, 0x2E02,0x0000, 0x2E03,0x0000, 0x2E04,0x0000, /* A28C */ +0x2E05,0x0000, 0x2E06,0x0000, 0x2E07,0x0000, 0x2E08,0x0000, /* A290 */ +0x2E09,0x0000, 0x2E0A,0x0000, 0x2E0B,0x0000, 0x2E0C,0x0000, /* A294 */ +0x2E0D,0x0000, 0x2E0E,0x0000, 0x2E0F,0x0000, 0x2E10,0x0000, /* A298 */ +0x2E11,0x0000, 0x2E12,0x0000, 0x2E13,0x0000, 0x2E14,0x0000, /* A29C */ +0x2E15,0x0000, 0x2E16,0x0000, 0x2E17,0x0000, 0x2E18,0x0000, /* A2A0 */ +0x2E19,0x0000, 0x2E1A,0x0000, 0x2E1B,0x0000, 0x2E1C,0x0000, /* A2A4 */ +0x2E1D,0x0000, 0x2E1E,0x0000, 0x2E1F,0x0000, 0x2E20,0x0000, /* A2A8 */ +0x2E21,0x0000, 0x2E22,0x0000, 0x2E23,0x0000, 0x2E24,0x0000, /* A2AC */ +0x2E25,0x0000, 0x2E26,0x0000, 0x2E27,0x0000, 0x2E28,0x0000, /* A2B0 */ +0x2E29,0x0000, 0x2E2A,0x0000, 0x2E2B,0x0000, 0x2E2C,0x0000, /* A2B4 */ +0x2E2D,0x0000, 0x2E2E,0x0000, 0x2E2F,0x0000, 0x2E30,0x0000, /* A2B8 */ +0x2E31,0x0000, 0x2E32,0x0000, 0x2E33,0x0000, 0x2E34,0x0000, /* A2BC */ +0x2E35,0x0000, 0x2E36,0x0000, 0x2E37,0x0000, 0x2E38,0x0000, /* A2C0 */ +0x2E39,0x0000, 0x2E3A,0x0000, 0x2E3B,0x0000, 0x2E3C,0x0000, /* A2C4 */ +0x2E3D,0x0000, 0x2E3E,0x0000, 0x2E3F,0x0000, 0x2E40,0x0000, /* A2C8 */ +0x2E41,0x0000, 0x2E42,0x0000, 0x2E43,0x0000, 0x2E44,0x0000, /* A2CC */ +0x2E45,0x0000, 0x2E46,0x0000, 0x2E47,0x0000, 0x2E48,0x0000, /* A2D0 */ +0x2E49,0x0000, 0x2E4A,0x0000, 0x2E4B,0x0000, 0x2E4C,0x0000, /* A2D4 */ +0x2E4D,0x0000, 0x2E4E,0x0000, 0x2E4F,0x0000, 0x2E50,0x0000, /* A2D8 */ +0x2E51,0x0000, 0x2E52,0x0000, 0x2E53,0x0000, 0x2E54,0x0000, /* A2DC */ +0x2E55,0x0000, 0x2E56,0x0000, 0x2E57,0x0000, 0x2E58,0x0000, /* A2E0 */ +0x2E59,0x0000, 0x2E5A,0x0000, 0x2E5B,0x0000, 0x2E5C,0x0000, /* A2E4 */ +0x2E5D,0x0000, 0x2E5E,0x0000, 0x2E5F,0x0000, 0x2E60,0x0000, /* A2E8 */ +0x2E61,0x0000, 0x2E62,0x0000, 0x2E63,0x0000, 0x2E64,0x0000, /* A2EC */ +0x2E65,0x0000, 0x2E66,0x0000, 0x2E67,0x0000, 0x2E68,0x0000, /* A2F0 */ +0x2E69,0x0000, 0x2E6A,0x0000, 0x2E6B,0x0000, 0x2E6C,0x0000, /* A2F4 */ +0x2E6D,0x0000, 0x2E6E,0x0000, 0x2E6F,0x0000, 0x2E70,0x0000, /* A2F8 */ +0x2E71,0x0000, 0x2E72,0x0000, 0x2E73,0x0000, 0x2E74,0x0000 /* A2FC */ +}; + +static const uint16 uca520_p0A3[]= { /* A300 (2 weights per char) */ +0x2E75,0x0000, 0x2E76,0x0000, 0x2E77,0x0000, 0x2E78,0x0000, /* A300 */ +0x2E79,0x0000, 0x2E7A,0x0000, 0x2E7B,0x0000, 0x2E7C,0x0000, /* A304 */ +0x2E7D,0x0000, 0x2E7E,0x0000, 0x2E7F,0x0000, 0x2E80,0x0000, /* A308 */ +0x2E81,0x0000, 0x2E82,0x0000, 0x2E83,0x0000, 0x2E84,0x0000, /* A30C */ +0x2E85,0x0000, 0x2E86,0x0000, 0x2E87,0x0000, 0x2E88,0x0000, /* A310 */ +0x2E89,0x0000, 0x2E8A,0x0000, 0x2E8B,0x0000, 0x2E8C,0x0000, /* A314 */ +0x2E8D,0x0000, 0x2E8E,0x0000, 0x2E8F,0x0000, 0x2E90,0x0000, /* A318 */ +0x2E91,0x0000, 0x2E92,0x0000, 0x2E93,0x0000, 0x2E94,0x0000, /* A31C */ +0x2E95,0x0000, 0x2E96,0x0000, 0x2E97,0x0000, 0x2E98,0x0000, /* A320 */ +0x2E99,0x0000, 0x2E9A,0x0000, 0x2E9B,0x0000, 0x2E9C,0x0000, /* A324 */ +0x2E9D,0x0000, 0x2E9E,0x0000, 0x2E9F,0x0000, 0x2EA0,0x0000, /* A328 */ +0x2EA1,0x0000, 0x2EA2,0x0000, 0x2EA3,0x0000, 0x2EA4,0x0000, /* A32C */ +0x2EA5,0x0000, 0x2EA6,0x0000, 0x2EA7,0x0000, 0x2EA8,0x0000, /* A330 */ +0x2EA9,0x0000, 0x2EAA,0x0000, 0x2EAB,0x0000, 0x2EAC,0x0000, /* A334 */ +0x2EAD,0x0000, 0x2EAE,0x0000, 0x2EAF,0x0000, 0x2EB0,0x0000, /* A338 */ +0x2EB1,0x0000, 0x2EB2,0x0000, 0x2EB3,0x0000, 0x2EB4,0x0000, /* A33C */ +0x2EB5,0x0000, 0x2EB6,0x0000, 0x2EB7,0x0000, 0x2EB8,0x0000, /* A340 */ +0x2EB9,0x0000, 0x2EBA,0x0000, 0x2EBB,0x0000, 0x2EBC,0x0000, /* A344 */ +0x2EBD,0x0000, 0x2EBE,0x0000, 0x2EBF,0x0000, 0x2EC0,0x0000, /* A348 */ +0x2EC1,0x0000, 0x2EC2,0x0000, 0x2EC3,0x0000, 0x2EC4,0x0000, /* A34C */ +0x2EC5,0x0000, 0x2EC6,0x0000, 0x2EC7,0x0000, 0x2EC8,0x0000, /* A350 */ +0x2EC9,0x0000, 0x2ECA,0x0000, 0x2ECB,0x0000, 0x2ECC,0x0000, /* A354 */ +0x2ECD,0x0000, 0x2ECE,0x0000, 0x2ECF,0x0000, 0x2ED0,0x0000, /* A358 */ +0x2ED1,0x0000, 0x2ED2,0x0000, 0x2ED3,0x0000, 0x2ED4,0x0000, /* A35C */ +0x2ED5,0x0000, 0x2ED6,0x0000, 0x2ED7,0x0000, 0x2ED8,0x0000, /* A360 */ +0x2ED9,0x0000, 0x2EDA,0x0000, 0x2EDB,0x0000, 0x2EDC,0x0000, /* A364 */ +0x2EDD,0x0000, 0x2EDE,0x0000, 0x2EDF,0x0000, 0x2EE0,0x0000, /* A368 */ +0x2EE1,0x0000, 0x2EE2,0x0000, 0x2EE3,0x0000, 0x2EE4,0x0000, /* A36C */ +0x2EE5,0x0000, 0x2EE6,0x0000, 0x2EE7,0x0000, 0x2EE8,0x0000, /* A370 */ +0x2EE9,0x0000, 0x2EEA,0x0000, 0x2EEB,0x0000, 0x2EEC,0x0000, /* A374 */ +0x2EED,0x0000, 0x2EEE,0x0000, 0x2EEF,0x0000, 0x2EF0,0x0000, /* A378 */ +0x2EF1,0x0000, 0x2EF2,0x0000, 0x2EF3,0x0000, 0x2EF4,0x0000, /* A37C */ +0x2EF5,0x0000, 0x2EF6,0x0000, 0x2EF7,0x0000, 0x2EF8,0x0000, /* A380 */ +0x2EF9,0x0000, 0x2EFA,0x0000, 0x2EFB,0x0000, 0x2EFC,0x0000, /* A384 */ +0x2EFD,0x0000, 0x2EFE,0x0000, 0x2EFF,0x0000, 0x2F00,0x0000, /* A388 */ +0x2F01,0x0000, 0x2F02,0x0000, 0x2F03,0x0000, 0x2F04,0x0000, /* A38C */ +0x2F05,0x0000, 0x2F06,0x0000, 0x2F07,0x0000, 0x2F08,0x0000, /* A390 */ +0x2F09,0x0000, 0x2F0A,0x0000, 0x2F0B,0x0000, 0x2F0C,0x0000, /* A394 */ +0x2F0D,0x0000, 0x2F0E,0x0000, 0x2F0F,0x0000, 0x2F10,0x0000, /* A398 */ +0x2F11,0x0000, 0x2F12,0x0000, 0x2F13,0x0000, 0x2F14,0x0000, /* A39C */ +0x2F15,0x0000, 0x2F16,0x0000, 0x2F17,0x0000, 0x2F18,0x0000, /* A3A0 */ +0x2F19,0x0000, 0x2F1A,0x0000, 0x2F1B,0x0000, 0x2F1C,0x0000, /* A3A4 */ +0x2F1D,0x0000, 0x2F1E,0x0000, 0x2F1F,0x0000, 0x2F20,0x0000, /* A3A8 */ +0x2F21,0x0000, 0x2F22,0x0000, 0x2F23,0x0000, 0x2F24,0x0000, /* A3AC */ +0x2F25,0x0000, 0x2F26,0x0000, 0x2F27,0x0000, 0x2F28,0x0000, /* A3B0 */ +0x2F29,0x0000, 0x2F2A,0x0000, 0x2F2B,0x0000, 0x2F2C,0x0000, /* A3B4 */ +0x2F2D,0x0000, 0x2F2E,0x0000, 0x2F2F,0x0000, 0x2F30,0x0000, /* A3B8 */ +0x2F31,0x0000, 0x2F32,0x0000, 0x2F33,0x0000, 0x2F34,0x0000, /* A3BC */ +0x2F35,0x0000, 0x2F36,0x0000, 0x2F37,0x0000, 0x2F38,0x0000, /* A3C0 */ +0x2F39,0x0000, 0x2F3A,0x0000, 0x2F3B,0x0000, 0x2F3C,0x0000, /* A3C4 */ +0x2F3D,0x0000, 0x2F3E,0x0000, 0x2F3F,0x0000, 0x2F40,0x0000, /* A3C8 */ +0x2F41,0x0000, 0x2F42,0x0000, 0x2F43,0x0000, 0x2F44,0x0000, /* A3CC */ +0x2F45,0x0000, 0x2F46,0x0000, 0x2F47,0x0000, 0x2F48,0x0000, /* A3D0 */ +0x2F49,0x0000, 0x2F4A,0x0000, 0x2F4B,0x0000, 0x2F4C,0x0000, /* A3D4 */ +0x2F4D,0x0000, 0x2F4E,0x0000, 0x2F4F,0x0000, 0x2F50,0x0000, /* A3D8 */ +0x2F51,0x0000, 0x2F52,0x0000, 0x2F53,0x0000, 0x2F54,0x0000, /* A3DC */ +0x2F55,0x0000, 0x2F56,0x0000, 0x2F57,0x0000, 0x2F58,0x0000, /* A3E0 */ +0x2F59,0x0000, 0x2F5A,0x0000, 0x2F5B,0x0000, 0x2F5C,0x0000, /* A3E4 */ +0x2F5D,0x0000, 0x2F5E,0x0000, 0x2F5F,0x0000, 0x2F60,0x0000, /* A3E8 */ +0x2F61,0x0000, 0x2F62,0x0000, 0x2F63,0x0000, 0x2F64,0x0000, /* A3EC */ +0x2F65,0x0000, 0x2F66,0x0000, 0x2F67,0x0000, 0x2F68,0x0000, /* A3F0 */ +0x2F69,0x0000, 0x2F6A,0x0000, 0x2F6B,0x0000, 0x2F6C,0x0000, /* A3F4 */ +0x2F6D,0x0000, 0x2F6E,0x0000, 0x2F6F,0x0000, 0x2F70,0x0000, /* A3F8 */ +0x2F71,0x0000, 0x2F72,0x0000, 0x2F73,0x0000, 0x2F74,0x0000 /* A3FC */ +}; + +static const uint16 uca520_p0A4[]= { /* A400 (3 weights per char) */ +0x2F75,0x0000,0x0000, 0x2F76,0x0000,0x0000, 0x2F77,0x0000,0x0000, /* A400 */ +0x2F78,0x0000,0x0000, 0x2F79,0x0000,0x0000, 0x2F7A,0x0000,0x0000, /* A403 */ +0x2F7B,0x0000,0x0000, 0x2F7C,0x0000,0x0000, 0x2F7D,0x0000,0x0000, /* A406 */ +0x2F7E,0x0000,0x0000, 0x2F7F,0x0000,0x0000, 0x2F80,0x0000,0x0000, /* A409 */ +0x2F81,0x0000,0x0000, 0x2F82,0x0000,0x0000, 0x2F83,0x0000,0x0000, /* A40C */ +0x2F84,0x0000,0x0000, 0x2F85,0x0000,0x0000, 0x2F86,0x0000,0x0000, /* A40F */ +0x2F87,0x0000,0x0000, 0x2F88,0x0000,0x0000, 0x2F89,0x0000,0x0000, /* A412 */ +0x2F8A,0x0000,0x0000, 0x2F8B,0x0000,0x0000, 0x2F8C,0x0000,0x0000, /* A415 */ +0x2F8D,0x0000,0x0000, 0x2F8E,0x0000,0x0000, 0x2F8F,0x0000,0x0000, /* A418 */ +0x2F90,0x0000,0x0000, 0x2F91,0x0000,0x0000, 0x2F92,0x0000,0x0000, /* A41B */ +0x2F93,0x0000,0x0000, 0x2F94,0x0000,0x0000, 0x2F95,0x0000,0x0000, /* A41E */ +0x2F96,0x0000,0x0000, 0x2F97,0x0000,0x0000, 0x2F98,0x0000,0x0000, /* A421 */ +0x2F99,0x0000,0x0000, 0x2F9A,0x0000,0x0000, 0x2F9B,0x0000,0x0000, /* A424 */ +0x2F9C,0x0000,0x0000, 0x2F9D,0x0000,0x0000, 0x2F9E,0x0000,0x0000, /* A427 */ +0x2F9F,0x0000,0x0000, 0x2FA0,0x0000,0x0000, 0x2FA1,0x0000,0x0000, /* A42A */ +0x2FA2,0x0000,0x0000, 0x2FA3,0x0000,0x0000, 0x2FA4,0x0000,0x0000, /* A42D */ +0x2FA5,0x0000,0x0000, 0x2FA6,0x0000,0x0000, 0x2FA7,0x0000,0x0000, /* A430 */ +0x2FA8,0x0000,0x0000, 0x2FA9,0x0000,0x0000, 0x2FAA,0x0000,0x0000, /* A433 */ +0x2FAB,0x0000,0x0000, 0x2FAC,0x0000,0x0000, 0x2FAD,0x0000,0x0000, /* A436 */ +0x2FAE,0x0000,0x0000, 0x2FAF,0x0000,0x0000, 0x2FB0,0x0000,0x0000, /* A439 */ +0x2FB1,0x0000,0x0000, 0x2FB2,0x0000,0x0000, 0x2FB3,0x0000,0x0000, /* A43C */ +0x2FB4,0x0000,0x0000, 0x2FB5,0x0000,0x0000, 0x2FB6,0x0000,0x0000, /* A43F */ +0x2FB7,0x0000,0x0000, 0x2FB8,0x0000,0x0000, 0x2FB9,0x0000,0x0000, /* A442 */ +0x2FBA,0x0000,0x0000, 0x2FBB,0x0000,0x0000, 0x2FBC,0x0000,0x0000, /* A445 */ +0x2FBD,0x0000,0x0000, 0x2FBE,0x0000,0x0000, 0x2FBF,0x0000,0x0000, /* A448 */ +0x2FC0,0x0000,0x0000, 0x2FC1,0x0000,0x0000, 0x2FC2,0x0000,0x0000, /* A44B */ +0x2FC3,0x0000,0x0000, 0x2FC4,0x0000,0x0000, 0x2FC5,0x0000,0x0000, /* A44E */ +0x2FC6,0x0000,0x0000, 0x2FC7,0x0000,0x0000, 0x2FC8,0x0000,0x0000, /* A451 */ +0x2FC9,0x0000,0x0000, 0x2FCA,0x0000,0x0000, 0x2FCB,0x0000,0x0000, /* A454 */ +0x2FCC,0x0000,0x0000, 0x2FCD,0x0000,0x0000, 0x2FCE,0x0000,0x0000, /* A457 */ +0x2FCF,0x0000,0x0000, 0x2FD0,0x0000,0x0000, 0x2FD1,0x0000,0x0000, /* A45A */ +0x2FD2,0x0000,0x0000, 0x2FD3,0x0000,0x0000, 0x2FD4,0x0000,0x0000, /* A45D */ +0x2FD5,0x0000,0x0000, 0x2FD6,0x0000,0x0000, 0x2FD7,0x0000,0x0000, /* A460 */ +0x2FD8,0x0000,0x0000, 0x2FD9,0x0000,0x0000, 0x2FDA,0x0000,0x0000, /* A463 */ +0x2FDB,0x0000,0x0000, 0x2FDC,0x0000,0x0000, 0x2FDD,0x0000,0x0000, /* A466 */ +0x2FDE,0x0000,0x0000, 0x2FDF,0x0000,0x0000, 0x2FE0,0x0000,0x0000, /* A469 */ +0x2FE1,0x0000,0x0000, 0x2FE2,0x0000,0x0000, 0x2FE3,0x0000,0x0000, /* A46C */ +0x2FE4,0x0000,0x0000, 0x2FE5,0x0000,0x0000, 0x2FE6,0x0000,0x0000, /* A46F */ +0x2FE7,0x0000,0x0000, 0x2FE8,0x0000,0x0000, 0x2FE9,0x0000,0x0000, /* A472 */ +0x2FEA,0x0000,0x0000, 0x2FEB,0x0000,0x0000, 0x2FEC,0x0000,0x0000, /* A475 */ +0x2FED,0x0000,0x0000, 0x2FEE,0x0000,0x0000, 0x2FEF,0x0000,0x0000, /* A478 */ +0x2FF0,0x0000,0x0000, 0x2FF1,0x0000,0x0000, 0x2FF2,0x0000,0x0000, /* A47B */ +0x2FF3,0x0000,0x0000, 0x2FF4,0x0000,0x0000, 0x2FF5,0x0000,0x0000, /* A47E */ +0x2FF6,0x0000,0x0000, 0x2FF7,0x0000,0x0000, 0x2FF8,0x0000,0x0000, /* A481 */ +0x2FF9,0x0000,0x0000, 0x2FFA,0x0000,0x0000, 0x2FFB,0x0000,0x0000, /* A484 */ +0x2FFC,0x0000,0x0000, 0x2FFD,0x0000,0x0000, 0x2FFE,0x0000,0x0000, /* A487 */ +0x2FFF,0x0000,0x0000, 0x3000,0x0000,0x0000, 0x3001,0x0000,0x0000, /* A48A */ +0xFBC1,0xA48D,0x0000, 0xFBC1,0xA48E,0x0000, 0xFBC1,0xA48F,0x0000, /* A48D */ +0x0DD5,0x0000,0x0000, 0x0DD6,0x0000,0x0000, 0x0DD7,0x0000,0x0000, /* A490 */ +0x0DD8,0x0000,0x0000, 0x0DD9,0x0000,0x0000, 0x0DDA,0x0000,0x0000, /* A493 */ +0x0DDB,0x0000,0x0000, 0x0DDC,0x0000,0x0000, 0x0DDD,0x0000,0x0000, /* A496 */ +0x0DDE,0x0000,0x0000, 0x0DDF,0x0000,0x0000, 0x0DE0,0x0000,0x0000, /* A499 */ +0x0DE1,0x0000,0x0000, 0x0DE2,0x0000,0x0000, 0x0DE3,0x0000,0x0000, /* A49C */ +0x0DE4,0x0000,0x0000, 0x0DE5,0x0000,0x0000, 0x0DE6,0x0000,0x0000, /* A49F */ +0x0DE7,0x0000,0x0000, 0x0DE8,0x0000,0x0000, 0x0DE9,0x0000,0x0000, /* A4A2 */ +0x0DEA,0x0000,0x0000, 0x0DEB,0x0000,0x0000, 0x0DEC,0x0000,0x0000, /* A4A5 */ +0x0DED,0x0000,0x0000, 0x0DEE,0x0000,0x0000, 0x0DEF,0x0000,0x0000, /* A4A8 */ +0x0DF0,0x0000,0x0000, 0x0DF1,0x0000,0x0000, 0x0DF2,0x0000,0x0000, /* A4AB */ +0x0DF3,0x0000,0x0000, 0x0DF4,0x0000,0x0000, 0x0DF5,0x0000,0x0000, /* A4AE */ +0x0DF6,0x0000,0x0000, 0x0DF7,0x0000,0x0000, 0x0DF8,0x0000,0x0000, /* A4B1 */ +0x0DF9,0x0000,0x0000, 0x0DFA,0x0000,0x0000, 0x0DFB,0x0000,0x0000, /* A4B4 */ +0x0DFC,0x0000,0x0000, 0x0DFD,0x0000,0x0000, 0x0DFE,0x0000,0x0000, /* A4B7 */ +0x0DFF,0x0000,0x0000, 0x0E00,0x0000,0x0000, 0x0E01,0x0000,0x0000, /* A4BA */ +0x0E02,0x0000,0x0000, 0x0E03,0x0000,0x0000, 0x0E04,0x0000,0x0000, /* A4BD */ +0x0E05,0x0000,0x0000, 0x0E06,0x0000,0x0000, 0x0E07,0x0000,0x0000, /* A4C0 */ +0x0E08,0x0000,0x0000, 0x0E09,0x0000,0x0000, 0x0E0A,0x0000,0x0000, /* A4C3 */ +0x0E0B,0x0000,0x0000, 0xFBC1,0xA4C7,0x0000, 0xFBC1,0xA4C8,0x0000, /* A4C6 */ +0xFBC1,0xA4C9,0x0000, 0xFBC1,0xA4CA,0x0000, 0xFBC1,0xA4CB,0x0000, /* A4C9 */ +0xFBC1,0xA4CC,0x0000, 0xFBC1,0xA4CD,0x0000, 0xFBC1,0xA4CE,0x0000, /* A4CC */ +0xFBC1,0xA4CF,0x0000, 0x3008,0x0000,0x0000, 0x3009,0x0000,0x0000, /* A4CF */ +0x300A,0x0000,0x0000, 0x300B,0x0000,0x0000, 0x300C,0x0000,0x0000, /* A4D2 */ +0x300D,0x0000,0x0000, 0x300E,0x0000,0x0000, 0x300F,0x0000,0x0000, /* A4D5 */ +0x3010,0x0000,0x0000, 0x3011,0x0000,0x0000, 0x3012,0x0000,0x0000, /* A4D8 */ +0x3013,0x0000,0x0000, 0x3014,0x0000,0x0000, 0x3015,0x0000,0x0000, /* A4DB */ +0x3016,0x0000,0x0000, 0x3017,0x0000,0x0000, 0x3018,0x0000,0x0000, /* A4DE */ +0x3019,0x0000,0x0000, 0x301A,0x0000,0x0000, 0x301B,0x0000,0x0000, /* A4E1 */ +0x301C,0x0000,0x0000, 0x301D,0x0000,0x0000, 0x301E,0x0000,0x0000, /* A4E4 */ +0x301F,0x0000,0x0000, 0x3020,0x0000,0x0000, 0x3021,0x0000,0x0000, /* A4E7 */ +0x3024,0x0000,0x0000, 0x3022,0x0000,0x0000, 0x3025,0x0000,0x0000, /* A4EA */ +0x3023,0x0000,0x0000, 0x3026,0x0000,0x0000, 0x3027,0x0000,0x0000, /* A4ED */ +0x3028,0x0000,0x0000, 0x3029,0x0000,0x0000, 0x302A,0x0000,0x0000, /* A4F0 */ +0x302B,0x0000,0x0000, 0x302C,0x0000,0x0000, 0x302D,0x0000,0x0000, /* A4F3 */ +0x302E,0x0000,0x0000, 0x302F,0x0000,0x0000, 0x3002,0x0000,0x0000, /* A4F6 */ +0x3003,0x0000,0x0000, 0x3004,0x0000,0x0000, 0x3005,0x0000,0x0000, /* A4F9 */ +0x3007,0x0000,0x0000, 0x3006,0x0000,0x0000, 0x023D,0x0000,0x0000, /* A4FC */ +0x028E,0x0000,0x0000 }; + +static const uint16 uca520_p0A5[]= { /* A500 (2 weights per char) */ +0x2853,0x0000, 0x2854,0x0000, 0x2855,0x0000, 0x2856,0x0000, /* A500 */ +0x2857,0x0000, 0x2858,0x0000, 0x2859,0x0000, 0x285A,0x0000, /* A504 */ +0x285B,0x0000, 0x285C,0x0000, 0x285D,0x0000, 0x285E,0x0000, /* A508 */ +0x285F,0x0000, 0x2860,0x0000, 0x2861,0x0000, 0x2862,0x0000, /* A50C */ +0x2863,0x0000, 0x2864,0x0000, 0x2865,0x0000, 0x2866,0x0000, /* A510 */ +0x2867,0x0000, 0x2868,0x0000, 0x2869,0x0000, 0x286A,0x0000, /* A514 */ +0x286B,0x0000, 0x286C,0x0000, 0x286D,0x0000, 0x286E,0x0000, /* A518 */ +0x286F,0x0000, 0x2870,0x0000, 0x2871,0x0000, 0x2872,0x0000, /* A51C */ +0x2873,0x0000, 0x2874,0x0000, 0x2875,0x0000, 0x2876,0x0000, /* A520 */ +0x2877,0x0000, 0x2878,0x0000, 0x2879,0x0000, 0x287A,0x0000, /* A524 */ +0x287B,0x0000, 0x287C,0x0000, 0x287D,0x0000, 0x287E,0x0000, /* A528 */ +0x287F,0x0000, 0x2880,0x0000, 0x2881,0x0000, 0x2882,0x0000, /* A52C */ +0x2883,0x0000, 0x2884,0x0000, 0x2885,0x0000, 0x2886,0x0000, /* A530 */ +0x2887,0x0000, 0x2888,0x0000, 0x2889,0x0000, 0x288A,0x0000, /* A534 */ +0x288B,0x0000, 0x288C,0x0000, 0x288D,0x0000, 0x288E,0x0000, /* A538 */ +0x288F,0x0000, 0x2890,0x0000, 0x2891,0x0000, 0x2892,0x0000, /* A53C */ +0x2893,0x0000, 0x2894,0x0000, 0x2895,0x0000, 0x2896,0x0000, /* A540 */ +0x2897,0x0000, 0x2898,0x0000, 0x2899,0x0000, 0x289A,0x0000, /* A544 */ +0x289B,0x0000, 0x289C,0x0000, 0x289D,0x0000, 0x289E,0x0000, /* A548 */ +0x289F,0x0000, 0x28A0,0x0000, 0x28A1,0x0000, 0x28A2,0x0000, /* A54C */ +0x28A3,0x0000, 0x28A4,0x0000, 0x28A5,0x0000, 0x28A6,0x0000, /* A550 */ +0x28A7,0x0000, 0x28A8,0x0000, 0x28A9,0x0000, 0x28AA,0x0000, /* A554 */ +0x28AB,0x0000, 0x28AC,0x0000, 0x28AD,0x0000, 0x28AE,0x0000, /* A558 */ +0x28AF,0x0000, 0x28B0,0x0000, 0x28B1,0x0000, 0x28B2,0x0000, /* A55C */ +0x28B3,0x0000, 0x28B4,0x0000, 0x28B5,0x0000, 0x28B6,0x0000, /* A560 */ +0x28B7,0x0000, 0x28B8,0x0000, 0x28B9,0x0000, 0x28BA,0x0000, /* A564 */ +0x28BB,0x0000, 0x28BC,0x0000, 0x28BD,0x0000, 0x28BE,0x0000, /* A568 */ +0x28BF,0x0000, 0x28C0,0x0000, 0x28C1,0x0000, 0x28C2,0x0000, /* A56C */ +0x28C3,0x0000, 0x28C4,0x0000, 0x28C5,0x0000, 0x28C6,0x0000, /* A570 */ +0x28C7,0x0000, 0x28C8,0x0000, 0x28C9,0x0000, 0x28CA,0x0000, /* A574 */ +0x28CB,0x0000, 0x28CC,0x0000, 0x28CD,0x0000, 0x28CE,0x0000, /* A578 */ +0x28CF,0x0000, 0x28D0,0x0000, 0x28D1,0x0000, 0x28D2,0x0000, /* A57C */ +0x28D3,0x0000, 0x28D4,0x0000, 0x28D5,0x0000, 0x28D6,0x0000, /* A580 */ +0x28D7,0x0000, 0x28D8,0x0000, 0x28D9,0x0000, 0x28DA,0x0000, /* A584 */ +0x28DB,0x0000, 0x28DC,0x0000, 0x28DD,0x0000, 0x28DE,0x0000, /* A588 */ +0x28DF,0x0000, 0x28E0,0x0000, 0x28E1,0x0000, 0x28E2,0x0000, /* A58C */ +0x28E3,0x0000, 0x28E4,0x0000, 0x28E5,0x0000, 0x28E6,0x0000, /* A590 */ +0x28E7,0x0000, 0x28E8,0x0000, 0x28E9,0x0000, 0x28EA,0x0000, /* A594 */ +0x28EB,0x0000, 0x28EC,0x0000, 0x28ED,0x0000, 0x28EE,0x0000, /* A598 */ +0x28EF,0x0000, 0x28F0,0x0000, 0x28F1,0x0000, 0x28F2,0x0000, /* A59C */ +0x28F3,0x0000, 0x28F4,0x0000, 0x28F5,0x0000, 0x28F6,0x0000, /* A5A0 */ +0x28F7,0x0000, 0x28F8,0x0000, 0x28F9,0x0000, 0x28FA,0x0000, /* A5A4 */ +0x28FB,0x0000, 0x28FC,0x0000, 0x28FD,0x0000, 0x28FE,0x0000, /* A5A8 */ +0x28FF,0x0000, 0x2900,0x0000, 0x2901,0x0000, 0x2902,0x0000, /* A5AC */ +0x2903,0x0000, 0x2904,0x0000, 0x2905,0x0000, 0x2906,0x0000, /* A5B0 */ +0x2907,0x0000, 0x2908,0x0000, 0x2909,0x0000, 0x290A,0x0000, /* A5B4 */ +0x290B,0x0000, 0x290C,0x0000, 0x290D,0x0000, 0x290E,0x0000, /* A5B8 */ +0x290F,0x0000, 0x2910,0x0000, 0x2911,0x0000, 0x2912,0x0000, /* A5BC */ +0x2913,0x0000, 0x2914,0x0000, 0x2915,0x0000, 0x2916,0x0000, /* A5C0 */ +0x2917,0x0000, 0x2918,0x0000, 0x2919,0x0000, 0x291A,0x0000, /* A5C4 */ +0x291B,0x0000, 0x291C,0x0000, 0x291D,0x0000, 0x291E,0x0000, /* A5C8 */ +0x291F,0x0000, 0x2920,0x0000, 0x2921,0x0000, 0x2922,0x0000, /* A5CC */ +0x2923,0x0000, 0x2924,0x0000, 0x2925,0x0000, 0x2926,0x0000, /* A5D0 */ +0x2927,0x0000, 0x2928,0x0000, 0x2929,0x0000, 0x292A,0x0000, /* A5D4 */ +0x292B,0x0000, 0x292C,0x0000, 0x292D,0x0000, 0x292E,0x0000, /* A5D8 */ +0x292F,0x0000, 0x2930,0x0000, 0x2931,0x0000, 0x2932,0x0000, /* A5DC */ +0x2933,0x0000, 0x2934,0x0000, 0x2935,0x0000, 0x2936,0x0000, /* A5E0 */ +0x2937,0x0000, 0x2938,0x0000, 0x2939,0x0000, 0x293A,0x0000, /* A5E4 */ +0x293B,0x0000, 0x293C,0x0000, 0x293D,0x0000, 0x293E,0x0000, /* A5E8 */ +0x293F,0x0000, 0x2940,0x0000, 0x2941,0x0000, 0x2942,0x0000, /* A5EC */ +0x2943,0x0000, 0x2944,0x0000, 0x2945,0x0000, 0x2946,0x0000, /* A5F0 */ +0x2947,0x0000, 0x2948,0x0000, 0x2949,0x0000, 0x294A,0x0000, /* A5F4 */ +0x294B,0x0000, 0x294C,0x0000, 0x294D,0x0000, 0x294E,0x0000, /* A5F8 */ +0x294F,0x0000, 0x2950,0x0000, 0x2951,0x0000, 0x2952,0x0000 /* A5FC */ +}; + +static const uint16 uca520_p0A6[]= { /* A600 (3 weights per char) */ +0x2953,0x0000,0x0000, 0x2954,0x0000,0x0000, 0x2955,0x0000,0x0000, /* A600 */ +0x2956,0x0000,0x0000, 0x2957,0x0000,0x0000, 0x2958,0x0000,0x0000, /* A603 */ +0x2959,0x0000,0x0000, 0x295A,0x0000,0x0000, 0x295B,0x0000,0x0000, /* A606 */ +0x295C,0x0000,0x0000, 0x295D,0x0000,0x0000, 0x295E,0x0000,0x0000, /* A609 */ +0x295F,0x0000,0x0000, 0x023E,0x0000,0x0000, 0x028F,0x0000,0x0000, /* A60C */ +0x027D,0x0000,0x0000, 0x28AB,0x0000,0x0000, 0x28BD,0x0000,0x0000, /* A60F */ +0x28DA,0x0000,0x0000, 0x285F,0x295E,0x0000, 0x2871,0x295E,0x0000, /* A612 */ +0x2886,0x295E,0x0000, 0x289A,0x295F,0x0000, 0x28A5,0x295E,0x0000, /* A615 */ +0x28AB,0x295F,0x0000, 0x28AD,0x295F,0x0000, 0x28B3,0x295E,0x0000, /* A618 */ +0x28D8,0x295E,0x0000, 0x2907,0x295E,0x0000, 0x291E,0x295E,0x0000, /* A61B */ +0x2924,0x295F,0x0000, 0x292B,0x295E,0x0000, 0x1205,0x0000,0x0000, /* A61E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* A621 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* A624 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* A627 */ +0x28C1,0x0000,0x0000, 0x2924,0x0000,0x0000, 0xFBC1,0xA62C,0x0000, /* A62A */ +0xFBC1,0xA62D,0x0000, 0xFBC1,0xA62E,0x0000, 0xFBC1,0xA62F,0x0000, /* A62D */ +0xFBC1,0xA630,0x0000, 0xFBC1,0xA631,0x0000, 0xFBC1,0xA632,0x0000, /* A630 */ +0xFBC1,0xA633,0x0000, 0xFBC1,0xA634,0x0000, 0xFBC1,0xA635,0x0000, /* A633 */ +0xFBC1,0xA636,0x0000, 0xFBC1,0xA637,0x0000, 0xFBC1,0xA638,0x0000, /* A636 */ +0xFBC1,0xA639,0x0000, 0xFBC1,0xA63A,0x0000, 0xFBC1,0xA63B,0x0000, /* A639 */ +0xFBC1,0xA63C,0x0000, 0xFBC1,0xA63D,0x0000, 0xFBC1,0xA63E,0x0000, /* A63C */ +0xFBC1,0xA63F,0x0000, 0x1611,0x0000,0x0000, 0x1611,0x0000,0x0000, /* A63F */ +0x1618,0x0000,0x0000, 0x1618,0x0000,0x0000, 0x161D,0x0000,0x0000, /* A642 */ +0x161D,0x0000,0x0000, 0x1635,0x0000,0x0000, 0x1635,0x0000,0x0000, /* A645 */ +0x1642,0x0000,0x0000, 0x1642,0x0000,0x0000, 0x16EC,0x0000,0x0000, /* A648 */ +0x16EC,0x0000,0x0000, 0x1712,0x0000,0x0000, 0x1712,0x0000,0x0000, /* A64B */ +0x1750,0x0000,0x0000, 0x1750,0x0000,0x0000, 0x1757,0x0000,0x0000, /* A64E */ +0x1757,0x0000,0x0000, 0x176C,0x0000,0x0000, 0x176C,0x0000,0x0000, /* A651 */ +0x1779,0x0000,0x0000, 0x1779,0x0000,0x0000, 0x177A,0x0000,0x0000, /* A654 */ +0x177A,0x0000,0x0000, 0x1788,0x0000,0x0000, 0x1788,0x0000,0x0000, /* A657 */ +0x178D,0x0000,0x0000, 0x178D,0x0000,0x0000, 0x1792,0x0000,0x0000, /* A65A */ +0x1792,0x0000,0x0000, 0x17AB,0x0000,0x0000, 0x17AB,0x0000,0x0000, /* A65D */ +0xFBC1,0xA660,0x0000, 0xFBC1,0xA661,0x0000, 0x15EA,0x0000,0x0000, /* A660 */ +0x15EA,0x0000,0x0000, 0x166C,0x0000,0x0000, 0x166C,0x0000,0x0000, /* A663 */ +0x1677,0x0000,0x0000, 0x1677,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A666 */ +0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A669 */ +0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A66C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A66F */ +0x0000,0x0000,0x0000, 0x035B,0x0000,0x0000, 0xFBC1,0xA674,0x0000, /* A672 */ +0xFBC1,0xA675,0x0000, 0xFBC1,0xA676,0x0000, 0xFBC1,0xA677,0x0000, /* A675 */ +0xFBC1,0xA678,0x0000, 0xFBC1,0xA679,0x0000, 0xFBC1,0xA67A,0x0000, /* A678 */ +0xFBC1,0xA67B,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A67B */ +0x0391,0x0000,0x0000, 0x1752,0x0000,0x0000, 0x15E5,0x0000,0x0000, /* A67E */ +0x15E5,0x0000,0x0000, 0x1624,0x0000,0x0000, 0x1624,0x0000,0x0000, /* A681 */ +0x1604,0x0000,0x0000, 0x1604,0x0000,0x0000, 0x173A,0x0000,0x0000, /* A684 */ +0x173A,0x0000,0x0000, 0x1622,0x0000,0x0000, 0x1622,0x0000,0x0000, /* A687 */ +0x16CB,0x0000,0x0000, 0x16CB,0x0000,0x0000, 0x16C5,0x0000,0x0000, /* A68A */ +0x16C5,0x0000,0x0000, 0x171F,0x0000,0x0000, 0x171F,0x0000,0x0000, /* A68D */ +0x1724,0x0000,0x0000, 0x1724,0x0000,0x0000, 0x1729,0x0000,0x0000, /* A690 */ +0x1729,0x0000,0x0000, 0x1709,0x0000,0x0000, 0x1709,0x0000,0x0000, /* A693 */ +0x174B,0x0000,0x0000, 0x174B,0x0000,0x0000, 0xFBC1,0xA698,0x0000, /* A696 */ +0xFBC1,0xA699,0x0000, 0xFBC1,0xA69A,0x0000, 0xFBC1,0xA69B,0x0000, /* A699 */ +0xFBC1,0xA69C,0x0000, 0xFBC1,0xA69D,0x0000, 0xFBC1,0xA69E,0x0000, /* A69C */ +0xFBC1,0xA69F,0x0000, 0x2960,0x0000,0x0000, 0x2961,0x0000,0x0000, /* A69F */ +0x2962,0x0000,0x0000, 0x2963,0x0000,0x0000, 0x2964,0x0000,0x0000, /* A6A2 */ +0x2965,0x0000,0x0000, 0x2966,0x0000,0x0000, 0x2967,0x0000,0x0000, /* A6A5 */ +0x2968,0x0000,0x0000, 0x2969,0x0000,0x0000, 0x296A,0x0000,0x0000, /* A6A8 */ +0x296B,0x0000,0x0000, 0x296C,0x0000,0x0000, 0x296D,0x0000,0x0000, /* A6AB */ +0x296E,0x0000,0x0000, 0x296F,0x0000,0x0000, 0x2970,0x0000,0x0000, /* A6AE */ +0x2971,0x0000,0x0000, 0x2972,0x0000,0x0000, 0x2973,0x0000,0x0000, /* A6B1 */ +0x2974,0x0000,0x0000, 0x2975,0x0000,0x0000, 0x2976,0x0000,0x0000, /* A6B4 */ +0x2977,0x0000,0x0000, 0x2978,0x0000,0x0000, 0x2979,0x0000,0x0000, /* A6B7 */ +0x297A,0x0000,0x0000, 0x297B,0x0000,0x0000, 0x297C,0x0000,0x0000, /* A6BA */ +0x297D,0x0000,0x0000, 0x297E,0x0000,0x0000, 0x297F,0x0000,0x0000, /* A6BD */ +0x2980,0x0000,0x0000, 0x2981,0x0000,0x0000, 0x2982,0x0000,0x0000, /* A6C0 */ +0x2983,0x0000,0x0000, 0x2984,0x0000,0x0000, 0x2985,0x0000,0x0000, /* A6C3 */ +0x2986,0x0000,0x0000, 0x2987,0x0000,0x0000, 0x2988,0x0000,0x0000, /* A6C6 */ +0x2989,0x0000,0x0000, 0x298A,0x0000,0x0000, 0x298B,0x0000,0x0000, /* A6C9 */ +0x298C,0x0000,0x0000, 0x298D,0x0000,0x0000, 0x298E,0x0000,0x0000, /* A6CC */ +0x298F,0x0000,0x0000, 0x2990,0x0000,0x0000, 0x2991,0x0000,0x0000, /* A6CF */ +0x2992,0x0000,0x0000, 0x2993,0x0000,0x0000, 0x2994,0x0000,0x0000, /* A6D2 */ +0x2995,0x0000,0x0000, 0x2996,0x0000,0x0000, 0x2997,0x0000,0x0000, /* A6D5 */ +0x2998,0x0000,0x0000, 0x2999,0x0000,0x0000, 0x299A,0x0000,0x0000, /* A6D8 */ +0x299B,0x0000,0x0000, 0x299C,0x0000,0x0000, 0x299D,0x0000,0x0000, /* A6DB */ +0x299E,0x0000,0x0000, 0x299F,0x0000,0x0000, 0x29A0,0x0000,0x0000, /* A6DE */ +0x29A1,0x0000,0x0000, 0x29A2,0x0000,0x0000, 0x29A3,0x0000,0x0000, /* A6E1 */ +0x29A4,0x0000,0x0000, 0x29A5,0x0000,0x0000, 0x29A6,0x0000,0x0000, /* A6E4 */ +0x29A7,0x0000,0x0000, 0x29A8,0x0000,0x0000, 0x29A9,0x0000,0x0000, /* A6E7 */ +0x29AA,0x0000,0x0000, 0x29AB,0x0000,0x0000, 0x29AC,0x0000,0x0000, /* A6EA */ +0x29AD,0x0000,0x0000, 0x29AE,0x0000,0x0000, 0x29AF,0x0000,0x0000, /* A6ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02C8,0x0000,0x0000, /* A6F0 */ +0x0290,0x0000,0x0000, 0x026D,0x0000,0x0000, 0x023F,0x0000,0x0000, /* A6F3 */ +0x0246,0x0000,0x0000, 0x027E,0x0000,0x0000, 0xFBC1,0xA6F8,0x0000, /* A6F6 */ +0xFBC1,0xA6F9,0x0000, 0xFBC1,0xA6FA,0x0000, 0xFBC1,0xA6FB,0x0000, /* A6F9 */ +0xFBC1,0xA6FC,0x0000, 0xFBC1,0xA6FD,0x0000, 0xFBC1,0xA6FE,0x0000, /* A6FC */ +0xFBC1,0xA6FF,0x0000 }; + +static const uint16 uca520_p0A7[]= { /* A700 (3 weights per char) */ +0x0426,0x0000,0x0000, 0x0427,0x0000,0x0000, 0x0428,0x0000,0x0000, /* A700 */ +0x0429,0x0000,0x0000, 0x042A,0x0000,0x0000, 0x042B,0x0000,0x0000, /* A703 */ +0x042C,0x0000,0x0000, 0x042D,0x0000,0x0000, 0x042E,0x0000,0x0000, /* A706 */ +0x042F,0x0000,0x0000, 0x0430,0x0000,0x0000, 0x0431,0x0000,0x0000, /* A709 */ +0x0432,0x0000,0x0000, 0x0433,0x0000,0x0000, 0x0434,0x0000,0x0000, /* A70C */ +0x0435,0x0000,0x0000, 0x0436,0x0000,0x0000, 0x0437,0x0000,0x0000, /* A70F */ +0x0438,0x0000,0x0000, 0x0439,0x0000,0x0000, 0x043A,0x0000,0x0000, /* A712 */ +0x043B,0x0000,0x0000, 0x043C,0x0000,0x0000, 0x043D,0x0000,0x0000, /* A715 */ +0x043E,0x0000,0x0000, 0x043F,0x0000,0x0000, 0x0440,0x0000,0x0000, /* A718 */ +0x0441,0x0000,0x0000, 0x0442,0x0000,0x0000, 0x0443,0x0000,0x0000, /* A71B */ +0x0444,0x0000,0x0000, 0x0445,0x0000,0x0000, 0x0446,0x0000,0x0000, /* A71E */ +0x0447,0x0000,0x0000, 0x150E,0x0000,0x0000, 0x150E,0x0000,0x0000, /* A721 */ +0x1518,0x0000,0x0000, 0x1518,0x0000,0x0000, 0x12E5,0x0000,0x0000, /* A724 */ +0x12E5,0x0000,0x0000, 0x1433,0x14AD,0x0000, 0x1433,0x14AD,0x0000, /* A727 */ +0x14F3,0x0000,0x0000, 0x14F3,0x0000,0x0000, 0x14F4,0x0000,0x0000, /* A72A */ +0x14F4,0x0000,0x0000, 0x14F5,0x0000,0x0000, 0x14F5,0x0000,0x0000, /* A72D */ +0x12A7,0x0000,0x0000, 0x1414,0x0000,0x0000, 0x120F,0x120F,0x0000, /* A730 */ +0x120F,0x120F,0x0000, 0x120F,0x138E,0x0000, 0x120F,0x138E,0x0000, /* A733 */ +0x120F,0x1453,0x0000, 0x120F,0x1453,0x0000, 0x120F,0x147B,0x0000, /* A736 */ +0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, /* A739 */ +0x120F,0x149C,0x0000, 0x120F,0x149C,0x0000, 0x124F,0x0000,0x0000, /* A73C */ +0x124F,0x0000,0x0000, 0x1329,0x0000,0x0000, 0x1329,0x0000,0x0000, /* A73F */ +0x132A,0x0000,0x0000, 0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, /* A742 */ +0x132B,0x0000,0x0000, 0x1338,0x0000,0x0000, 0x1338,0x0000,0x0000, /* A745 */ +0x133A,0x0000,0x0000, 0x133A,0x0000,0x0000, 0x13A9,0x0000,0x0000, /* A748 */ +0x13A9,0x0000,0x0000, 0x13A1,0x0000,0x0000, 0x13A1,0x0000,0x0000, /* A74B */ +0x138E,0x138E,0x0000, 0x138E,0x138E,0x0000, 0x13B9,0x0000,0x0000, /* A74E */ +0x13B9,0x0000,0x0000, 0x13C0,0x0000,0x0000, 0x13C0,0x0000,0x0000, /* A751 */ +0x13C1,0x0000,0x0000, 0x13C1,0x0000,0x0000, 0x13CC,0x0000,0x0000, /* A754 */ +0x13CC,0x0000,0x0000, 0x13CD,0x0000,0x0000, 0x13CD,0x0000,0x0000, /* A757 */ +0x13E2,0x0000,0x0000, 0x13E2,0x0000,0x0000, 0x140F,0x0000,0x0000, /* A75A */ +0x140F,0x0000,0x0000, 0x1480,0x0000,0x0000, 0x1480,0x0000,0x0000, /* A75D */ +0x147B,0x149C,0x0000, 0x147B,0x149C,0x0000, 0x14C9,0x0000,0x0000, /* A760 */ +0x14C9,0x0000,0x0000, 0x14E4,0x0000,0x0000, 0x14E4,0x0000,0x0000, /* A763 */ +0x14E5,0x0000,0x0000, 0x14E5,0x0000,0x0000, 0x14EA,0x0000,0x0000, /* A766 */ +0x14EA,0x0000,0x0000, 0x14EB,0x0000,0x0000, 0x14EB,0x0000,0x0000, /* A769 */ +0x14EC,0x0000,0x0000, 0x14EC,0x0000,0x0000, 0x14ED,0x0000,0x0000, /* A76C */ +0x14ED,0x0000,0x0000, 0x14ED,0x0000,0x0000, 0x1269,0x0000,0x0000, /* A76F */ +0x1351,0x0000,0x0000, 0x136C,0x0000,0x0000, 0x1389,0x0000,0x0000, /* A772 */ +0x140D,0x0000,0x0000, 0x140E,0x0000,0x0000, 0x144E,0x0000,0x0000, /* A775 */ +0x14EE,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* A778 */ +0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* A77B */ +0x12CA,0x0000,0x0000, 0x12CA,0x0000,0x0000, 0x1356,0x0000,0x0000, /* A77E */ +0x1356,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* A781 */ +0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* A784 */ +0x1433,0x0000,0x0000, 0x0448,0x0000,0x0000, 0x0449,0x0000,0x0000, /* A787 */ +0x044A,0x0000,0x0000, 0x150F,0x0000,0x0000, 0x150F,0x0000,0x0000, /* A78A */ +0xFBC1,0xA78D,0x0000, 0xFBC1,0xA78E,0x0000, 0xFBC1,0xA78F,0x0000, /* A78D */ +0xFBC1,0xA790,0x0000, 0xFBC1,0xA791,0x0000, 0xFBC1,0xA792,0x0000, /* A790 */ +0xFBC1,0xA793,0x0000, 0xFBC1,0xA794,0x0000, 0xFBC1,0xA795,0x0000, /* A793 */ +0xFBC1,0xA796,0x0000, 0xFBC1,0xA797,0x0000, 0xFBC1,0xA798,0x0000, /* A796 */ +0xFBC1,0xA799,0x0000, 0xFBC1,0xA79A,0x0000, 0xFBC1,0xA79B,0x0000, /* A799 */ +0xFBC1,0xA79C,0x0000, 0xFBC1,0xA79D,0x0000, 0xFBC1,0xA79E,0x0000, /* A79C */ +0xFBC1,0xA79F,0x0000, 0xFBC1,0xA7A0,0x0000, 0xFBC1,0xA7A1,0x0000, /* A79F */ +0xFBC1,0xA7A2,0x0000, 0xFBC1,0xA7A3,0x0000, 0xFBC1,0xA7A4,0x0000, /* A7A2 */ +0xFBC1,0xA7A5,0x0000, 0xFBC1,0xA7A6,0x0000, 0xFBC1,0xA7A7,0x0000, /* A7A5 */ +0xFBC1,0xA7A8,0x0000, 0xFBC1,0xA7A9,0x0000, 0xFBC1,0xA7AA,0x0000, /* A7A8 */ +0xFBC1,0xA7AB,0x0000, 0xFBC1,0xA7AC,0x0000, 0xFBC1,0xA7AD,0x0000, /* A7AB */ +0xFBC1,0xA7AE,0x0000, 0xFBC1,0xA7AF,0x0000, 0xFBC1,0xA7B0,0x0000, /* A7AE */ +0xFBC1,0xA7B1,0x0000, 0xFBC1,0xA7B2,0x0000, 0xFBC1,0xA7B3,0x0000, /* A7B1 */ +0xFBC1,0xA7B4,0x0000, 0xFBC1,0xA7B5,0x0000, 0xFBC1,0xA7B6,0x0000, /* A7B4 */ +0xFBC1,0xA7B7,0x0000, 0xFBC1,0xA7B8,0x0000, 0xFBC1,0xA7B9,0x0000, /* A7B7 */ +0xFBC1,0xA7BA,0x0000, 0xFBC1,0xA7BB,0x0000, 0xFBC1,0xA7BC,0x0000, /* A7BA */ +0xFBC1,0xA7BD,0x0000, 0xFBC1,0xA7BE,0x0000, 0xFBC1,0xA7BF,0x0000, /* A7BD */ +0xFBC1,0xA7C0,0x0000, 0xFBC1,0xA7C1,0x0000, 0xFBC1,0xA7C2,0x0000, /* A7C0 */ +0xFBC1,0xA7C3,0x0000, 0xFBC1,0xA7C4,0x0000, 0xFBC1,0xA7C5,0x0000, /* A7C3 */ +0xFBC1,0xA7C6,0x0000, 0xFBC1,0xA7C7,0x0000, 0xFBC1,0xA7C8,0x0000, /* A7C6 */ +0xFBC1,0xA7C9,0x0000, 0xFBC1,0xA7CA,0x0000, 0xFBC1,0xA7CB,0x0000, /* A7C9 */ +0xFBC1,0xA7CC,0x0000, 0xFBC1,0xA7CD,0x0000, 0xFBC1,0xA7CE,0x0000, /* A7CC */ +0xFBC1,0xA7CF,0x0000, 0xFBC1,0xA7D0,0x0000, 0xFBC1,0xA7D1,0x0000, /* A7CF */ +0xFBC1,0xA7D2,0x0000, 0xFBC1,0xA7D3,0x0000, 0xFBC1,0xA7D4,0x0000, /* A7D2 */ +0xFBC1,0xA7D5,0x0000, 0xFBC1,0xA7D6,0x0000, 0xFBC1,0xA7D7,0x0000, /* A7D5 */ +0xFBC1,0xA7D8,0x0000, 0xFBC1,0xA7D9,0x0000, 0xFBC1,0xA7DA,0x0000, /* A7D8 */ +0xFBC1,0xA7DB,0x0000, 0xFBC1,0xA7DC,0x0000, 0xFBC1,0xA7DD,0x0000, /* A7DB */ +0xFBC1,0xA7DE,0x0000, 0xFBC1,0xA7DF,0x0000, 0xFBC1,0xA7E0,0x0000, /* A7DE */ +0xFBC1,0xA7E1,0x0000, 0xFBC1,0xA7E2,0x0000, 0xFBC1,0xA7E3,0x0000, /* A7E1 */ +0xFBC1,0xA7E4,0x0000, 0xFBC1,0xA7E5,0x0000, 0xFBC1,0xA7E6,0x0000, /* A7E4 */ +0xFBC1,0xA7E7,0x0000, 0xFBC1,0xA7E8,0x0000, 0xFBC1,0xA7E9,0x0000, /* A7E7 */ +0xFBC1,0xA7EA,0x0000, 0xFBC1,0xA7EB,0x0000, 0xFBC1,0xA7EC,0x0000, /* A7EA */ +0xFBC1,0xA7ED,0x0000, 0xFBC1,0xA7EE,0x0000, 0xFBC1,0xA7EF,0x0000, /* A7ED */ +0xFBC1,0xA7F0,0x0000, 0xFBC1,0xA7F1,0x0000, 0xFBC1,0xA7F2,0x0000, /* A7F0 */ +0xFBC1,0xA7F3,0x0000, 0xFBC1,0xA7F4,0x0000, 0xFBC1,0xA7F5,0x0000, /* A7F3 */ +0xFBC1,0xA7F6,0x0000, 0xFBC1,0xA7F7,0x0000, 0xFBC1,0xA7F8,0x0000, /* A7F6 */ +0xFBC1,0xA7F9,0x0000, 0xFBC1,0xA7FA,0x0000, 0x12AF,0x0000,0x0000, /* A7F9 */ +0x13C2,0x0000,0x0000, 0x136A,0x0000,0x0000, 0x12F8,0x0000,0x0000, /* A7FC */ +0x136B,0x0000,0x0000 }; + +static const uint16 uca520_p0A8[]= { /* A800 (3 weights per char) */ +0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, /* A800 */ +0x1E81,0x0000,0x0000, 0x1E82,0x0000,0x0000, 0x1E83,0x0000,0x0000, /* A803 */ +0x1E84,0x0000,0x0000, 0x1E85,0x0000,0x0000, 0x1E86,0x0000,0x0000, /* A806 */ +0x1E87,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A809 */ +0x1E89,0x0000,0x0000, 0x1E8A,0x0000,0x0000, 0x1E8B,0x0000,0x0000, /* A80C */ +0x1E8C,0x0000,0x0000, 0x1E8D,0x0000,0x0000, 0x1E8E,0x0000,0x0000, /* A80F */ +0x1E8F,0x0000,0x0000, 0x1E90,0x0000,0x0000, 0x1E91,0x0000,0x0000, /* A812 */ +0x1E92,0x0000,0x0000, 0x1E93,0x0000,0x0000, 0x1E94,0x0000,0x0000, /* A815 */ +0x1E95,0x0000,0x0000, 0x1E96,0x0000,0x0000, 0x1E97,0x0000,0x0000, /* A818 */ +0x1E98,0x0000,0x0000, 0x1E99,0x0000,0x0000, 0x1E9A,0x0000,0x0000, /* A81B */ +0x1E9B,0x0000,0x0000, 0x1E9C,0x0000,0x0000, 0x1E9D,0x0000,0x0000, /* A81E */ +0x1E9E,0x0000,0x0000, 0x1E9F,0x0000,0x0000, 0x1EA0,0x0000,0x0000, /* A821 */ +0x1EA1,0x0000,0x0000, 0x1EA2,0x0000,0x0000, 0x1EA3,0x0000,0x0000, /* A824 */ +0x1EA4,0x0000,0x0000, 0x0460,0x0000,0x0000, 0x0461,0x0000,0x0000, /* A827 */ +0x0462,0x0000,0x0000, 0x0463,0x0000,0x0000, 0xFBC1,0xA82C,0x0000, /* A82A */ +0xFBC1,0xA82D,0x0000, 0xFBC1,0xA82E,0x0000, 0xFBC1,0xA82F,0x0000, /* A82D */ +0x1116,0x0000,0x0000, 0x1117,0x0000,0x0000, 0x1118,0x0000,0x0000, /* A830 */ +0x1119,0x0000,0x0000, 0x111A,0x0000,0x0000, 0x111B,0x0000,0x0000, /* A833 */ +0x0464,0x0000,0x0000, 0x0465,0x0000,0x0000, 0x11E9,0x0000,0x0000, /* A836 */ +0x0466,0x0000,0x0000, 0xFBC1,0xA83A,0x0000, 0xFBC1,0xA83B,0x0000, /* A839 */ +0xFBC1,0xA83C,0x0000, 0xFBC1,0xA83D,0x0000, 0xFBC1,0xA83E,0x0000, /* A83C */ +0xFBC1,0xA83F,0x0000, 0x20B7,0x0000,0x0000, 0x20B8,0x0000,0x0000, /* A83F */ +0x20B9,0x0000,0x0000, 0x20BA,0x0000,0x0000, 0x20BB,0x0000,0x0000, /* A842 */ +0x20BC,0x0000,0x0000, 0x20BD,0x0000,0x0000, 0x20BE,0x0000,0x0000, /* A845 */ +0x20C3,0x0000,0x0000, 0x20C4,0x0000,0x0000, 0x20C5,0x0000,0x0000, /* A848 */ +0x20C6,0x0000,0x0000, 0x20C7,0x0000,0x0000, 0x20C8,0x0000,0x0000, /* A84B */ +0x20C9,0x0000,0x0000, 0x20CA,0x0000,0x0000, 0x20CB,0x0000,0x0000, /* A84E */ +0x20CC,0x0000,0x0000, 0x20CD,0x0000,0x0000, 0x20CE,0x0000,0x0000, /* A851 */ +0x20D0,0x0000,0x0000, 0x20D1,0x0000,0x0000, 0x20D2,0x0000,0x0000, /* A854 */ +0x20D3,0x0000,0x0000, 0x20D6,0x0000,0x0000, 0x20D9,0x0000,0x0000, /* A857 */ +0x20DA,0x0000,0x0000, 0x20DC,0x0000,0x0000, 0x20DD,0x0000,0x0000, /* A85A */ +0x20E0,0x0000,0x0000, 0x20E5,0x0000,0x0000, 0x20E6,0x0000,0x0000, /* A85D */ +0x20E7,0x0000,0x0000, 0x20E8,0x0000,0x0000, 0x20E1,0x0000,0x0000, /* A860 */ +0x20E2,0x0000,0x0000, 0x20E3,0x0000,0x0000, 0x20E4,0x0000,0x0000, /* A863 */ +0x20E9,0x0000,0x0000, 0x20CF,0x0000,0x0000, 0x20D4,0x0000,0x0000, /* A866 */ +0x20BF,0x0000,0x0000, 0x20C0,0x0000,0x0000, 0x20C1,0x0000,0x0000, /* A869 */ +0x20C2,0x0000,0x0000, 0x20D5,0x0000,0x0000, 0x20DB,0x0000,0x0000, /* A86C */ +0x20DE,0x0000,0x0000, 0x20DF,0x0000,0x0000, 0x20D7,0x0000,0x0000, /* A86F */ +0x20D8,0x0000,0x0000, 0x20EA,0x0000,0x0000, 0x03D9,0x0000,0x0000, /* A872 */ +0x03DA,0x0000,0x0000, 0x029A,0x0000,0x0000, 0x029B,0x0000,0x0000, /* A875 */ +0xFBC1,0xA878,0x0000, 0xFBC1,0xA879,0x0000, 0xFBC1,0xA87A,0x0000, /* A878 */ +0xFBC1,0xA87B,0x0000, 0xFBC1,0xA87C,0x0000, 0xFBC1,0xA87D,0x0000, /* A87B */ +0xFBC1,0xA87E,0x0000, 0xFBC1,0xA87F,0x0000, 0x0000,0x0000,0x0000, /* A87E */ +0x0000,0x0000,0x0000, 0x1EA5,0x0000,0x0000, 0x1EA6,0x0000,0x0000, /* A881 */ +0x1EA7,0x0000,0x0000, 0x1EA8,0x0000,0x0000, 0x1EA9,0x0000,0x0000, /* A884 */ +0x1EAA,0x0000,0x0000, 0x1EAB,0x0000,0x0000, 0x1EAC,0x0000,0x0000, /* A887 */ +0x1EAD,0x0000,0x0000, 0x1EAE,0x0000,0x0000, 0x1EAF,0x0000,0x0000, /* A88A */ +0x1EB0,0x0000,0x0000, 0x1EB1,0x0000,0x0000, 0x1EB2,0x0000,0x0000, /* A88D */ +0x1EB3,0x0000,0x0000, 0x1EB4,0x0000,0x0000, 0x1EB5,0x0000,0x0000, /* A890 */ +0x1EB6,0x0000,0x0000, 0x1EB7,0x0000,0x0000, 0x1EB8,0x0000,0x0000, /* A893 */ +0x1EB9,0x0000,0x0000, 0x1EBA,0x0000,0x0000, 0x1EBB,0x0000,0x0000, /* A896 */ +0x1EBC,0x0000,0x0000, 0x1EBD,0x0000,0x0000, 0x1EBE,0x0000,0x0000, /* A899 */ +0x1EBF,0x0000,0x0000, 0x1EC0,0x0000,0x0000, 0x1EC1,0x0000,0x0000, /* A89C */ +0x1EC2,0x0000,0x0000, 0x1EC3,0x0000,0x0000, 0x1EC4,0x0000,0x0000, /* A89F */ +0x1EC5,0x0000,0x0000, 0x1EC6,0x0000,0x0000, 0x1EC7,0x0000,0x0000, /* A8A2 */ +0x1EC8,0x0000,0x0000, 0x1EC9,0x0000,0x0000, 0x1ECA,0x0000,0x0000, /* A8A5 */ +0x1ECB,0x0000,0x0000, 0x1ECC,0x0000,0x0000, 0x1ECD,0x0000,0x0000, /* A8A8 */ +0x1ECE,0x0000,0x0000, 0x1ECF,0x0000,0x0000, 0x1ED0,0x0000,0x0000, /* A8AB */ +0x1ED1,0x0000,0x0000, 0x1ED2,0x0000,0x0000, 0x1ED3,0x0000,0x0000, /* A8AE */ +0x1ED4,0x0000,0x0000, 0x1ED5,0x0000,0x0000, 0x1ED6,0x0000,0x0000, /* A8B1 */ +0x1ED7,0x0000,0x0000, 0x1ED8,0x0000,0x0000, 0x1ED9,0x0000,0x0000, /* A8B4 */ +0x1EDA,0x0000,0x0000, 0x1EDB,0x0000,0x0000, 0x1EDC,0x0000,0x0000, /* A8B7 */ +0x1EDD,0x0000,0x0000, 0x1EDE,0x0000,0x0000, 0x1EDF,0x0000,0x0000, /* A8BA */ +0x1EE0,0x0000,0x0000, 0x1EE1,0x0000,0x0000, 0x1EE2,0x0000,0x0000, /* A8BD */ +0x1EE3,0x0000,0x0000, 0x1EE4,0x0000,0x0000, 0x1EE5,0x0000,0x0000, /* A8C0 */ +0x1EE6,0x0000,0x0000, 0x1EE7,0x0000,0x0000, 0xFBC1,0xA8C5,0x0000, /* A8C3 */ +0xFBC1,0xA8C6,0x0000, 0xFBC1,0xA8C7,0x0000, 0xFBC1,0xA8C8,0x0000, /* A8C6 */ +0xFBC1,0xA8C9,0x0000, 0xFBC1,0xA8CA,0x0000, 0xFBC1,0xA8CB,0x0000, /* A8C9 */ +0xFBC1,0xA8CC,0x0000, 0xFBC1,0xA8CD,0x0000, 0x0296,0x0000,0x0000, /* A8CC */ +0x0297,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A8CF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A8D2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A8D5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA8DA,0x0000, /* A8D8 */ +0xFBC1,0xA8DB,0x0000, 0xFBC1,0xA8DC,0x0000, 0xFBC1,0xA8DD,0x0000, /* A8DB */ +0xFBC1,0xA8DE,0x0000, 0xFBC1,0xA8DF,0x0000, 0x0000,0x0000,0x0000, /* A8DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8ED */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F0 */ +0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F3 */ +0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x03A2,0x0000,0x0000, /* A8F6 */ +0x03A3,0x0000,0x0000, 0x03A4,0x0000,0x0000, 0x1BE9,0x0000,0x0000, /* A8F9 */ +0xFBC1,0xA8FC,0x0000, 0xFBC1,0xA8FD,0x0000, 0xFBC1,0xA8FE,0x0000, /* A8FC */ +0xFBC1,0xA8FF,0x0000 }; + +static const uint16 uca520_p0A9[]= { /* A900 (3 weights per char) */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* A900 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* A903 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* A906 */ +0x120E,0x0000,0x0000, 0x21AC,0x0000,0x0000, 0x21AD,0x0000,0x0000, /* A909 */ +0x21AE,0x0000,0x0000, 0x21AF,0x0000,0x0000, 0x21B0,0x0000,0x0000, /* A90C */ +0x21B1,0x0000,0x0000, 0x21B2,0x0000,0x0000, 0x21B3,0x0000,0x0000, /* A90F */ +0x21B4,0x0000,0x0000, 0x21B5,0x0000,0x0000, 0x21B6,0x0000,0x0000, /* A912 */ +0x21B7,0x0000,0x0000, 0x21B8,0x0000,0x0000, 0x21B9,0x0000,0x0000, /* A915 */ +0x21BA,0x0000,0x0000, 0x21BB,0x0000,0x0000, 0x21BC,0x0000,0x0000, /* A918 */ +0x21BD,0x0000,0x0000, 0x21BE,0x0000,0x0000, 0x21BF,0x0000,0x0000, /* A91B */ +0x21C0,0x0000,0x0000, 0x21C1,0x0000,0x0000, 0x21C2,0x0000,0x0000, /* A91E */ +0x21C3,0x0000,0x0000, 0x21C4,0x0000,0x0000, 0x21C5,0x0000,0x0000, /* A921 */ +0x21C6,0x0000,0x0000, 0x21C7,0x0000,0x0000, 0x21C8,0x0000,0x0000, /* A924 */ +0x21C9,0x0000,0x0000, 0x21CA,0x0000,0x0000, 0x21CB,0x0000,0x0000, /* A927 */ +0x21CC,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A92A */ +0x0000,0x0000,0x0000, 0x03DB,0x0000,0x0000, 0x029E,0x0000,0x0000, /* A92D */ +0x2188,0x0000,0x0000, 0x2189,0x0000,0x0000, 0x218A,0x0000,0x0000, /* A930 */ +0x218B,0x0000,0x0000, 0x218C,0x0000,0x0000, 0x218D,0x0000,0x0000, /* A933 */ +0x218E,0x0000,0x0000, 0x218F,0x0000,0x0000, 0x2190,0x0000,0x0000, /* A936 */ +0x2191,0x0000,0x0000, 0x2192,0x0000,0x0000, 0x2193,0x0000,0x0000, /* A939 */ +0x2194,0x0000,0x0000, 0x2195,0x0000,0x0000, 0x2196,0x0000,0x0000, /* A93C */ +0x2197,0x0000,0x0000, 0x2198,0x0000,0x0000, 0x2199,0x0000,0x0000, /* A93F */ +0x219A,0x0000,0x0000, 0x219B,0x0000,0x0000, 0x219C,0x0000,0x0000, /* A942 */ +0x219D,0x0000,0x0000, 0x219E,0x0000,0x0000, 0x219F,0x0000,0x0000, /* A945 */ +0x21A0,0x0000,0x0000, 0x21A1,0x0000,0x0000, 0x21A2,0x0000,0x0000, /* A948 */ +0x21A3,0x0000,0x0000, 0x21A4,0x0000,0x0000, 0x21A5,0x0000,0x0000, /* A94B */ +0x21A6,0x0000,0x0000, 0x21A7,0x0000,0x0000, 0x21A8,0x0000,0x0000, /* A94E */ +0x21A9,0x0000,0x0000, 0x21AA,0x0000,0x0000, 0x21AB,0x0000,0x0000, /* A951 */ +0xFBC1,0xA954,0x0000, 0xFBC1,0xA955,0x0000, 0xFBC1,0xA956,0x0000, /* A954 */ +0xFBC1,0xA957,0x0000, 0xFBC1,0xA958,0x0000, 0xFBC1,0xA959,0x0000, /* A957 */ +0xFBC1,0xA95A,0x0000, 0xFBC1,0xA95B,0x0000, 0xFBC1,0xA95C,0x0000, /* A95A */ +0xFBC1,0xA95D,0x0000, 0xFBC1,0xA95E,0x0000, 0x02C9,0x0000,0x0000, /* A95D */ +0x2A0F,0x0000,0x0000, 0x2A10,0x0000,0x0000, 0x2A11,0x0000,0x0000, /* A960 */ +0x2A12,0x0000,0x0000, 0x2A13,0x0000,0x0000, 0x2A14,0x0000,0x0000, /* A963 */ +0x2A15,0x0000,0x0000, 0x2A16,0x0000,0x0000, 0x2A17,0x0000,0x0000, /* A966 */ +0x2A18,0x0000,0x0000, 0x2A19,0x0000,0x0000, 0x2A1A,0x0000,0x0000, /* A969 */ +0x2A1B,0x0000,0x0000, 0x2A1C,0x0000,0x0000, 0x2A1D,0x0000,0x0000, /* A96C */ +0x2A1E,0x0000,0x0000, 0x2A1F,0x0000,0x0000, 0x2A20,0x0000,0x0000, /* A96F */ +0x2A21,0x0000,0x0000, 0x2A22,0x0000,0x0000, 0x2A23,0x0000,0x0000, /* A972 */ +0x2A24,0x0000,0x0000, 0x2A25,0x0000,0x0000, 0x2A26,0x0000,0x0000, /* A975 */ +0x2A27,0x0000,0x0000, 0x2A28,0x0000,0x0000, 0x2A29,0x0000,0x0000, /* A978 */ +0x2A2A,0x0000,0x0000, 0x2A2B,0x0000,0x0000, 0xFBC1,0xA97D,0x0000, /* A97B */ +0xFBC1,0xA97E,0x0000, 0xFBC1,0xA97F,0x0000, 0x0000,0x0000,0x0000, /* A97E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A981 */ +0x23EC,0x0000,0x0000, 0x23ED,0x0000,0x0000, 0x23EE,0x0000,0x0000, /* A984 */ +0x23EF,0x0000,0x0000, 0x23F0,0x0000,0x0000, 0x23F1,0x0000,0x0000, /* A987 */ +0x23F2,0x0000,0x0000, 0x23F3,0x0000,0x0000, 0x23F4,0x0000,0x0000, /* A98A */ +0x23F5,0x0000,0x0000, 0x23F6,0x0000,0x0000, 0x23F7,0x0000,0x0000, /* A98D */ +0x23F8,0x0000,0x0000, 0x23F9,0x0000,0x0000, 0x23FA,0x0000,0x0000, /* A990 */ +0x23FB,0x0000,0x0000, 0x23FC,0x0000,0x0000, 0x23FD,0x0000,0x0000, /* A993 */ +0x23FE,0x0000,0x0000, 0x23FF,0x0000,0x0000, 0x2400,0x0000,0x0000, /* A996 */ +0x2401,0x0000,0x0000, 0x2402,0x0000,0x0000, 0x2403,0x0000,0x0000, /* A999 */ +0x2404,0x0000,0x0000, 0x2405,0x0000,0x0000, 0x2406,0x0000,0x0000, /* A99C */ +0x2407,0x0000,0x0000, 0x2408,0x0000,0x0000, 0x2409,0x0000,0x0000, /* A99F */ +0x240A,0x0000,0x0000, 0x240B,0x0000,0x0000, 0x240C,0x0000,0x0000, /* A9A2 */ +0x240D,0x0000,0x0000, 0x240E,0x0000,0x0000, 0x240F,0x0000,0x0000, /* A9A5 */ +0x2410,0x0000,0x0000, 0x2411,0x0000,0x0000, 0x2412,0x0000,0x0000, /* A9A8 */ +0x2414,0x0000,0x0000, 0x2414,0x0000,0x0000, 0x2416,0x0000,0x0000, /* A9AB */ +0x2417,0x0000,0x0000, 0x2418,0x0000,0x0000, 0x2419,0x0000,0x0000, /* A9AE */ +0x241A,0x0000,0x0000, 0x241B,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A9B1 */ +0x241C,0x0000,0x0000, 0x2425,0x0000,0x0000, 0x241E,0x0000,0x0000, /* A9B4 */ +0x241F,0x0000,0x0000, 0x2420,0x0000,0x0000, 0x2421,0x0000,0x0000, /* A9B7 */ +0x2423,0x0000,0x0000, 0x2424,0x0000,0x0000, 0x241D,0x0000,0x0000, /* A9BA */ +0x2422,0x0000,0x0000, 0x2413,0x0000,0x0000, 0x2415,0x0000,0x0000, /* A9BD */ +0x2426,0x0000,0x0000, 0x02BE,0x0000,0x0000, 0x02BF,0x0000,0x0000, /* A9C0 */ +0x02C0,0x0000,0x0000, 0x02C1,0x0000,0x0000, 0x02C2,0x0000,0x0000, /* A9C3 */ +0x02C3,0x0000,0x0000, 0x0269,0x0000,0x0000, 0x02A9,0x0000,0x0000, /* A9C6 */ +0x02AA,0x0000,0x0000, 0x02C4,0x0000,0x0000, 0x02C5,0x0000,0x0000, /* A9C9 */ +0x02C6,0x0000,0x0000, 0x02C7,0x0000,0x0000, 0xFBC1,0xA9CE,0x0000, /* A9CC */ +0x11D4,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A9CF */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A9D2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A9D5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA9DA,0x0000, /* A9D8 */ +0xFBC1,0xA9DB,0x0000, 0xFBC1,0xA9DC,0x0000, 0xFBC1,0xA9DD,0x0000, /* A9DB */ +0x03DC,0x0000,0x0000, 0x03DD,0x0000,0x0000, 0xFBC1,0xA9E0,0x0000, /* A9DE */ +0xFBC1,0xA9E1,0x0000, 0xFBC1,0xA9E2,0x0000, 0xFBC1,0xA9E3,0x0000, /* A9E1 */ +0xFBC1,0xA9E4,0x0000, 0xFBC1,0xA9E5,0x0000, 0xFBC1,0xA9E6,0x0000, /* A9E4 */ +0xFBC1,0xA9E7,0x0000, 0xFBC1,0xA9E8,0x0000, 0xFBC1,0xA9E9,0x0000, /* A9E7 */ +0xFBC1,0xA9EA,0x0000, 0xFBC1,0xA9EB,0x0000, 0xFBC1,0xA9EC,0x0000, /* A9EA */ +0xFBC1,0xA9ED,0x0000, 0xFBC1,0xA9EE,0x0000, 0xFBC1,0xA9EF,0x0000, /* A9ED */ +0xFBC1,0xA9F0,0x0000, 0xFBC1,0xA9F1,0x0000, 0xFBC1,0xA9F2,0x0000, /* A9F0 */ +0xFBC1,0xA9F3,0x0000, 0xFBC1,0xA9F4,0x0000, 0xFBC1,0xA9F5,0x0000, /* A9F3 */ +0xFBC1,0xA9F6,0x0000, 0xFBC1,0xA9F7,0x0000, 0xFBC1,0xA9F8,0x0000, /* A9F6 */ +0xFBC1,0xA9F9,0x0000, 0xFBC1,0xA9FA,0x0000, 0xFBC1,0xA9FB,0x0000, /* A9F9 */ +0xFBC1,0xA9FC,0x0000, 0xFBC1,0xA9FD,0x0000, 0xFBC1,0xA9FE,0x0000, /* A9FC */ +0xFBC1,0xA9FF,0x0000 }; + +static const uint16 uca520_p0AA[]= { /* AA00 (3 weights per char) */ +0x2361,0x0000,0x0000, 0x2362,0x0000,0x0000, 0x2363,0x0000,0x0000, /* AA00 */ +0x2364,0x0000,0x0000, 0x2365,0x0000,0x0000, 0x2366,0x0000,0x0000, /* AA03 */ +0x2367,0x0000,0x0000, 0x2368,0x0000,0x0000, 0x2369,0x0000,0x0000, /* AA06 */ +0x236A,0x0000,0x0000, 0x236B,0x0000,0x0000, 0x236C,0x0000,0x0000, /* AA09 */ +0x236D,0x0000,0x0000, 0x236E,0x0000,0x0000, 0x236F,0x0000,0x0000, /* AA0C */ +0x2370,0x0000,0x0000, 0x2371,0x0000,0x0000, 0x2372,0x0000,0x0000, /* AA0F */ +0x2373,0x0000,0x0000, 0x2374,0x0000,0x0000, 0x2375,0x0000,0x0000, /* AA12 */ +0x2376,0x0000,0x0000, 0x2377,0x0000,0x0000, 0x2378,0x0000,0x0000, /* AA15 */ +0x2379,0x0000,0x0000, 0x237A,0x0000,0x0000, 0x237B,0x0000,0x0000, /* AA18 */ +0x237C,0x0000,0x0000, 0x237D,0x0000,0x0000, 0x237E,0x0000,0x0000, /* AA1B */ +0x237F,0x0000,0x0000, 0x2380,0x0000,0x0000, 0x2381,0x0000,0x0000, /* AA1E */ +0x2382,0x0000,0x0000, 0x2383,0x0000,0x0000, 0x2384,0x0000,0x0000, /* AA21 */ +0x2385,0x0000,0x0000, 0x2386,0x0000,0x0000, 0x2387,0x0000,0x0000, /* AA24 */ +0x2388,0x0000,0x0000, 0x2389,0x0000,0x0000, 0x238E,0x0000,0x0000, /* AA27 */ +0x238F,0x0000,0x0000, 0x2390,0x0000,0x0000, 0x2391,0x0000,0x0000, /* AA2A */ +0x2392,0x0000,0x0000, 0x2393,0x0000,0x0000, 0x2394,0x0000,0x0000, /* AA2D */ +0x2395,0x0000,0x0000, 0x2396,0x0000,0x0000, 0x2397,0x0000,0x0000, /* AA30 */ +0x238A,0x0000,0x0000, 0x238B,0x0000,0x0000, 0x238C,0x0000,0x0000, /* AA33 */ +0x238D,0x0000,0x0000, 0xFBC1,0xAA37,0x0000, 0xFBC1,0xAA38,0x0000, /* AA36 */ +0xFBC1,0xAA39,0x0000, 0xFBC1,0xAA3A,0x0000, 0xFBC1,0xAA3B,0x0000, /* AA39 */ +0xFBC1,0xAA3C,0x0000, 0xFBC1,0xAA3D,0x0000, 0xFBC1,0xAA3E,0x0000, /* AA3C */ +0xFBC1,0xAA3F,0x0000, 0x2398,0x0000,0x0000, 0x2399,0x0000,0x0000, /* AA3F */ +0x239A,0x0000,0x0000, 0x239B,0x0000,0x0000, 0x239C,0x0000,0x0000, /* AA42 */ +0x239D,0x0000,0x0000, 0x239E,0x0000,0x0000, 0x239F,0x0000,0x0000, /* AA45 */ +0x23A0,0x0000,0x0000, 0x23A1,0x0000,0x0000, 0x23A2,0x0000,0x0000, /* AA48 */ +0x23A3,0x0000,0x0000, 0x23A4,0x0000,0x0000, 0x23A5,0x0000,0x0000, /* AA4B */ +0xFBC1,0xAA4E,0x0000, 0xFBC1,0xAA4F,0x0000, 0x1205,0x0000,0x0000, /* AA4E */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* AA51 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* AA54 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* AA57 */ +0xFBC1,0xAA5A,0x0000, 0xFBC1,0xAA5B,0x0000, 0x03DE,0x0000,0x0000, /* AA5A */ +0x02AB,0x0000,0x0000, 0x02AC,0x0000,0x0000, 0x02AD,0x0000,0x0000, /* AA5D */ +0x21D3,0x0000,0x0000, 0x21D9,0x0000,0x0000, 0x21DB,0x0000,0x0000, /* AA60 */ +0x21DD,0x0000,0x0000, 0x21E2,0x0000,0x0000, 0x21E6,0x0000,0x0000, /* AA63 */ +0x21E9,0x0000,0x0000, 0x21EB,0x0000,0x0000, 0x21ED,0x0000,0x0000, /* AA66 */ +0x21EF,0x0000,0x0000, 0x21F7,0x0000,0x0000, 0x21FA,0x0000,0x0000, /* AA69 */ +0x2217,0x0000,0x0000, 0x221A,0x0000,0x0000, 0x221C,0x0000,0x0000, /* AA6C */ +0x2200,0x0000,0x0000, 0x11D5,0x0000,0x0000, 0x221D,0x0000,0x0000, /* AA6F */ +0x21DF,0x0000,0x0000, 0x220A,0x0000,0x0000, 0x2260,0x0000,0x0000, /* AA72 */ +0x2261,0x0000,0x0000, 0x2262,0x0000,0x0000, 0x03C8,0x0000,0x0000, /* AA75 */ +0x03C9,0x0000,0x0000, 0x03CA,0x0000,0x0000, 0x220B,0x0000,0x0000, /* AA78 */ +0x225F,0x0000,0x0000, 0xFBC1,0xAA7C,0x0000, 0xFBC1,0xAA7D,0x0000, /* AA7B */ +0xFBC1,0xAA7E,0x0000, 0xFBC1,0xAA7F,0x0000, 0x1FDE,0x0000,0x0000, /* AA7E */ +0x1FDF,0x0000,0x0000, 0x1FE0,0x0000,0x0000, 0x1FE1,0x0000,0x0000, /* AA81 */ +0x1FE2,0x0000,0x0000, 0x1FE3,0x0000,0x0000, 0x1FE4,0x0000,0x0000, /* AA84 */ +0x1FE5,0x0000,0x0000, 0x1FE6,0x0000,0x0000, 0x1FE7,0x0000,0x0000, /* AA87 */ +0x1FE8,0x0000,0x0000, 0x1FE9,0x0000,0x0000, 0x1FEA,0x0000,0x0000, /* AA8A */ +0x1FEB,0x0000,0x0000, 0x1FEC,0x0000,0x0000, 0x1FED,0x0000,0x0000, /* AA8D */ +0x1FEE,0x0000,0x0000, 0x1FEF,0x0000,0x0000, 0x1FF0,0x0000,0x0000, /* AA90 */ +0x1FF1,0x0000,0x0000, 0x1FF2,0x0000,0x0000, 0x1FF3,0x0000,0x0000, /* AA93 */ +0x1FF4,0x0000,0x0000, 0x1FF5,0x0000,0x0000, 0x1FF6,0x0000,0x0000, /* AA96 */ +0x1FF7,0x0000,0x0000, 0x1FF8,0x0000,0x0000, 0x1FF9,0x0000,0x0000, /* AA99 */ +0x1FFA,0x0000,0x0000, 0x1FFB,0x0000,0x0000, 0x1FFC,0x0000,0x0000, /* AA9C */ +0x1FFD,0x0000,0x0000, 0x1FFE,0x0000,0x0000, 0x1FFF,0x0000,0x0000, /* AA9F */ +0x2000,0x0000,0x0000, 0x2001,0x0000,0x0000, 0x2002,0x0000,0x0000, /* AAA2 */ +0x2003,0x0000,0x0000, 0x2004,0x0000,0x0000, 0x2005,0x0000,0x0000, /* AAA5 */ +0x2006,0x0000,0x0000, 0x2007,0x0000,0x0000, 0x2008,0x0000,0x0000, /* AAA8 */ +0x2009,0x0000,0x0000, 0x200A,0x0000,0x0000, 0x200B,0x0000,0x0000, /* AAAB */ +0x200C,0x0000,0x0000, 0x200D,0x0000,0x0000, 0x200E,0x0000,0x0000, /* AAAE */ +0x200F,0x0000,0x0000, 0x2010,0x0000,0x0000, 0x2011,0x0000,0x0000, /* AAB1 */ +0x2012,0x0000,0x0000, 0x2013,0x0000,0x0000, 0x2014,0x0000,0x0000, /* AAB4 */ +0x2015,0x0000,0x0000, 0x2016,0x0000,0x0000, 0x2017,0x0000,0x0000, /* AAB7 */ +0x2018,0x0000,0x0000, 0x2019,0x0000,0x0000, 0x201A,0x0000,0x0000, /* AABA */ +0x201B,0x0000,0x0000, 0x201C,0x0000,0x0000, 0x0000,0x0000,0x0000, /* AABD */ +0x201D,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x201E,0x0000,0x0000, /* AAC0 */ +0xFBC1,0xAAC3,0x0000, 0xFBC1,0xAAC4,0x0000, 0xFBC1,0xAAC5,0x0000, /* AAC3 */ +0xFBC1,0xAAC6,0x0000, 0xFBC1,0xAAC7,0x0000, 0xFBC1,0xAAC8,0x0000, /* AAC6 */ +0xFBC1,0xAAC9,0x0000, 0xFBC1,0xAACA,0x0000, 0xFBC1,0xAACB,0x0000, /* AAC9 */ +0xFBC1,0xAACC,0x0000, 0xFBC1,0xAACD,0x0000, 0xFBC1,0xAACE,0x0000, /* AACC */ +0xFBC1,0xAACF,0x0000, 0xFBC1,0xAAD0,0x0000, 0xFBC1,0xAAD1,0x0000, /* AACF */ +0xFBC1,0xAAD2,0x0000, 0xFBC1,0xAAD3,0x0000, 0xFBC1,0xAAD4,0x0000, /* AAD2 */ +0xFBC1,0xAAD5,0x0000, 0xFBC1,0xAAD6,0x0000, 0xFBC1,0xAAD7,0x0000, /* AAD5 */ +0xFBC1,0xAAD8,0x0000, 0xFBC1,0xAAD9,0x0000, 0xFBC1,0xAADA,0x0000, /* AAD8 */ +0x201F,0x0000,0x0000, 0x2020,0x0000,0x0000, 0x11D6,0x0000,0x0000, /* AADB */ +0x03A8,0x0000,0x0000, 0x03A9,0x0000,0x0000, 0xFBC1,0xAAE0,0x0000, /* AADE */ +0xFBC1,0xAAE1,0x0000, 0xFBC1,0xAAE2,0x0000, 0xFBC1,0xAAE3,0x0000, /* AAE1 */ +0xFBC1,0xAAE4,0x0000, 0xFBC1,0xAAE5,0x0000, 0xFBC1,0xAAE6,0x0000, /* AAE4 */ +0xFBC1,0xAAE7,0x0000, 0xFBC1,0xAAE8,0x0000, 0xFBC1,0xAAE9,0x0000, /* AAE7 */ +0xFBC1,0xAAEA,0x0000, 0xFBC1,0xAAEB,0x0000, 0xFBC1,0xAAEC,0x0000, /* AAEA */ +0xFBC1,0xAAED,0x0000, 0xFBC1,0xAAEE,0x0000, 0xFBC1,0xAAEF,0x0000, /* AAED */ +0xFBC1,0xAAF0,0x0000, 0xFBC1,0xAAF1,0x0000, 0xFBC1,0xAAF2,0x0000, /* AAF0 */ +0xFBC1,0xAAF3,0x0000, 0xFBC1,0xAAF4,0x0000, 0xFBC1,0xAAF5,0x0000, /* AAF3 */ +0xFBC1,0xAAF6,0x0000, 0xFBC1,0xAAF7,0x0000, 0xFBC1,0xAAF8,0x0000, /* AAF6 */ +0xFBC1,0xAAF9,0x0000, 0xFBC1,0xAAFA,0x0000, 0xFBC1,0xAAFB,0x0000, /* AAF9 */ +0xFBC1,0xAAFC,0x0000, 0xFBC1,0xAAFD,0x0000, 0xFBC1,0xAAFE,0x0000, /* AAFC */ +0xFBC1,0xAAFF,0x0000 }; + +static const uint16 uca520_p0AB[]= { /* AB00 (3 weights per char) */ +0xFBC1,0xAB00,0x0000, 0xFBC1,0xAB01,0x0000, 0xFBC1,0xAB02,0x0000, /* AB00 */ +0xFBC1,0xAB03,0x0000, 0xFBC1,0xAB04,0x0000, 0xFBC1,0xAB05,0x0000, /* AB03 */ +0xFBC1,0xAB06,0x0000, 0xFBC1,0xAB07,0x0000, 0xFBC1,0xAB08,0x0000, /* AB06 */ +0xFBC1,0xAB09,0x0000, 0xFBC1,0xAB0A,0x0000, 0xFBC1,0xAB0B,0x0000, /* AB09 */ +0xFBC1,0xAB0C,0x0000, 0xFBC1,0xAB0D,0x0000, 0xFBC1,0xAB0E,0x0000, /* AB0C */ +0xFBC1,0xAB0F,0x0000, 0xFBC1,0xAB10,0x0000, 0xFBC1,0xAB11,0x0000, /* AB0F */ +0xFBC1,0xAB12,0x0000, 0xFBC1,0xAB13,0x0000, 0xFBC1,0xAB14,0x0000, /* AB12 */ +0xFBC1,0xAB15,0x0000, 0xFBC1,0xAB16,0x0000, 0xFBC1,0xAB17,0x0000, /* AB15 */ +0xFBC1,0xAB18,0x0000, 0xFBC1,0xAB19,0x0000, 0xFBC1,0xAB1A,0x0000, /* AB18 */ +0xFBC1,0xAB1B,0x0000, 0xFBC1,0xAB1C,0x0000, 0xFBC1,0xAB1D,0x0000, /* AB1B */ +0xFBC1,0xAB1E,0x0000, 0xFBC1,0xAB1F,0x0000, 0xFBC1,0xAB20,0x0000, /* AB1E */ +0xFBC1,0xAB21,0x0000, 0xFBC1,0xAB22,0x0000, 0xFBC1,0xAB23,0x0000, /* AB21 */ +0xFBC1,0xAB24,0x0000, 0xFBC1,0xAB25,0x0000, 0xFBC1,0xAB26,0x0000, /* AB24 */ +0xFBC1,0xAB27,0x0000, 0xFBC1,0xAB28,0x0000, 0xFBC1,0xAB29,0x0000, /* AB27 */ +0xFBC1,0xAB2A,0x0000, 0xFBC1,0xAB2B,0x0000, 0xFBC1,0xAB2C,0x0000, /* AB2A */ +0xFBC1,0xAB2D,0x0000, 0xFBC1,0xAB2E,0x0000, 0xFBC1,0xAB2F,0x0000, /* AB2D */ +0xFBC1,0xAB30,0x0000, 0xFBC1,0xAB31,0x0000, 0xFBC1,0xAB32,0x0000, /* AB30 */ +0xFBC1,0xAB33,0x0000, 0xFBC1,0xAB34,0x0000, 0xFBC1,0xAB35,0x0000, /* AB33 */ +0xFBC1,0xAB36,0x0000, 0xFBC1,0xAB37,0x0000, 0xFBC1,0xAB38,0x0000, /* AB36 */ +0xFBC1,0xAB39,0x0000, 0xFBC1,0xAB3A,0x0000, 0xFBC1,0xAB3B,0x0000, /* AB39 */ +0xFBC1,0xAB3C,0x0000, 0xFBC1,0xAB3D,0x0000, 0xFBC1,0xAB3E,0x0000, /* AB3C */ +0xFBC1,0xAB3F,0x0000, 0xFBC1,0xAB40,0x0000, 0xFBC1,0xAB41,0x0000, /* AB3F */ +0xFBC1,0xAB42,0x0000, 0xFBC1,0xAB43,0x0000, 0xFBC1,0xAB44,0x0000, /* AB42 */ +0xFBC1,0xAB45,0x0000, 0xFBC1,0xAB46,0x0000, 0xFBC1,0xAB47,0x0000, /* AB45 */ +0xFBC1,0xAB48,0x0000, 0xFBC1,0xAB49,0x0000, 0xFBC1,0xAB4A,0x0000, /* AB48 */ +0xFBC1,0xAB4B,0x0000, 0xFBC1,0xAB4C,0x0000, 0xFBC1,0xAB4D,0x0000, /* AB4B */ +0xFBC1,0xAB4E,0x0000, 0xFBC1,0xAB4F,0x0000, 0xFBC1,0xAB50,0x0000, /* AB4E */ +0xFBC1,0xAB51,0x0000, 0xFBC1,0xAB52,0x0000, 0xFBC1,0xAB53,0x0000, /* AB51 */ +0xFBC1,0xAB54,0x0000, 0xFBC1,0xAB55,0x0000, 0xFBC1,0xAB56,0x0000, /* AB54 */ +0xFBC1,0xAB57,0x0000, 0xFBC1,0xAB58,0x0000, 0xFBC1,0xAB59,0x0000, /* AB57 */ +0xFBC1,0xAB5A,0x0000, 0xFBC1,0xAB5B,0x0000, 0xFBC1,0xAB5C,0x0000, /* AB5A */ +0xFBC1,0xAB5D,0x0000, 0xFBC1,0xAB5E,0x0000, 0xFBC1,0xAB5F,0x0000, /* AB5D */ +0xFBC1,0xAB60,0x0000, 0xFBC1,0xAB61,0x0000, 0xFBC1,0xAB62,0x0000, /* AB60 */ +0xFBC1,0xAB63,0x0000, 0xFBC1,0xAB64,0x0000, 0xFBC1,0xAB65,0x0000, /* AB63 */ +0xFBC1,0xAB66,0x0000, 0xFBC1,0xAB67,0x0000, 0xFBC1,0xAB68,0x0000, /* AB66 */ +0xFBC1,0xAB69,0x0000, 0xFBC1,0xAB6A,0x0000, 0xFBC1,0xAB6B,0x0000, /* AB69 */ +0xFBC1,0xAB6C,0x0000, 0xFBC1,0xAB6D,0x0000, 0xFBC1,0xAB6E,0x0000, /* AB6C */ +0xFBC1,0xAB6F,0x0000, 0xFBC1,0xAB70,0x0000, 0xFBC1,0xAB71,0x0000, /* AB6F */ +0xFBC1,0xAB72,0x0000, 0xFBC1,0xAB73,0x0000, 0xFBC1,0xAB74,0x0000, /* AB72 */ +0xFBC1,0xAB75,0x0000, 0xFBC1,0xAB76,0x0000, 0xFBC1,0xAB77,0x0000, /* AB75 */ +0xFBC1,0xAB78,0x0000, 0xFBC1,0xAB79,0x0000, 0xFBC1,0xAB7A,0x0000, /* AB78 */ +0xFBC1,0xAB7B,0x0000, 0xFBC1,0xAB7C,0x0000, 0xFBC1,0xAB7D,0x0000, /* AB7B */ +0xFBC1,0xAB7E,0x0000, 0xFBC1,0xAB7F,0x0000, 0xFBC1,0xAB80,0x0000, /* AB7E */ +0xFBC1,0xAB81,0x0000, 0xFBC1,0xAB82,0x0000, 0xFBC1,0xAB83,0x0000, /* AB81 */ +0xFBC1,0xAB84,0x0000, 0xFBC1,0xAB85,0x0000, 0xFBC1,0xAB86,0x0000, /* AB84 */ +0xFBC1,0xAB87,0x0000, 0xFBC1,0xAB88,0x0000, 0xFBC1,0xAB89,0x0000, /* AB87 */ +0xFBC1,0xAB8A,0x0000, 0xFBC1,0xAB8B,0x0000, 0xFBC1,0xAB8C,0x0000, /* AB8A */ +0xFBC1,0xAB8D,0x0000, 0xFBC1,0xAB8E,0x0000, 0xFBC1,0xAB8F,0x0000, /* AB8D */ +0xFBC1,0xAB90,0x0000, 0xFBC1,0xAB91,0x0000, 0xFBC1,0xAB92,0x0000, /* AB90 */ +0xFBC1,0xAB93,0x0000, 0xFBC1,0xAB94,0x0000, 0xFBC1,0xAB95,0x0000, /* AB93 */ +0xFBC1,0xAB96,0x0000, 0xFBC1,0xAB97,0x0000, 0xFBC1,0xAB98,0x0000, /* AB96 */ +0xFBC1,0xAB99,0x0000, 0xFBC1,0xAB9A,0x0000, 0xFBC1,0xAB9B,0x0000, /* AB99 */ +0xFBC1,0xAB9C,0x0000, 0xFBC1,0xAB9D,0x0000, 0xFBC1,0xAB9E,0x0000, /* AB9C */ +0xFBC1,0xAB9F,0x0000, 0xFBC1,0xABA0,0x0000, 0xFBC1,0xABA1,0x0000, /* AB9F */ +0xFBC1,0xABA2,0x0000, 0xFBC1,0xABA3,0x0000, 0xFBC1,0xABA4,0x0000, /* ABA2 */ +0xFBC1,0xABA5,0x0000, 0xFBC1,0xABA6,0x0000, 0xFBC1,0xABA7,0x0000, /* ABA5 */ +0xFBC1,0xABA8,0x0000, 0xFBC1,0xABA9,0x0000, 0xFBC1,0xABAA,0x0000, /* ABA8 */ +0xFBC1,0xABAB,0x0000, 0xFBC1,0xABAC,0x0000, 0xFBC1,0xABAD,0x0000, /* ABAB */ +0xFBC1,0xABAE,0x0000, 0xFBC1,0xABAF,0x0000, 0xFBC1,0xABB0,0x0000, /* ABAE */ +0xFBC1,0xABB1,0x0000, 0xFBC1,0xABB2,0x0000, 0xFBC1,0xABB3,0x0000, /* ABB1 */ +0xFBC1,0xABB4,0x0000, 0xFBC1,0xABB5,0x0000, 0xFBC1,0xABB6,0x0000, /* ABB4 */ +0xFBC1,0xABB7,0x0000, 0xFBC1,0xABB8,0x0000, 0xFBC1,0xABB9,0x0000, /* ABB7 */ +0xFBC1,0xABBA,0x0000, 0xFBC1,0xABBB,0x0000, 0xFBC1,0xABBC,0x0000, /* ABBA */ +0xFBC1,0xABBD,0x0000, 0xFBC1,0xABBE,0x0000, 0xFBC1,0xABBF,0x0000, /* ABBD */ +0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E54,0x0000,0x0000, /* ABC0 */ +0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E57,0x0000,0x0000, /* ABC3 */ +0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E5A,0x0000,0x0000, /* ABC6 */ +0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5D,0x0000,0x0000, /* ABC9 */ +0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E60,0x0000,0x0000, /* ABCC */ +0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E63,0x0000,0x0000, /* ABCF */ +0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, /* ABD2 */ +0x1E67,0x0000,0x0000, 0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, /* ABD5 */ +0x1E6A,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6C,0x0000,0x0000, /* ABD8 */ +0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E77,0x0000,0x0000, /* ABDB */ +0x1E78,0x0000,0x0000, 0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, /* ABDE */ +0x1E7B,0x0000,0x0000, 0x1E7C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, /* ABE1 */ +0x1E6E,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E70,0x0000,0x0000, /* ABE4 */ +0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E73,0x0000,0x0000, /* ABE7 */ +0x1E74,0x0000,0x0000, 0x02AE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* ABEA */ +0x1E7D,0x0000,0x0000, 0xFBC1,0xABEE,0x0000, 0xFBC1,0xABEF,0x0000, /* ABED */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* ABF0 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* ABF3 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* ABF6 */ +0x120E,0x0000,0x0000, 0xFBC1,0xABFA,0x0000, 0xFBC1,0xABFB,0x0000, /* ABF9 */ +0xFBC1,0xABFC,0x0000, 0xFBC1,0xABFD,0x0000, 0xFBC1,0xABFE,0x0000, /* ABFC */ +0xFBC1,0xABFF,0x0000 }; + +static const uint16 uca520_p0D7[]= { /* D700 (3 weights per char) */ +0xFBC1,0xD700,0x0000, 0xFBC1,0xD701,0x0000, 0xFBC1,0xD702,0x0000, /* D700 */ +0xFBC1,0xD703,0x0000, 0xFBC1,0xD704,0x0000, 0xFBC1,0xD705,0x0000, /* D703 */ +0xFBC1,0xD706,0x0000, 0xFBC1,0xD707,0x0000, 0xFBC1,0xD708,0x0000, /* D706 */ +0xFBC1,0xD709,0x0000, 0xFBC1,0xD70A,0x0000, 0xFBC1,0xD70B,0x0000, /* D709 */ +0xFBC1,0xD70C,0x0000, 0xFBC1,0xD70D,0x0000, 0xFBC1,0xD70E,0x0000, /* D70C */ +0xFBC1,0xD70F,0x0000, 0xFBC1,0xD710,0x0000, 0xFBC1,0xD711,0x0000, /* D70F */ +0xFBC1,0xD712,0x0000, 0xFBC1,0xD713,0x0000, 0xFBC1,0xD714,0x0000, /* D712 */ +0xFBC1,0xD715,0x0000, 0xFBC1,0xD716,0x0000, 0xFBC1,0xD717,0x0000, /* D715 */ +0xFBC1,0xD718,0x0000, 0xFBC1,0xD719,0x0000, 0xFBC1,0xD71A,0x0000, /* D718 */ +0xFBC1,0xD71B,0x0000, 0xFBC1,0xD71C,0x0000, 0xFBC1,0xD71D,0x0000, /* D71B */ +0xFBC1,0xD71E,0x0000, 0xFBC1,0xD71F,0x0000, 0xFBC1,0xD720,0x0000, /* D71E */ +0xFBC1,0xD721,0x0000, 0xFBC1,0xD722,0x0000, 0xFBC1,0xD723,0x0000, /* D721 */ +0xFBC1,0xD724,0x0000, 0xFBC1,0xD725,0x0000, 0xFBC1,0xD726,0x0000, /* D724 */ +0xFBC1,0xD727,0x0000, 0xFBC1,0xD728,0x0000, 0xFBC1,0xD729,0x0000, /* D727 */ +0xFBC1,0xD72A,0x0000, 0xFBC1,0xD72B,0x0000, 0xFBC1,0xD72C,0x0000, /* D72A */ +0xFBC1,0xD72D,0x0000, 0xFBC1,0xD72E,0x0000, 0xFBC1,0xD72F,0x0000, /* D72D */ +0xFBC1,0xD730,0x0000, 0xFBC1,0xD731,0x0000, 0xFBC1,0xD732,0x0000, /* D730 */ +0xFBC1,0xD733,0x0000, 0xFBC1,0xD734,0x0000, 0xFBC1,0xD735,0x0000, /* D733 */ +0xFBC1,0xD736,0x0000, 0xFBC1,0xD737,0x0000, 0xFBC1,0xD738,0x0000, /* D736 */ +0xFBC1,0xD739,0x0000, 0xFBC1,0xD73A,0x0000, 0xFBC1,0xD73B,0x0000, /* D739 */ +0xFBC1,0xD73C,0x0000, 0xFBC1,0xD73D,0x0000, 0xFBC1,0xD73E,0x0000, /* D73C */ +0xFBC1,0xD73F,0x0000, 0xFBC1,0xD740,0x0000, 0xFBC1,0xD741,0x0000, /* D73F */ +0xFBC1,0xD742,0x0000, 0xFBC1,0xD743,0x0000, 0xFBC1,0xD744,0x0000, /* D742 */ +0xFBC1,0xD745,0x0000, 0xFBC1,0xD746,0x0000, 0xFBC1,0xD747,0x0000, /* D745 */ +0xFBC1,0xD748,0x0000, 0xFBC1,0xD749,0x0000, 0xFBC1,0xD74A,0x0000, /* D748 */ +0xFBC1,0xD74B,0x0000, 0xFBC1,0xD74C,0x0000, 0xFBC1,0xD74D,0x0000, /* D74B */ +0xFBC1,0xD74E,0x0000, 0xFBC1,0xD74F,0x0000, 0xFBC1,0xD750,0x0000, /* D74E */ +0xFBC1,0xD751,0x0000, 0xFBC1,0xD752,0x0000, 0xFBC1,0xD753,0x0000, /* D751 */ +0xFBC1,0xD754,0x0000, 0xFBC1,0xD755,0x0000, 0xFBC1,0xD756,0x0000, /* D754 */ +0xFBC1,0xD757,0x0000, 0xFBC1,0xD758,0x0000, 0xFBC1,0xD759,0x0000, /* D757 */ +0xFBC1,0xD75A,0x0000, 0xFBC1,0xD75B,0x0000, 0xFBC1,0xD75C,0x0000, /* D75A */ +0xFBC1,0xD75D,0x0000, 0xFBC1,0xD75E,0x0000, 0xFBC1,0xD75F,0x0000, /* D75D */ +0xFBC1,0xD760,0x0000, 0xFBC1,0xD761,0x0000, 0xFBC1,0xD762,0x0000, /* D760 */ +0xFBC1,0xD763,0x0000, 0xFBC1,0xD764,0x0000, 0xFBC1,0xD765,0x0000, /* D763 */ +0xFBC1,0xD766,0x0000, 0xFBC1,0xD767,0x0000, 0xFBC1,0xD768,0x0000, /* D766 */ +0xFBC1,0xD769,0x0000, 0xFBC1,0xD76A,0x0000, 0xFBC1,0xD76B,0x0000, /* D769 */ +0xFBC1,0xD76C,0x0000, 0xFBC1,0xD76D,0x0000, 0xFBC1,0xD76E,0x0000, /* D76C */ +0xFBC1,0xD76F,0x0000, 0xFBC1,0xD770,0x0000, 0xFBC1,0xD771,0x0000, /* D76F */ +0xFBC1,0xD772,0x0000, 0xFBC1,0xD773,0x0000, 0xFBC1,0xD774,0x0000, /* D772 */ +0xFBC1,0xD775,0x0000, 0xFBC1,0xD776,0x0000, 0xFBC1,0xD777,0x0000, /* D775 */ +0xFBC1,0xD778,0x0000, 0xFBC1,0xD779,0x0000, 0xFBC1,0xD77A,0x0000, /* D778 */ +0xFBC1,0xD77B,0x0000, 0xFBC1,0xD77C,0x0000, 0xFBC1,0xD77D,0x0000, /* D77B */ +0xFBC1,0xD77E,0x0000, 0xFBC1,0xD77F,0x0000, 0xFBC1,0xD780,0x0000, /* D77E */ +0xFBC1,0xD781,0x0000, 0xFBC1,0xD782,0x0000, 0xFBC1,0xD783,0x0000, /* D781 */ +0xFBC1,0xD784,0x0000, 0xFBC1,0xD785,0x0000, 0xFBC1,0xD786,0x0000, /* D784 */ +0xFBC1,0xD787,0x0000, 0xFBC1,0xD788,0x0000, 0xFBC1,0xD789,0x0000, /* D787 */ +0xFBC1,0xD78A,0x0000, 0xFBC1,0xD78B,0x0000, 0xFBC1,0xD78C,0x0000, /* D78A */ +0xFBC1,0xD78D,0x0000, 0xFBC1,0xD78E,0x0000, 0xFBC1,0xD78F,0x0000, /* D78D */ +0xFBC1,0xD790,0x0000, 0xFBC1,0xD791,0x0000, 0xFBC1,0xD792,0x0000, /* D790 */ +0xFBC1,0xD793,0x0000, 0xFBC1,0xD794,0x0000, 0xFBC1,0xD795,0x0000, /* D793 */ +0xFBC1,0xD796,0x0000, 0xFBC1,0xD797,0x0000, 0xFBC1,0xD798,0x0000, /* D796 */ +0xFBC1,0xD799,0x0000, 0xFBC1,0xD79A,0x0000, 0xFBC1,0xD79B,0x0000, /* D799 */ +0xFBC1,0xD79C,0x0000, 0xFBC1,0xD79D,0x0000, 0xFBC1,0xD79E,0x0000, /* D79C */ +0xFBC1,0xD79F,0x0000, 0xFBC1,0xD7A0,0x0000, 0xFBC1,0xD7A1,0x0000, /* D79F */ +0xFBC1,0xD7A2,0x0000, 0xFBC1,0xD7A3,0x0000, 0xFBC1,0xD7A4,0x0000, /* D7A2 */ +0xFBC1,0xD7A5,0x0000, 0xFBC1,0xD7A6,0x0000, 0xFBC1,0xD7A7,0x0000, /* D7A5 */ +0xFBC1,0xD7A8,0x0000, 0xFBC1,0xD7A9,0x0000, 0xFBC1,0xD7AA,0x0000, /* D7A8 */ +0xFBC1,0xD7AB,0x0000, 0xFBC1,0xD7AC,0x0000, 0xFBC1,0xD7AD,0x0000, /* D7AB */ +0xFBC1,0xD7AE,0x0000, 0xFBC1,0xD7AF,0x0000, 0x2A75,0x0000,0x0000, /* D7AE */ +0x2A76,0x0000,0x0000, 0x2A77,0x0000,0x0000, 0x2A78,0x0000,0x0000, /* D7B1 */ +0x2A79,0x0000,0x0000, 0x2A7A,0x0000,0x0000, 0x2A7B,0x0000,0x0000, /* D7B4 */ +0x2A7C,0x0000,0x0000, 0x2A7D,0x0000,0x0000, 0x2A7E,0x0000,0x0000, /* D7B7 */ +0x2A7F,0x0000,0x0000, 0x2A80,0x0000,0x0000, 0x2A81,0x0000,0x0000, /* D7BA */ +0x2A82,0x0000,0x0000, 0x2A83,0x0000,0x0000, 0x2A84,0x0000,0x0000, /* D7BD */ +0x2A85,0x0000,0x0000, 0x2A86,0x0000,0x0000, 0x2A87,0x0000,0x0000, /* D7C0 */ +0x2A88,0x0000,0x0000, 0x2A89,0x0000,0x0000, 0x2A8A,0x0000,0x0000, /* D7C3 */ +0x2A8B,0x0000,0x0000, 0xFBC1,0xD7C7,0x0000, 0xFBC1,0xD7C8,0x0000, /* D7C6 */ +0xFBC1,0xD7C9,0x0000, 0xFBC1,0xD7CA,0x0000, 0x2AE4,0x0000,0x0000, /* D7C9 */ +0x2AE5,0x0000,0x0000, 0x2AE6,0x0000,0x0000, 0x2AE7,0x0000,0x0000, /* D7CC */ +0x2AE8,0x0000,0x0000, 0x2AE9,0x0000,0x0000, 0x2AEA,0x0000,0x0000, /* D7CF */ +0x2AEB,0x0000,0x0000, 0x2AEC,0x0000,0x0000, 0x2AED,0x0000,0x0000, /* D7D2 */ +0x2AEE,0x0000,0x0000, 0x2AEF,0x0000,0x0000, 0x2AF0,0x0000,0x0000, /* D7D5 */ +0x2AF1,0x0000,0x0000, 0x2AF2,0x0000,0x0000, 0x2AF3,0x0000,0x0000, /* D7D8 */ +0x2AF4,0x0000,0x0000, 0x2AF5,0x0000,0x0000, 0x2AF6,0x0000,0x0000, /* D7DB */ +0x2AF7,0x0000,0x0000, 0x2AF8,0x0000,0x0000, 0x2AF9,0x0000,0x0000, /* D7DE */ +0x2AFA,0x0000,0x0000, 0x2AFB,0x0000,0x0000, 0x2AFC,0x0000,0x0000, /* D7E1 */ +0x2AFD,0x0000,0x0000, 0x2AFE,0x0000,0x0000, 0x2AFF,0x0000,0x0000, /* D7E4 */ +0x2B00,0x0000,0x0000, 0x2B01,0x0000,0x0000, 0x2B02,0x0000,0x0000, /* D7E7 */ +0x2B03,0x0000,0x0000, 0x2B04,0x0000,0x0000, 0x2B05,0x0000,0x0000, /* D7EA */ +0x2B06,0x0000,0x0000, 0x2B07,0x0000,0x0000, 0x2B08,0x0000,0x0000, /* D7ED */ +0x2B09,0x0000,0x0000, 0x2B0A,0x0000,0x0000, 0x2B0B,0x0000,0x0000, /* D7F0 */ +0x2B0C,0x0000,0x0000, 0x2B0D,0x0000,0x0000, 0x2B0E,0x0000,0x0000, /* D7F3 */ +0x2B0F,0x0000,0x0000, 0x2B10,0x0000,0x0000, 0x2B11,0x0000,0x0000, /* D7F6 */ +0x2B12,0x0000,0x0000, 0x2B13,0x0000,0x0000, 0x2B14,0x0000,0x0000, /* D7F9 */ +0xFBC1,0xD7FC,0x0000, 0xFBC1,0xD7FD,0x0000, 0xFBC1,0xD7FE,0x0000, /* D7FC */ +0xFBC1,0xD7FF,0x0000 }; + +static const uint16 uca520_p0F9[]= { /* F900 (3 weights per char) */ +0xFB41,0x8C48,0x0000, 0xFB40,0xE6F4,0x0000, 0xFB41,0x8ECA,0x0000, /* F900 */ +0xFB41,0x8CC8,0x0000, 0xFB40,0xEED1,0x0000, 0xFB40,0xCE32,0x0000, /* F903 */ +0xFB40,0xD3E5,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* F906 */ +0xFB40,0xD951,0x0000, 0xFB41,0x91D1,0x0000, 0xFB40,0xD587,0x0000, /* F909 */ +0xFB40,0xD948,0x0000, 0xFB40,0xE1F6,0x0000, 0xFB40,0xF669,0x0000, /* F90C */ +0xFB40,0xFF85,0x0000, 0xFB41,0x863F,0x0000, 0xFB41,0x87BA,0x0000, /* F90F */ +0xFB41,0x88F8,0x0000, 0xFB41,0x908F,0x0000, 0xFB40,0xEA02,0x0000, /* F912 */ +0xFB40,0xED1B,0x0000, 0xFB40,0xF0D9,0x0000, 0xFB40,0xF3DE,0x0000, /* F915 */ +0xFB41,0x843D,0x0000, 0xFB41,0x916A,0x0000, 0xFB41,0x99F1,0x0000, /* F918 */ +0xFB40,0xCE82,0x0000, 0xFB40,0xD375,0x0000, 0xFB40,0xEB04,0x0000, /* F91B */ +0xFB40,0xF21B,0x0000, 0xFB41,0x862D,0x0000, 0xFB41,0x9E1E,0x0000, /* F91E */ +0xFB40,0xDD50,0x0000, 0xFB40,0xEFEB,0x0000, 0xFB41,0x85CD,0x0000, /* F921 */ +0xFB41,0x8964,0x0000, 0xFB40,0xE2C9,0x0000, 0xFB41,0x81D8,0x0000, /* F924 */ +0xFB41,0x881F,0x0000, 0xFB40,0xDECA,0x0000, 0xFB40,0xE717,0x0000, /* F927 */ +0xFB40,0xED6A,0x0000, 0xFB40,0xF2FC,0x0000, 0xFB41,0x90CE,0x0000, /* F92A */ +0xFB40,0xCF86,0x0000, 0xFB40,0xD1B7,0x0000, 0xFB40,0xD2DE,0x0000, /* F92D */ +0xFB40,0xE4C4,0x0000, 0xFB40,0xEAD3,0x0000, 0xFB40,0xF210,0x0000, /* F930 */ +0xFB40,0xF6E7,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x8606,0x0000, /* F933 */ +0xFB41,0x865C,0x0000, 0xFB41,0x8DEF,0x0000, 0xFB41,0x9732,0x0000, /* F936 */ +0xFB41,0x9B6F,0x0000, 0xFB41,0x9DFA,0x0000, 0xFB40,0xF88C,0x0000, /* F939 */ +0xFB40,0xF97F,0x0000, 0xFB40,0xFDA0,0x0000, 0xFB41,0x83C9,0x0000, /* F93C */ +0xFB41,0x9304,0x0000, 0xFB41,0x9E7F,0x0000, 0xFB41,0x8AD6,0x0000, /* F93F */ +0xFB40,0xD8DF,0x0000, 0xFB40,0xDF04,0x0000, 0xFB40,0xFC60,0x0000, /* F942 */ +0xFB41,0x807E,0x0000, 0xFB40,0xF262,0x0000, 0xFB40,0xF8CA,0x0000, /* F945 */ +0xFB41,0x8CC2,0x0000, 0xFB41,0x96F7,0x0000, 0xFB40,0xD8D8,0x0000, /* F948 */ +0xFB40,0xDC62,0x0000, 0xFB40,0xEA13,0x0000, 0xFB40,0xEDDA,0x0000, /* F94B */ +0xFB40,0xEF0F,0x0000, 0xFB40,0xFD2F,0x0000, 0xFB40,0xFE37,0x0000, /* F94E */ +0xFB41,0x964B,0x0000, 0xFB40,0xD2D2,0x0000, 0xFB41,0x808B,0x0000, /* F951 */ +0xFB40,0xD1DC,0x0000, 0xFB40,0xD1CC,0x0000, 0xFB40,0xFA1C,0x0000, /* F954 */ +0xFB40,0xFDBE,0x0000, 0xFB41,0x83F1,0x0000, 0xFB41,0x9675,0x0000, /* F957 */ +0xFB41,0x8B80,0x0000, 0xFB40,0xE2CF,0x0000, 0xFB40,0xEA02,0x0000, /* F95A */ +0xFB41,0x8AFE,0x0000, 0xFB40,0xCE39,0x0000, 0xFB40,0xDBE7,0x0000, /* F95D */ +0xFB40,0xE012,0x0000, 0xFB40,0xF387,0x0000, 0xFB40,0xF570,0x0000, /* F960 */ +0xFB40,0xD317,0x0000, 0xFB40,0xF8FB,0x0000, 0xFB40,0xCFBF,0x0000, /* F963 */ +0xFB40,0xDFA9,0x0000, 0xFB40,0xCE0D,0x0000, 0xFB40,0xECCC,0x0000, /* F966 */ +0xFB40,0xE578,0x0000, 0xFB40,0xFD22,0x0000, 0xFB40,0xD3C3,0x0000, /* F969 */ +0xFB40,0xD85E,0x0000, 0xFB40,0xF701,0x0000, 0xFB41,0x8449,0x0000, /* F96C */ +0xFB41,0x8AAA,0x0000, 0xFB40,0xEBBA,0x0000, 0xFB41,0x8FB0,0x0000, /* F96F */ +0xFB40,0xEC88,0x0000, 0xFB40,0xE2FE,0x0000, 0xFB41,0x82E5,0x0000, /* F972 */ +0xFB40,0xE3A0,0x0000, 0xFB40,0xF565,0x0000, 0xFB40,0xCEAE,0x0000, /* F975 */ +0xFB40,0xD169,0x0000, 0xFB40,0xD1C9,0x0000, 0xFB40,0xE881,0x0000, /* F978 */ +0xFB40,0xFCE7,0x0000, 0xFB41,0x826F,0x0000, 0xFB41,0x8AD2,0x0000, /* F97B */ +0xFB41,0x91CF,0x0000, 0xFB40,0xD2F5,0x0000, 0xFB40,0xD442,0x0000, /* F97E */ +0xFB40,0xD973,0x0000, 0xFB40,0xDEEC,0x0000, 0xFB40,0xE5C5,0x0000, /* F981 */ +0xFB40,0xEFFE,0x0000, 0xFB40,0xF92A,0x0000, 0xFB41,0x95AD,0x0000, /* F984 */ +0xFB41,0x9A6A,0x0000, 0xFB41,0x9E97,0x0000, 0xFB41,0x9ECE,0x0000, /* F987 */ +0xFB40,0xD29B,0x0000, 0xFB40,0xE6C6,0x0000, 0xFB40,0xEB77,0x0000, /* F98A */ +0xFB41,0x8F62,0x0000, 0xFB40,0xDE74,0x0000, 0xFB40,0xE190,0x0000, /* F98D */ +0xFB40,0xE200,0x0000, 0xFB40,0xE49A,0x0000, 0xFB40,0xEF23,0x0000, /* F990 */ +0xFB40,0xF149,0x0000, 0xFB40,0xF489,0x0000, 0xFB40,0xF9CA,0x0000, /* F993 */ +0xFB40,0xFDF4,0x0000, 0xFB41,0x806F,0x0000, 0xFB41,0x8F26,0x0000, /* F996 */ +0xFB41,0x84EE,0x0000, 0xFB41,0x9023,0x0000, 0xFB41,0x934A,0x0000, /* F999 */ +0xFB40,0xD217,0x0000, 0xFB40,0xD2A3,0x0000, 0xFB40,0xD4BD,0x0000, /* F99C */ +0xFB40,0xF0C8,0x0000, 0xFB41,0x88C2,0x0000, 0xFB41,0x8AAA,0x0000, /* F99F */ +0xFB40,0xDEC9,0x0000, 0xFB40,0xDFF5,0x0000, 0xFB40,0xE37B,0x0000, /* F9A2 */ +0xFB40,0xEBAE,0x0000, 0xFB40,0xFC3E,0x0000, 0xFB40,0xF375,0x0000, /* F9A5 */ +0xFB40,0xCEE4,0x0000, 0xFB40,0xD6F9,0x0000, 0xFB40,0xDBE7,0x0000, /* F9A8 */ +0xFB40,0xDDBA,0x0000, 0xFB40,0xE01C,0x0000, 0xFB40,0xF3B2,0x0000, /* F9AB */ +0xFB40,0xF469,0x0000, 0xFB40,0xFF9A,0x0000, 0xFB41,0x8046,0x0000, /* F9AE */ +0xFB41,0x9234,0x0000, 0xFB41,0x96F6,0x0000, 0xFB41,0x9748,0x0000, /* F9B1 */ +0xFB41,0x9818,0x0000, 0xFB40,0xCF8B,0x0000, 0xFB40,0xF9AE,0x0000, /* F9B4 */ +0xFB41,0x91B4,0x0000, 0xFB41,0x96B8,0x0000, 0xFB40,0xE0E1,0x0000, /* F9B7 */ +0xFB40,0xCE86,0x0000, 0xFB40,0xD0DA,0x0000, 0xFB40,0xDBEE,0x0000, /* F9BA */ +0xFB40,0xDC3F,0x0000, 0xFB40,0xE599,0x0000, 0xFB40,0xEA02,0x0000, /* F9BD */ +0xFB40,0xF1CE,0x0000, 0xFB40,0xF642,0x0000, 0xFB41,0x84FC,0x0000, /* F9C0 */ +0xFB41,0x907C,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB40,0xE688,0x0000, /* F9C3 */ +0xFB41,0x962E,0x0000, 0xFB40,0xD289,0x0000, 0xFB40,0xE77B,0x0000, /* F9C6 */ +0xFB40,0xE7F3,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEE9C,0x0000, /* F9C9 */ +0xFB40,0xF409,0x0000, 0xFB40,0xF559,0x0000, 0xFB40,0xF86B,0x0000, /* F9CC */ +0xFB40,0xFD10,0x0000, 0xFB41,0x985E,0x0000, 0xFB40,0xD16D,0x0000, /* F9CF */ +0xFB40,0xE22E,0x0000, 0xFB41,0x9678,0x0000, 0xFB40,0xD02B,0x0000, /* F9D2 */ +0xFB40,0xDD19,0x0000, 0xFB40,0xEDEA,0x0000, 0xFB41,0x8F2A,0x0000, /* F9D5 */ +0xFB40,0xDF8B,0x0000, 0xFB40,0xE144,0x0000, 0xFB40,0xE817,0x0000, /* F9D8 */ +0xFB40,0xF387,0x0000, 0xFB41,0x9686,0x0000, 0xFB40,0xD229,0x0000, /* F9DB */ +0xFB40,0xD40F,0x0000, 0xFB40,0xDC65,0x0000, 0xFB40,0xE613,0x0000, /* F9DE */ +0xFB40,0xE74E,0x0000, 0xFB40,0xE8A8,0x0000, 0xFB40,0xECE5,0x0000, /* F9E1 */ +0xFB40,0xF406,0x0000, 0xFB40,0xF5E2,0x0000, 0xFB40,0xFF79,0x0000, /* F9E4 */ +0xFB41,0x88CF,0x0000, 0xFB41,0x88E1,0x0000, 0xFB41,0x91CC,0x0000, /* F9E7 */ +0xFB41,0x96E2,0x0000, 0xFB40,0xD33F,0x0000, 0xFB40,0xEEBA,0x0000, /* F9EA */ +0xFB40,0xD41D,0x0000, 0xFB40,0xF1D0,0x0000, 0xFB40,0xF498,0x0000, /* F9ED */ +0xFB41,0x85FA,0x0000, 0xFB41,0x96A3,0x0000, 0xFB41,0x9C57,0x0000, /* F9F0 */ +0xFB41,0x9E9F,0x0000, 0xFB40,0xE797,0x0000, 0xFB40,0xEDCB,0x0000, /* F9F3 */ +0xFB41,0x81E8,0x0000, 0xFB40,0xFACB,0x0000, 0xFB40,0xFB20,0x0000, /* F9F6 */ +0xFB40,0xFC92,0x0000, 0xFB40,0xF2C0,0x0000, 0xFB40,0xF099,0x0000, /* F9F9 */ +0xFB41,0x8B58,0x0000, 0xFB40,0xCEC0,0x0000, 0xFB41,0x8336,0x0000, /* F9FC */ +0xFB40,0xD23A,0x0000 }; + +static const uint16 uca520_p0FA[]= { /* FA00 (3 weights per char) */ +0xFB40,0xD207,0x0000, 0xFB40,0xDEA6,0x0000, 0xFB40,0xE2D3,0x0000, /* FA00 */ +0xFB40,0xFCD6,0x0000, 0xFB40,0xDB85,0x0000, 0xFB40,0xED1E,0x0000, /* FA03 */ +0xFB40,0xE6B4,0x0000, 0xFB41,0x8F3B,0x0000, 0xFB41,0x884C,0x0000, /* FA06 */ +0xFB41,0x964D,0x0000, 0xFB41,0x898B,0x0000, 0xFB40,0xDED3,0x0000, /* FA09 */ +0xFB40,0xD140,0x0000, 0xFB40,0xD5C0,0x0000, 0xFB41,0xFA0E,0x0000, /* FA0C */ +0xFB41,0xFA0F,0x0000, 0xFB40,0xD85A,0x0000, 0xFB41,0xFA11,0x0000, /* FA0F */ +0xFB40,0xE674,0x0000, 0xFB41,0xFA13,0x0000, 0xFB41,0xFA14,0x0000, /* FA12 */ +0xFB40,0xD1DE,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF6CA,0x0000, /* FA15 */ +0xFB40,0xF93C,0x0000, 0xFB40,0xF95E,0x0000, 0xFB40,0xF965,0x0000, /* FA18 */ +0xFB40,0xF98F,0x0000, 0xFB41,0x9756,0x0000, 0xFB40,0xFCBE,0x0000, /* FA1B */ +0xFB40,0xFFBD,0x0000, 0xFB41,0xFA1F,0x0000, 0xFB41,0x8612,0x0000, /* FA1E */ +0xFB41,0xFA21,0x0000, 0xFB41,0x8AF8,0x0000, 0xFB41,0xFA23,0x0000, /* FA21 */ +0xFB41,0xFA24,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x90FD,0x0000, /* FA24 */ +0xFB41,0xFA27,0x0000, 0xFB41,0xFA28,0x0000, 0xFB41,0xFA29,0x0000, /* FA27 */ +0xFB41,0x98EF,0x0000, 0xFB41,0x98FC,0x0000, 0xFB41,0x9928,0x0000, /* FA2A */ +0xFB41,0x9DB4,0x0000, 0xFBC1,0xFA2E,0x0000, 0xFBC1,0xFA2F,0x0000, /* FA2D */ +0xFB40,0xCFAE,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD14D,0x0000, /* FA30 */ +0xFB40,0xD2C9,0x0000, 0xFB40,0xD2E4,0x0000, 0xFB40,0xD351,0x0000, /* FA33 */ +0xFB40,0xD59D,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD668,0x0000, /* FA36 */ +0xFB40,0xD840,0x0000, 0xFB40,0xD8A8,0x0000, 0xFB40,0xDC64,0x0000, /* FA39 */ +0xFB40,0xDC6E,0x0000, 0xFB40,0xE094,0x0000, 0xFB40,0xE168,0x0000, /* FA3C */ +0xFB40,0xE18E,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE54F,0x0000, /* FA3F */ +0xFB40,0xE5E2,0x0000, 0xFB40,0xE691,0x0000, 0xFB40,0xE885,0x0000, /* FA42 */ +0xFB40,0xED77,0x0000, 0xFB40,0xEE1A,0x0000, 0xFB40,0xEF22,0x0000, /* FA45 */ +0xFB40,0xF16E,0x0000, 0xFB40,0xF22B,0x0000, 0xFB40,0xF422,0x0000, /* FA48 */ +0xFB40,0xF891,0x0000, 0xFB40,0xF93E,0x0000, 0xFB40,0xF949,0x0000, /* FA4B */ +0xFB40,0xF948,0x0000, 0xFB40,0xF950,0x0000, 0xFB40,0xF956,0x0000, /* FA4E */ +0xFB40,0xF95D,0x0000, 0xFB40,0xF98D,0x0000, 0xFB40,0xF98E,0x0000, /* FA51 */ +0xFB40,0xFA40,0x0000, 0xFB40,0xFA81,0x0000, 0xFB40,0xFBC0,0x0000, /* FA54 */ +0xFB40,0xFDF4,0x0000, 0xFB40,0xFE09,0x0000, 0xFB40,0xFE41,0x0000, /* FA57 */ +0xFB40,0xFF72,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x81ED,0x0000, /* FA5A */ +0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8457,0x0000, /* FA5D */ +0xFB41,0x8910,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8B01,0x0000, /* FA60 */ +0xFB41,0x8B39,0x0000, 0xFB41,0x8CD3,0x0000, 0xFB41,0x8D08,0x0000, /* FA63 */ +0xFB41,0x8FB6,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x96E3,0x0000, /* FA66 */ +0xFB41,0x97FF,0x0000, 0xFB41,0x983B,0x0000, 0xFB40,0xE075,0x0000, /* FA69 */ +0xFB84,0xC2EE,0x0000, 0xFB41,0x8218,0x0000, 0xFBC1,0xFA6E,0x0000, /* FA6C */ +0xFBC1,0xFA6F,0x0000, 0xFB40,0xCE26,0x0000, 0xFB40,0xD1B5,0x0000, /* FA6F */ +0xFB40,0xD168,0x0000, 0xFB40,0xCF80,0x0000, 0xFB40,0xD145,0x0000, /* FA72 */ +0xFB40,0xD180,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2FA,0x0000, /* FA75 */ +0xFB40,0xD59D,0x0000, 0xFB40,0xD555,0x0000, 0xFB40,0xD599,0x0000, /* FA78 */ +0xFB40,0xD5E2,0x0000, 0xFB40,0xD85A,0x0000, 0xFB40,0xD8B3,0x0000, /* FA7B */ +0xFB40,0xD944,0x0000, 0xFB40,0xD954,0x0000, 0xFB40,0xDA62,0x0000, /* FA7E */ +0xFB40,0xDB28,0x0000, 0xFB40,0xDED2,0x0000, 0xFB40,0xDED9,0x0000, /* FA81 */ +0xFB40,0xDF69,0x0000, 0xFB40,0xDFAD,0x0000, 0xFB40,0xE0D8,0x0000, /* FA84 */ +0xFB40,0xE14E,0x0000, 0xFB40,0xE108,0x0000, 0xFB40,0xE18E,0x0000, /* FA87 */ +0xFB40,0xE160,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE234,0x0000, /* FA8A */ +0xFB40,0xE3C4,0x0000, 0xFB40,0xE41C,0x0000, 0xFB40,0xE452,0x0000, /* FA8D */ +0xFB40,0xE556,0x0000, 0xFB40,0xE674,0x0000, 0xFB40,0xE717,0x0000, /* FA90 */ +0xFB40,0xE71B,0x0000, 0xFB40,0xE756,0x0000, 0xFB40,0xEB79,0x0000, /* FA93 */ +0xFB40,0xEBBA,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEEDB,0x0000, /* FA96 */ +0xFB40,0xEECB,0x0000, 0xFB40,0xEF22,0x0000, 0xFB40,0xF01E,0x0000, /* FA99 */ +0xFB40,0xF16E,0x0000, 0xFB40,0xF7A7,0x0000, 0xFB40,0xF235,0x0000, /* FA9C */ +0xFB40,0xF2AF,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF471,0x0000, /* FA9F */ +0xFB40,0xF506,0x0000, 0xFB40,0xF53B,0x0000, 0xFB40,0xF61D,0x0000, /* FAA2 */ +0xFB40,0xF61F,0x0000, 0xFB40,0xF6CA,0x0000, 0xFB40,0xF6DB,0x0000, /* FAA5 */ +0xFB40,0xF6F4,0x0000, 0xFB40,0xF74A,0x0000, 0xFB40,0xF740,0x0000, /* FAA8 */ +0xFB40,0xF8CC,0x0000, 0xFB40,0xFAB1,0x0000, 0xFB40,0xFBC0,0x0000, /* FAAB */ +0xFB40,0xFC7B,0x0000, 0xFB40,0xFD5B,0x0000, 0xFB40,0xFDF4,0x0000, /* FAAE */ +0xFB40,0xFF3E,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x8352,0x0000, /* FAB1 */ +0xFB41,0x83EF,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8941,0x0000, /* FAB4 */ +0xFB41,0x8986,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8ABF,0x0000, /* FAB7 */ +0xFB41,0x8AF8,0x0000, 0xFB41,0x8ACB,0x0000, 0xFB41,0x8B01,0x0000, /* FABA */ +0xFB41,0x8AFE,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B39,0x0000, /* FABD */ +0xFB41,0x8B8A,0x0000, 0xFB41,0x8D08,0x0000, 0xFB41,0x8F38,0x0000, /* FAC0 */ +0xFB41,0x9072,0x0000, 0xFB41,0x9199,0x0000, 0xFB41,0x9276,0x0000, /* FAC3 */ +0xFB41,0x967C,0x0000, 0xFB41,0x96E3,0x0000, 0xFB41,0x9756,0x0000, /* FAC6 */ +0xFB41,0x97DB,0x0000, 0xFB41,0x97FF,0x0000, 0xFB41,0x980B,0x0000, /* FAC9 */ +0xFB41,0x983B,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9F9C,0x0000, /* FACC */ +0xFB84,0xA84A,0x0000, 0xFB84,0xA844,0x0000, 0xFB84,0xB3D5,0x0000, /* FACF */ +0xFB80,0xBB9D,0x0000, 0xFB80,0xC018,0x0000, 0xFB80,0xC039,0x0000, /* FAD2 */ +0xFB84,0xD249,0x0000, 0xFB84,0xDCD0,0x0000, 0xFB84,0xFED3,0x0000, /* FAD5 */ +0xFB41,0x9F43,0x0000, 0xFB41,0x9F8E,0x0000, 0xFBC1,0xFADA,0x0000, /* FAD8 */ +0xFBC1,0xFADB,0x0000, 0xFBC1,0xFADC,0x0000, 0xFBC1,0xFADD,0x0000, /* FADB */ +0xFBC1,0xFADE,0x0000, 0xFBC1,0xFADF,0x0000, 0xFBC1,0xFAE0,0x0000, /* FADE */ +0xFBC1,0xFAE1,0x0000, 0xFBC1,0xFAE2,0x0000, 0xFBC1,0xFAE3,0x0000, /* FAE1 */ +0xFBC1,0xFAE4,0x0000, 0xFBC1,0xFAE5,0x0000, 0xFBC1,0xFAE6,0x0000, /* FAE4 */ +0xFBC1,0xFAE7,0x0000, 0xFBC1,0xFAE8,0x0000, 0xFBC1,0xFAE9,0x0000, /* FAE7 */ +0xFBC1,0xFAEA,0x0000, 0xFBC1,0xFAEB,0x0000, 0xFBC1,0xFAEC,0x0000, /* FAEA */ +0xFBC1,0xFAED,0x0000, 0xFBC1,0xFAEE,0x0000, 0xFBC1,0xFAEF,0x0000, /* FAED */ +0xFBC1,0xFAF0,0x0000, 0xFBC1,0xFAF1,0x0000, 0xFBC1,0xFAF2,0x0000, /* FAF0 */ +0xFBC1,0xFAF3,0x0000, 0xFBC1,0xFAF4,0x0000, 0xFBC1,0xFAF5,0x0000, /* FAF3 */ +0xFBC1,0xFAF6,0x0000, 0xFBC1,0xFAF7,0x0000, 0xFBC1,0xFAF8,0x0000, /* FAF6 */ +0xFBC1,0xFAF9,0x0000, 0xFBC1,0xFAFA,0x0000, 0xFBC1,0xFAFB,0x0000, /* FAF9 */ +0xFBC1,0xFAFC,0x0000, 0xFBC1,0xFAFD,0x0000, 0xFBC1,0xFAFE,0x0000, /* FAFC */ +0xFBC1,0xFAFF,0x0000 }; + +static const uint16 uca520_p0FB[]= { /* FB00 (4 weights per char) */ +0x12A3,0x12A3,0x0000,0x0000, 0x12A3,0x12EC,0x0000,0x0000, /* FB00 */ +0x12A3,0x1330,0x0000,0x0000, 0x12A3,0x12A3,0x12EC,0x0000, /* FB02 */ +0x12A3,0x12A3,0x1330,0x0000, 0x1410,0x1433,0x0000,0x0000, /* FB04 */ +0x1410,0x1433,0x0000,0x0000, 0xFBC1,0xFB07,0x0000,0x0000, /* FB06 */ +0xFBC1,0xFB08,0x0000,0x0000, 0xFBC1,0xFB09,0x0000,0x0000, /* FB08 */ +0xFBC1,0xFB0A,0x0000,0x0000, 0xFBC1,0xFB0B,0x0000,0x0000, /* FB0A */ +0xFBC1,0xFB0C,0x0000,0x0000, 0xFBC1,0xFB0D,0x0000,0x0000, /* FB0C */ +0xFBC1,0xFB0E,0x0000,0x0000, 0xFBC1,0xFB0F,0x0000,0x0000, /* FB0E */ +0xFBC1,0xFB10,0x0000,0x0000, 0xFBC1,0xFB11,0x0000,0x0000, /* FB10 */ +0xFBC1,0xFB12,0x0000,0x0000, 0x1848,0x184A,0x0000,0x0000, /* FB12 */ +0x1848,0x1839,0x0000,0x0000, 0x1848,0x183F,0x0000,0x0000, /* FB14 */ +0x1852,0x184A,0x0000,0x0000, 0x1848,0x1841,0x0000,0x0000, /* FB16 */ +0xFBC1,0xFB18,0x0000,0x0000, 0xFBC1,0xFB19,0x0000,0x0000, /* FB18 */ +0xFBC1,0xFB1A,0x0000,0x0000, 0xFBC1,0xFB1B,0x0000,0x0000, /* FB1A */ +0xFBC1,0xFB1C,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB1C */ +0x0000,0x0000,0x0000,0x0000, 0x1865,0x1865,0x0000,0x0000, /* FB1E */ +0x186B,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB20 */ +0x185F,0x0000,0x0000,0x0000, 0x1860,0x0000,0x0000,0x0000, /* FB22 */ +0x1866,0x0000,0x0000,0x0000, 0x1867,0x0000,0x0000,0x0000, /* FB24 */ +0x1868,0x0000,0x0000,0x0000, 0x186F,0x0000,0x0000,0x0000, /* FB26 */ +0x1871,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* FB28 */ +0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2A */ +0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2C */ +0x185C,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB2E */ +0x185C,0x0000,0x0000,0x0000, 0x185D,0x0000,0x0000,0x0000, /* FB30 */ +0x185E,0x0000,0x0000,0x0000, 0x185F,0x0000,0x0000,0x0000, /* FB32 */ +0x1860,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB34 */ +0x1862,0x0000,0x0000,0x0000, 0xFBC1,0xFB37,0x0000,0x0000, /* FB36 */ +0x1864,0x0000,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB38 */ +0x1866,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB3A */ +0x1867,0x0000,0x0000,0x0000, 0xFBC1,0xFB3D,0x0000,0x0000, /* FB3C */ +0x1868,0x0000,0x0000,0x0000, 0xFBC1,0xFB3F,0x0000,0x0000, /* FB3E */ +0x1869,0x0000,0x0000,0x0000, 0x186A,0x0000,0x0000,0x0000, /* FB40 */ +0xFBC1,0xFB42,0x0000,0x0000, 0x186C,0x0000,0x0000,0x0000, /* FB42 */ +0x186C,0x0000,0x0000,0x0000, 0xFBC1,0xFB45,0x0000,0x0000, /* FB44 */ +0x186D,0x0000,0x0000,0x0000, 0x186E,0x0000,0x0000,0x0000, /* FB46 */ +0x186F,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB48 */ +0x1871,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB4A */ +0x185D,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB4C */ +0x186C,0x0000,0x0000,0x0000, 0x185C,0x1867,0x0000,0x0000, /* FB4E */ +0x18A6,0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000,0x0000, /* FB50 */ +0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB52 */ +0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB54 */ +0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB56 */ +0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB58 */ +0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5A */ +0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5C */ +0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB5E */ +0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB60 */ +0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB62 */ +0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB64 */ +0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB66 */ +0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB68 */ +0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6A */ +0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6C */ +0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB6E */ +0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB70 */ +0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB72 */ +0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB74 */ +0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB76 */ +0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB78 */ +0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7A */ +0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7C */ +0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB7E */ +0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB80 */ +0x18DA,0x0000,0x0000,0x0000, 0x18DA,0x0000,0x0000,0x0000, /* FB82 */ +0x18D9,0x0000,0x0000,0x0000, 0x18D9,0x0000,0x0000,0x0000, /* FB84 */ +0x18DB,0x0000,0x0000,0x0000, 0x18DB,0x0000,0x0000,0x0000, /* FB86 */ +0x18D5,0x0000,0x0000,0x0000, 0x18D5,0x0000,0x0000,0x0000, /* FB88 */ +0x18EA,0x0000,0x0000,0x0000, 0x18EA,0x0000,0x0000,0x0000, /* FB8A */ +0x18E3,0x0000,0x0000,0x0000, 0x18E3,0x0000,0x0000,0x0000, /* FB8C */ +0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB8E */ +0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB90 */ +0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB92 */ +0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB94 */ +0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB96 */ +0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB98 */ +0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9A */ +0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9C */ +0x1935,0x0000,0x0000,0x0000, 0x1935,0x0000,0x0000,0x0000, /* FB9E */ +0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA0 */ +0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA2 */ +0x1942,0x0000,0x0000,0x0000, 0x1942,0x0000,0x0000,0x0000, /* FBA4 */ +0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA6 */ +0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA8 */ +0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAA */ +0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAC */ +0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBAE */ +0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBB0 */ +0xFBC1,0xFBB2,0x0000,0x0000, 0xFBC1,0xFBB3,0x0000,0x0000, /* FBB2 */ +0xFBC1,0xFBB4,0x0000,0x0000, 0xFBC1,0xFBB5,0x0000,0x0000, /* FBB4 */ +0xFBC1,0xFBB6,0x0000,0x0000, 0xFBC1,0xFBB7,0x0000,0x0000, /* FBB6 */ +0xFBC1,0xFBB8,0x0000,0x0000, 0xFBC1,0xFBB9,0x0000,0x0000, /* FBB8 */ +0xFBC1,0xFBBA,0x0000,0x0000, 0xFBC1,0xFBBB,0x0000,0x0000, /* FBBA */ +0xFBC1,0xFBBC,0x0000,0x0000, 0xFBC1,0xFBBD,0x0000,0x0000, /* FBBC */ +0xFBC1,0xFBBE,0x0000,0x0000, 0xFBC1,0xFBBF,0x0000,0x0000, /* FBBE */ +0xFBC1,0xFBC0,0x0000,0x0000, 0xFBC1,0xFBC1,0x0000,0x0000, /* FBC0 */ +0xFBC1,0xFBC2,0x0000,0x0000, 0xFBC1,0xFBC3,0x0000,0x0000, /* FBC2 */ +0xFBC1,0xFBC4,0x0000,0x0000, 0xFBC1,0xFBC5,0x0000,0x0000, /* FBC4 */ +0xFBC1,0xFBC6,0x0000,0x0000, 0xFBC1,0xFBC7,0x0000,0x0000, /* FBC6 */ +0xFBC1,0xFBC8,0x0000,0x0000, 0xFBC1,0xFBC9,0x0000,0x0000, /* FBC8 */ +0xFBC1,0xFBCA,0x0000,0x0000, 0xFBC1,0xFBCB,0x0000,0x0000, /* FBCA */ +0xFBC1,0xFBCC,0x0000,0x0000, 0xFBC1,0xFBCD,0x0000,0x0000, /* FBCC */ +0xFBC1,0xFBCE,0x0000,0x0000, 0xFBC1,0xFBCF,0x0000,0x0000, /* FBCE */ +0xFBC1,0xFBD0,0x0000,0x0000, 0xFBC1,0xFBD1,0x0000,0x0000, /* FBD0 */ +0xFBC1,0xFBD2,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD2 */ +0x191E,0x0000,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD4 */ +0x191E,0x0000,0x0000,0x0000, 0x1947,0x0000,0x0000,0x0000, /* FBD6 */ +0x1947,0x0000,0x0000,0x0000, 0x1946,0x0000,0x0000,0x0000, /* FBD8 */ +0x1946,0x0000,0x0000,0x0000, 0x1948,0x0000,0x0000,0x0000, /* FBDA */ +0x1948,0x0000,0x0000,0x0000, 0x1947,0x18A2,0x0000,0x0000, /* FBDC */ +0x194B,0x0000,0x0000,0x0000, 0x194B,0x0000,0x0000,0x0000, /* FBDE */ +0x1945,0x0000,0x0000,0x0000, 0x1945,0x0000,0x0000,0x0000, /* FBE0 */ +0x1949,0x0000,0x0000,0x0000, 0x1949,0x0000,0x0000,0x0000, /* FBE2 */ +0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE4 */ +0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE6 */ +0x194F,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FBE8 */ +0x18AC,0x18AD,0x0000,0x0000, 0x18AC,0x18AD,0x0000,0x0000, /* FBEA */ +0x18AC,0x1942,0x0000,0x0000, 0x18AC,0x1942,0x0000,0x0000, /* FBEC */ +0x18AC,0x1943,0x0000,0x0000, 0x18AC,0x1943,0x0000,0x0000, /* FBEE */ +0x18AC,0x1947,0x0000,0x0000, 0x18AC,0x1947,0x0000,0x0000, /* FBF0 */ +0x18AC,0x1946,0x0000,0x0000, 0x18AC,0x1946,0x0000,0x0000, /* FBF2 */ +0x18AC,0x1948,0x0000,0x0000, 0x18AC,0x1948,0x0000,0x0000, /* FBF4 */ +0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x1954,0x0000,0x0000, /* FBF6 */ +0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBF8 */ +0x18AC,0x194F,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBFA */ +0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000, /* FBFC */ +0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000 /* FBFE */ +}; + +static const uint16 uca520_p0FC[]= { /* FC00 (3 weights per char) */ +0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, 0x18AC,0x1931,0x0000, /* FC00 */ +0x18AC,0x194F,0x0000, 0x18AC,0x1950,0x0000, 0x18AF,0x18C2,0x0000, /* FC03 */ +0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, 0x18AF,0x1931,0x0000, /* FC06 */ +0x18AF,0x194F,0x0000, 0x18AF,0x1950,0x0000, 0x18BB,0x18C2,0x0000, /* FC09 */ +0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FC0C */ +0x18BB,0x194F,0x0000, 0x18BB,0x1950,0x0000, 0x18BC,0x18C2,0x0000, /* FC0F */ +0x18BC,0x1931,0x0000, 0x18BC,0x194F,0x0000, 0x18BC,0x1950,0x0000, /* FC12 */ +0x18C2,0x18C8,0x0000, 0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, /* FC15 */ +0x18C8,0x1931,0x0000, 0x18C9,0x18C2,0x0000, 0x18C9,0x18C8,0x0000, /* FC18 */ +0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, 0x18F1,0x18C8,0x0000, /* FC1B */ +0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, 0x18FC,0x18C8,0x0000, /* FC1E */ +0x18FC,0x1931,0x0000, 0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, /* FC21 */ +0x18FD,0x18C9,0x0000, 0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, /* FC24 */ +0x1901,0x1931,0x0000, 0x1902,0x1931,0x0000, 0x1904,0x18C2,0x0000, /* FC27 */ +0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, 0x1905,0x1931,0x0000, /* FC2A */ +0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, 0x190B,0x18C9,0x0000, /* FC2D */ +0x190B,0x1931,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC30 */ +0x1915,0x18C8,0x0000, 0x1915,0x1931,0x0000, 0x1915,0x194F,0x0000, /* FC33 */ +0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, 0x1918,0x18C2,0x0000, /* FC36 */ +0x1918,0x18C8,0x0000, 0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, /* FC39 */ +0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, 0x1918,0x1950,0x0000, /* FC3C */ +0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FC3F */ +0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, 0x192B,0x1950,0x0000, /* FC42 */ +0x1931,0x18C2,0x0000, 0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, /* FC45 */ +0x1931,0x1931,0x0000, 0x1931,0x194F,0x0000, 0x1931,0x1950,0x0000, /* FC48 */ +0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FC4B */ +0x1934,0x1931,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC4E */ +0x193D,0x18C2,0x0000, 0x193D,0x1931,0x0000, 0x193D,0x194F,0x0000, /* FC51 */ +0x193D,0x1950,0x0000, 0x1950,0x18C2,0x0000, 0x1950,0x18C8,0x0000, /* FC54 */ +0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, 0x1950,0x194F,0x0000, /* FC57 */ +0x1950,0x1950,0x0000, 0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, /* FC5A */ +0x194F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC5D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC60 */ +0x0000,0x0000,0x0000, 0x18AC,0x18E1,0x0000, 0x18AC,0x18E2,0x0000, /* FC63 */ +0x18AC,0x1931,0x0000, 0x18AC,0x1934,0x0000, 0x18AC,0x194F,0x0000, /* FC66 */ +0x18AC,0x1950,0x0000, 0x18AF,0x18E1,0x0000, 0x18AF,0x18E2,0x0000, /* FC69 */ +0x18AF,0x1931,0x0000, 0x18AF,0x1934,0x0000, 0x18AF,0x194F,0x0000, /* FC6C */ +0x18AF,0x1950,0x0000, 0x18BB,0x18E1,0x0000, 0x18BB,0x18E2,0x0000, /* FC6F */ +0x18BB,0x1931,0x0000, 0x18BB,0x1934,0x0000, 0x18BB,0x194F,0x0000, /* FC72 */ +0x18BB,0x1950,0x0000, 0x18BC,0x18E1,0x0000, 0x18BC,0x18E2,0x0000, /* FC75 */ +0x18BC,0x1931,0x0000, 0x18BC,0x1934,0x0000, 0x18BC,0x194F,0x0000, /* FC78 */ +0x18BC,0x1950,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC7B */ +0x1915,0x194F,0x0000, 0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, /* FC7E */ +0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, /* FC81 */ +0x1918,0x1950,0x0000, 0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, /* FC84 */ +0x192B,0x1950,0x0000, 0x1931,0x18AD,0x0000, 0x1931,0x1931,0x0000, /* FC87 */ +0x1934,0x18E1,0x0000, 0x1934,0x18E2,0x0000, 0x1934,0x1931,0x0000, /* FC8A */ +0x1934,0x1934,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC8D */ +0x194F,0x0000,0x0000, 0x1950,0x18E1,0x0000, 0x1950,0x18E2,0x0000, /* FC90 */ +0x1950,0x1931,0x0000, 0x1950,0x1934,0x0000, 0x1950,0x194F,0x0000, /* FC93 */ +0x1950,0x1950,0x0000, 0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, /* FC96 */ +0x18AC,0x18C9,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FC99 */ +0x18AF,0x18C2,0x0000, 0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, /* FC9C */ +0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x18C2,0x0000, /* FC9F */ +0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FCA2 */ +0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18C2,0x18C8,0x0000, /* FCA5 */ +0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, 0x18C8,0x1931,0x0000, /* FCA8 */ +0x18C9,0x18C2,0x0000, 0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, /* FCAB */ +0x18F1,0x18C8,0x0000, 0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, /* FCAE */ +0x18FC,0x18C8,0x0000, 0x18FC,0x18C9,0x0000, 0x18FC,0x1931,0x0000, /* FCB1 */ +0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, 0x18FD,0x18C9,0x0000, /* FCB4 */ +0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, 0x1902,0x1931,0x0000, /* FCB7 */ +0x1904,0x18C2,0x0000, 0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, /* FCBA */ +0x1905,0x1931,0x0000, 0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, /* FCBD */ +0x190B,0x18C9,0x0000, 0x190B,0x1931,0x0000, 0x1915,0x18C8,0x0000, /* FCC0 */ +0x1915,0x1931,0x0000, 0x1918,0x18C2,0x0000, 0x1918,0x18C8,0x0000, /* FCC3 */ +0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCC6 */ +0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FCC9 */ +0x192B,0x1931,0x0000, 0x192B,0x193D,0x0000, 0x1931,0x18C2,0x0000, /* FCCC */ +0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, 0x1931,0x1931,0x0000, /* FCCF */ +0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FCD2 */ +0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, 0x193D,0x18C2,0x0000, /* FCD5 */ +0x193D,0x1931,0x0000, 0x193D,0x0000,0x0000, 0x1950,0x18C2,0x0000, /* FCD8 */ +0x1950,0x18C8,0x0000, 0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, /* FCDB */ +0x1950,0x193D,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FCDE */ +0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x1931,0x0000, /* FCE1 */ +0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18BC,0x193D,0x0000, /* FCE4 */ +0x18F1,0x1931,0x0000, 0x18F1,0x193D,0x0000, 0x18F2,0x1931,0x0000, /* FCE7 */ +0x18F2,0x193D,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCEA */ +0x192B,0x1931,0x0000, 0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, /* FCED */ +0x1950,0x1931,0x0000, 0x1950,0x193D,0x0000, 0x0000,0x0000,0x0000, /* FCF0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1901,0x194F,0x0000, /* FCF3 */ +0x1901,0x1950,0x0000, 0x1904,0x194F,0x0000, 0x1904,0x1950,0x0000, /* FCF6 */ +0x1905,0x194F,0x0000, 0x1905,0x1950,0x0000, 0x18F1,0x194F,0x0000, /* FCF9 */ +0x18F1,0x1950,0x0000, 0x18F2,0x194F,0x0000, 0x18F2,0x1950,0x0000, /* FCFC */ +0x18C8,0x194F,0x0000 }; + +static const uint16 uca520_p0FD[]= { /* FD00 (9 weights per char) */ +0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD00 */ +0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD01 */ +0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD02 */ +0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD03 */ +0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD04 */ +0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD05 */ +0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD06 */ +0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD07 */ +0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD08 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD09 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0A */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0B */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0C */ +0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0D */ +0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0E */ +0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0F */ +0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD10 */ +0x1901,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD11 */ +0x1901,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD12 */ +0x1904,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD13 */ +0x1904,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD14 */ +0x1905,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD15 */ +0x1905,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD16 */ +0x18F1,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD17 */ +0x18F1,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD18 */ +0x18F2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD19 */ +0x18F2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1A */ +0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1B */ +0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1C */ +0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1D */ +0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1E */ +0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1F */ +0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD20 */ +0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD21 */ +0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD22 */ +0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD23 */ +0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD24 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD25 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD26 */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD27 */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD28 */ +0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD29 */ +0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2A */ +0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2B */ +0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2C */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2D */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2E */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2F */ +0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD30 */ +0x18F1,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD31 */ +0x18F2,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD32 */ +0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD33 */ +0x18F1,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD34 */ +0x18F1,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD35 */ +0x18F1,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD36 */ +0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD37 */ +0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD38 */ +0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD39 */ +0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3A */ +0x1902,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3B */ +0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3C */ +0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3D */ +0x034F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3E */ +0x0350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3F */ +0xFBC1,0xFD40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD40 */ +0xFBC1,0xFD41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD41 */ +0xFBC1,0xFD42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD42 */ +0xFBC1,0xFD43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD43 */ +0xFBC1,0xFD44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD44 */ +0xFBC1,0xFD45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD45 */ +0xFBC1,0xFD46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD46 */ +0xFBC1,0xFD47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD47 */ +0xFBC1,0xFD48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD48 */ +0xFBC1,0xFD49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD49 */ +0xFBC1,0xFD4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4A */ +0xFBC1,0xFD4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4B */ +0xFBC1,0xFD4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4C */ +0xFBC1,0xFD4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4D */ +0xFBC1,0xFD4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4E */ +0xFBC1,0xFD4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4F */ +0x18BB,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD50 */ +0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD51 */ +0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD52 */ +0x18BB,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD53 */ +0x18BB,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD54 */ +0x18BB,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD55 */ +0x18BB,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD56 */ +0x18BB,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD57 */ +0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD58 */ +0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD59 */ +0x18C8,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5A */ +0x18C8,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5B */ +0x18F1,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5C */ +0x18F1,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5D */ +0x18F1,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5E */ +0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5F */ +0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD60 */ +0x18F1,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD61 */ +0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD62 */ +0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD63 */ +0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD64 */ +0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD65 */ +0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD66 */ +0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD67 */ +0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD68 */ +0x18F2,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD69 */ +0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6A */ +0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6B */ +0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6C */ +0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6D */ +0x18FD,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6E */ +0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6F */ +0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD70 */ +0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD71 */ +0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD72 */ +0x1901,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD73 */ +0x1901,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD74 */ +0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD75 */ +0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD76 */ +0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD77 */ +0x1904,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD78 */ +0x1905,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD79 */ +0x1905,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7A */ +0x1905,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7B */ +0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7C */ +0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7D */ +0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7E */ +0x1915,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7F */ +0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD80 */ +0x192B,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD81 */ +0x192B,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD82 */ +0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD83 */ +0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD84 */ +0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD85 */ +0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD86 */ +0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD87 */ +0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD88 */ +0x1931,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD89 */ +0x1931,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8A */ +0x1931,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8B */ +0x1931,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8C */ +0x1931,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8D */ +0x1931,0x18C9,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8E */ +0x1931,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8F */ +0xFBC1,0xFD90,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD90 */ +0xFBC1,0xFD91,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD91 */ +0x1931,0x18C2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD92 */ +0x193D,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD93 */ +0x193D,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD94 */ +0x1934,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD95 */ +0x1934,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD96 */ +0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD97 */ +0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD98 */ +0x1934,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD99 */ +0x1934,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9A */ +0x1934,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9B */ +0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9C */ +0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9D */ +0x18AF,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9E */ +0x18BB,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9F */ +0x18BB,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA0 */ +0x18BB,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA1 */ +0x18BB,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA2 */ +0x18BB,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA3 */ +0x18BB,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA4 */ +0x18C2,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA5 */ +0x18C2,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA6 */ +0x18C2,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA7 */ +0x18F1,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA8 */ +0x18FC,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA9 */ +0x18F2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAA */ +0x18FD,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAB */ +0x192B,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAC */ +0x192B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAD */ +0x1950,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAE */ +0x1950,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAF */ +0x1950,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB0 */ +0x1931,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB1 */ +0x1915,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB2 */ +0x1934,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB3 */ +0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB4 */ +0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB5 */ +0x1904,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB6 */ +0x1918,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB7 */ +0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB8 */ +0x1931,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB9 */ +0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBA */ +0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBB */ +0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBC */ +0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBD */ +0x18C2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBE */ +0x18C8,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBF */ +0x1931,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC0 */ +0x190B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC1 */ +0x18AF,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC2 */ +0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC3 */ +0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC4 */ +0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC5 */ +0x18F1,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC6 */ +0x1934,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC7 */ +0xFBC1,0xFDC8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC8 */ +0xFBC1,0xFDC9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC9 */ +0xFBC1,0xFDCA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCA */ +0xFBC1,0xFDCB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCB */ +0xFBC1,0xFDCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCC */ +0xFBC1,0xFDCD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCD */ +0xFBC1,0xFDCE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCE */ +0xFBC1,0xFDCF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCF */ +0xFBC1,0xFDD0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD0 */ +0xFBC1,0xFDD1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD1 */ +0xFBC1,0xFDD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD2 */ +0xFBC1,0xFDD3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD3 */ +0xFBC1,0xFDD4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD4 */ +0xFBC1,0xFDD5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD5 */ +0xFBC1,0xFDD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD6 */ +0xFBC1,0xFDD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD7 */ +0xFBC1,0xFDD8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD8 */ +0xFBC1,0xFDD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD9 */ +0xFBC1,0xFDDA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDA */ +0xFBC1,0xFDDB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDB */ +0xFBC1,0xFDDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDC */ +0xFBC1,0xFDDD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDD */ +0xFBC1,0xFDDE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDE */ +0xFBC1,0xFDDF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDF */ +0xFBC1,0xFDE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE0 */ +0xFBC1,0xFDE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE1 */ +0xFBC1,0xFDE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE2 */ +0xFBC1,0xFDE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE3 */ +0xFBC1,0xFDE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE4 */ +0xFBC1,0xFDE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE5 */ +0xFBC1,0xFDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE6 */ +0xFBC1,0xFDE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE7 */ +0xFBC1,0xFDE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE8 */ +0xFBC1,0xFDE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE9 */ +0xFBC1,0xFDEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEA */ +0xFBC1,0xFDEB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEB */ +0xFBC1,0xFDEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEC */ +0xFBC1,0xFDED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDED */ +0xFBC1,0xFDEE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEE */ +0xFBC1,0xFDEF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEF */ +0x18FC,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF0 */ +0x1915,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF1 */ +0x18AD,0x192B,0x192B,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF2 */ +0x18AD,0x1918,0x18AF,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF3 */ +0x1931,0x18C8,0x1931,0x18D3,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF4 */ +0x18FC,0x192B,0x1904,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF5 */ +0x18E1,0x18F1,0x1943,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF6 */ +0x1904,0x192B,0x1950,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF7 */ +0x1943,0x18F1,0x192B,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF8 */ +0x18FC,0x192B,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF9 */ +0x18FC,0x192B,0x194F,0x020A,0x18AD,0x192B,0x192B,0x193D,0x0000, /* FDFA */ +0x18C2,0x192B,0x020A,0x18C2,0x192B,0x18AD,0x192B,0x193D,0x0000, /* FDFB */ +0x18E1,0x1951,0x18AD,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFC */ +0x0451,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFD */ +0xFBC1,0xFDFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFE */ +0xFBC1,0xFDFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* FDFF */ +}; + +static const uint16 uca520_p0FE[]= { /* FE00 (4 weights per char) */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE00 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE02 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE04 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE06 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE08 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0E */ +0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE10 */ +0x0291,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE12 */ +0x0243,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE14 */ +0x0273,0x0000,0x0000,0x0000, 0x0349,0x0000,0x0000,0x0000, /* FE16 */ +0x034A,0x0000,0x0000,0x0000, 0x0281,0x0281,0x0281,0x0000, /* FE18 */ +0xFBC1,0xFE1A,0x0000,0x0000, 0xFBC1,0xFE1B,0x0000,0x0000, /* FE1A */ +0xFBC1,0xFE1C,0x0000,0x0000, 0xFBC1,0xFE1D,0x0000,0x0000, /* FE1C */ +0xFBC1,0xFE1E,0x0000,0x0000, 0xFBC1,0xFE1F,0x0000,0x0000, /* FE1E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE20 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE22 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE24 */ +0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE27,0x0000,0x0000, /* FE26 */ +0xFBC1,0xFE28,0x0000,0x0000, 0xFBC1,0xFE29,0x0000,0x0000, /* FE28 */ +0xFBC1,0xFE2A,0x0000,0x0000, 0xFBC1,0xFE2B,0x0000,0x0000, /* FE2A */ +0xFBC1,0xFE2C,0x0000,0x0000, 0xFBC1,0xFE2D,0x0000,0x0000, /* FE2C */ +0xFBC1,0xFE2E,0x0000,0x0000, 0xFBC1,0xFE2F,0x0000,0x0000, /* FE2E */ +0x0281,0x0281,0x0000,0x0000, 0x022C,0x0000,0x0000,0x0000, /* FE30 */ +0x022B,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE32 */ +0x021D,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE34 */ +0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE36 */ +0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE38 */ +0x0348,0x0000,0x0000,0x0000, 0x0345,0x0000,0x0000,0x0000, /* FE3A */ +0x0346,0x0000,0x0000,0x0000, 0x033F,0x0000,0x0000,0x0000, /* FE3C */ +0x0340,0x0000,0x0000,0x0000, 0x033D,0x0000,0x0000,0x0000, /* FE3E */ +0x033E,0x0000,0x0000,0x0000, 0x0341,0x0000,0x0000,0x0000, /* FE40 */ +0x0342,0x0000,0x0000,0x0000, 0x0343,0x0000,0x0000,0x0000, /* FE42 */ +0x0344,0x0000,0x0000,0x0000, 0x0241,0x0000,0x0000,0x0000, /* FE44 */ +0x0242,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* FE46 */ +0x0302,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE48 */ +0x0213,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE4A */ +0x0213,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4C */ +0x021D,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4E */ +0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE50 */ +0x0281,0x0000,0x0000,0x0000, 0xFBC1,0xFE53,0x0000,0x0000, /* FE52 */ +0x0243,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE54 */ +0x0273,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE56 */ +0x022C,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE58 */ +0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE5A */ +0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE5C */ +0x0348,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* FE5E */ +0x035F,0x0000,0x0000,0x0000, 0x0357,0x0000,0x0000,0x0000, /* FE60 */ +0x0550,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* FE62 */ +0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* FE64 */ +0x0555,0x0000,0x0000,0x0000, 0xFBC1,0xFE67,0x0000,0x0000, /* FE66 */ +0x035E,0x0000,0x0000,0x0000, 0x11E1,0x0000,0x0000,0x0000, /* FE68 */ +0x0363,0x0000,0x0000,0x0000, 0x0356,0x0000,0x0000,0x0000, /* FE6A */ +0xFBC1,0xFE6C,0x0000,0x0000, 0xFBC1,0xFE6D,0x0000,0x0000, /* FE6C */ +0xFBC1,0xFE6E,0x0000,0x0000, 0xFBC1,0xFE6F,0x0000,0x0000, /* FE6E */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE70 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE72 */ +0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE75,0x0000,0x0000, /* FE74 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE76 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE78 */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7A */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7C */ +0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7E */ +0x18A2,0x0000,0x0000,0x0000, 0x18A3,0x0000,0x0000,0x0000, /* FE80 */ +0x18A3,0x0000,0x0000,0x0000, 0x18A4,0x0000,0x0000,0x0000, /* FE82 */ +0x18A4,0x0000,0x0000,0x0000, 0x18A7,0x0000,0x0000,0x0000, /* FE84 */ +0x18A7,0x0000,0x0000,0x0000, 0x18A8,0x0000,0x0000,0x0000, /* FE86 */ +0x18A8,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE88 */ +0x18AC,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE8A */ +0x18AC,0x0000,0x0000,0x0000, 0x18AD,0x0000,0x0000,0x0000, /* FE8C */ +0x18AD,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE8E */ +0x18AF,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE90 */ +0x18AF,0x0000,0x0000,0x0000, 0x18BA,0x0000,0x0000,0x0000, /* FE92 */ +0x18BA,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE94 */ +0x18BB,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE96 */ +0x18BB,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE98 */ +0x18BC,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE9A */ +0x18BC,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9C */ +0x18C2,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9E */ +0x18C2,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA0 */ +0x18C8,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA2 */ +0x18C8,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA4 */ +0x18C9,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA6 */ +0x18C9,0x0000,0x0000,0x0000, 0x18D3,0x0000,0x0000,0x0000, /* FEA8 */ +0x18D3,0x0000,0x0000,0x0000, 0x18D4,0x0000,0x0000,0x0000, /* FEAA */ +0x18D4,0x0000,0x0000,0x0000, 0x18E1,0x0000,0x0000,0x0000, /* FEAC */ +0x18E1,0x0000,0x0000,0x0000, 0x18E2,0x0000,0x0000,0x0000, /* FEAE */ +0x18E2,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB0 */ +0x18F1,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB2 */ +0x18F1,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB4 */ +0x18F2,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB6 */ +0x18F2,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEB8 */ +0x18FC,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEBA */ +0x18FC,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBC */ +0x18FD,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBE */ +0x18FD,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC0 */ +0x1901,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC2 */ +0x1901,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC4 */ +0x1902,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC6 */ +0x1902,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FEC8 */ +0x1904,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FECA */ +0x1904,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECC */ +0x1905,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECE */ +0x1905,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED0 */ +0x190B,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED2 */ +0x190B,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED4 */ +0x1915,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED6 */ +0x1915,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FED8 */ +0x1918,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FEDA */ +0x1918,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDC */ +0x192B,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDE */ +0x192B,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE0 */ +0x1931,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE2 */ +0x1931,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE4 */ +0x1934,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE6 */ +0x1934,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEE8 */ +0x193D,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEEA */ +0x193D,0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000,0x0000, /* FEEC */ +0x1943,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FEEE */ +0x194F,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF0 */ +0x1950,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF2 */ +0x1950,0x0000,0x0000,0x0000, 0x192B,0x18A3,0x0000,0x0000, /* FEF4 */ +0x192B,0x18A3,0x0000,0x0000, 0x192B,0x18A4,0x0000,0x0000, /* FEF6 */ +0x192B,0x18A4,0x0000,0x0000, 0x192B,0x18A8,0x0000,0x0000, /* FEF8 */ +0x192B,0x18A8,0x0000,0x0000, 0x192B,0x18AD,0x0000,0x0000, /* FEFA */ +0x192B,0x18AD,0x0000,0x0000, 0xFBC1,0xFEFD,0x0000,0x0000, /* FEFC */ +0xFBC1,0xFEFE,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 /* FEFE */ +}; + +static const uint16 uca520_p0FF[]= { /* FF00 (3 weights per char) */ +0xFBC1,0xFF00,0x0000, 0x026E,0x0000,0x0000, 0x02F5,0x0000,0x0000, /* FF00 */ +0x0362,0x0000,0x0000, 0x11E1,0x0000,0x0000, 0x0363,0x0000,0x0000, /* FF03 */ +0x035F,0x0000,0x0000, 0x02EE,0x0000,0x0000, 0x02FF,0x0000,0x0000, /* FF06 */ +0x0300,0x0000,0x0000, 0x0357,0x0000,0x0000, 0x0550,0x0000,0x0000, /* FF09 */ +0x0234,0x0000,0x0000, 0x0223,0x0000,0x0000, 0x0281,0x0000,0x0000, /* FF0C */ +0x035C,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* FF0F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* FF12 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* FF15 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x0247,0x0000,0x0000, /* FF18 */ +0x0243,0x0000,0x0000, 0x0554,0x0000,0x0000, 0x0555,0x0000,0x0000, /* FF1B */ +0x0556,0x0000,0x0000, 0x0273,0x0000,0x0000, 0x0356,0x0000,0x0000, /* FF1E */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* FF21 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* FF24 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* FF27 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* FF2A */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* FF2D */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* FF30 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* FF33 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* FF36 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x0301,0x0000,0x0000, /* FF39 */ +0x035E,0x0000,0x0000, 0x0302,0x0000,0x0000, 0x0211,0x0000,0x0000, /* FF3C */ +0x021D,0x0000,0x0000, 0x020E,0x0000,0x0000, 0x120F,0x0000,0x0000, /* FF3F */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* FF42 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* FF45 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* FF48 */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* FF4B */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* FF4E */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* FF51 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* FF54 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* FF57 */ +0x14AD,0x0000,0x0000, 0x0303,0x0000,0x0000, 0x0558,0x0000,0x0000, /* FF5A */ +0x0304,0x0000,0x0000, 0x055B,0x0000,0x0000, 0x0311,0x0000,0x0000, /* FF5D */ +0x0312,0x0000,0x0000, 0x0291,0x0000,0x0000, 0x0341,0x0000,0x0000, /* FF60 */ +0x0342,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0233,0x0000,0x0000, /* FF63 */ +0x2B43,0x0000,0x0000, 0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* FF66 */ +0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* FF69 */ +0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B3A,0x0000,0x0000, /* FF6C */ +0x2B26,0x0000,0x0000, 0x11DD,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* FF6F */ +0x2B16,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* FF72 */ +0x2B19,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* FF75 */ +0x2B1C,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* FF78 */ +0x2B1F,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* FF7B */ +0x2B22,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* FF7E */ +0x2B25,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B27,0x0000,0x0000, /* FF81 */ +0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* FF84 */ +0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* FF87 */ +0x2B2E,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* FF8A */ +0x2B31,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B33,0x0000,0x0000, /* FF8D */ +0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B36,0x0000,0x0000, /* FF90 */ +0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* FF93 */ +0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, 0x2B3C,0x0000,0x0000, /* FF96 */ +0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, 0x2B3F,0x0000,0x0000, /* FF99 */ +0x2B40,0x0000,0x0000, 0x2B44,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FF9C */ +0x0000,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29B0,0x0000,0x0000, /* FF9F */ +0x29B1,0x0000,0x0000, 0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, /* FFA2 */ +0x2A90,0x0000,0x0000, 0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, /* FFA5 */ +0x29B4,0x0000,0x0000, 0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, /* FFA8 */ +0x2A95,0x0000,0x0000, 0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, /* FFAB */ +0x2A98,0x0000,0x0000, 0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, /* FFAE */ +0x29B6,0x0000,0x0000, 0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, /* FFB1 */ +0x29D1,0x0000,0x0000, 0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, /* FFB4 */ +0x29BB,0x0000,0x0000, 0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, /* FFB7 */ +0x29BE,0x0000,0x0000, 0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, /* FFBA */ +0x29C1,0x0000,0x0000, 0x29C2,0x0000,0x0000, 0xFBC1,0xFFBF,0x0000, /* FFBD */ +0xFBC1,0xFFC0,0x0000, 0xFBC1,0xFFC1,0x0000, 0x2A2E,0x0000,0x0000, /* FFC0 */ +0x2A2F,0x0000,0x0000, 0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, /* FFC3 */ +0x2A32,0x0000,0x0000, 0x2A33,0x0000,0x0000, 0xFBC1,0xFFC8,0x0000, /* FFC6 */ +0xFBC1,0xFFC9,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* FFC9 */ +0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* FFCC */ +0x2A39,0x0000,0x0000, 0xFBC1,0xFFD0,0x0000, 0xFBC1,0xFFD1,0x0000, /* FFCF */ +0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, 0x2A3C,0x0000,0x0000, /* FFD2 */ +0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, 0x2A3F,0x0000,0x0000, /* FFD5 */ +0xFBC1,0xFFD8,0x0000, 0xFBC1,0xFFD9,0x0000, 0x2A40,0x0000,0x0000, /* FFD8 */ +0x2A41,0x0000,0x0000, 0x2A42,0x0000,0x0000, 0xFBC1,0xFFDD,0x0000, /* FFDB */ +0xFBC1,0xFFDE,0x0000, 0xFBC1,0xFFDF,0x0000, 0x11E0,0x0000,0x0000, /* FFDE */ +0x11E2,0x0000,0x0000, 0x0557,0x0000,0x0000, 0x0212,0x0000,0x0000, /* FFE1 */ +0x0559,0x0000,0x0000, 0x11E3,0x0000,0x0000, 0x11F5,0x0000,0x0000, /* FFE4 */ +0xFBC1,0xFFE7,0x0000, 0x0740,0x0000,0x0000, 0x04D6,0x0000,0x0000, /* FFE7 */ +0x04D8,0x0000,0x0000, 0x04D7,0x0000,0x0000, 0x04D9,0x0000,0x0000, /* FFEA */ +0x07DE,0x0000,0x0000, 0x0809,0x0000,0x0000, 0xFBC1,0xFFEF,0x0000, /* FFED */ +0xFBC1,0xFFF0,0x0000, 0xFBC1,0xFFF1,0x0000, 0xFBC1,0xFFF2,0x0000, /* FFF0 */ +0xFBC1,0xFFF3,0x0000, 0xFBC1,0xFFF4,0x0000, 0xFBC1,0xFFF5,0x0000, /* FFF3 */ +0xFBC1,0xFFF6,0x0000, 0xFBC1,0xFFF7,0x0000, 0xFBC1,0xFFF8,0x0000, /* FFF6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FFF9 */ +0x110E,0x0000,0x0000, 0x110F,0x0000,0x0000, 0xFBC1,0xFFFE,0x0000, /* FFFC */ +0xFBC1,0xFFFF,0x0000 }; + +static const uint16 uca520_p100[]= { /* 10000 (3 weights per char) */ +0x3148,0x0000,0x0000, 0x3149,0x0000,0x0000, 0x314A,0x0000,0x0000, /* 10000 */ +0x314B,0x0000,0x0000, 0x314C,0x0000,0x0000, 0x314D,0x0000,0x0000, /* 10003 */ +0x314E,0x0000,0x0000, 0x314F,0x0000,0x0000, 0x3150,0x0000,0x0000, /* 10006 */ +0x3151,0x0000,0x0000, 0x3152,0x0000,0x0000, 0x3153,0x0000,0x0000, /* 10009 */ +0xFBC2,0x800C,0x0000, 0x3154,0x0000,0x0000, 0x3155,0x0000,0x0000, /* 1000C */ +0x3156,0x0000,0x0000, 0x3157,0x0000,0x0000, 0x3158,0x0000,0x0000, /* 1000F */ +0x3159,0x0000,0x0000, 0x315A,0x0000,0x0000, 0x315B,0x0000,0x0000, /* 10012 */ +0x315C,0x0000,0x0000, 0x315D,0x0000,0x0000, 0x315E,0x0000,0x0000, /* 10015 */ +0x315F,0x0000,0x0000, 0x3160,0x0000,0x0000, 0x3161,0x0000,0x0000, /* 10018 */ +0x3162,0x0000,0x0000, 0x3163,0x0000,0x0000, 0x3164,0x0000,0x0000, /* 1001B */ +0x3165,0x0000,0x0000, 0x3166,0x0000,0x0000, 0x3167,0x0000,0x0000, /* 1001E */ +0x3168,0x0000,0x0000, 0x3169,0x0000,0x0000, 0x316A,0x0000,0x0000, /* 10021 */ +0x316B,0x0000,0x0000, 0x316C,0x0000,0x0000, 0x316D,0x0000,0x0000, /* 10024 */ +0xFBC2,0x8027,0x0000, 0x316E,0x0000,0x0000, 0x316F,0x0000,0x0000, /* 10027 */ +0x3170,0x0000,0x0000, 0x3171,0x0000,0x0000, 0x3172,0x0000,0x0000, /* 1002A */ +0x3173,0x0000,0x0000, 0x3174,0x0000,0x0000, 0x3175,0x0000,0x0000, /* 1002D */ +0x3176,0x0000,0x0000, 0x3177,0x0000,0x0000, 0x3178,0x0000,0x0000, /* 10030 */ +0x3179,0x0000,0x0000, 0x317A,0x0000,0x0000, 0x317B,0x0000,0x0000, /* 10033 */ +0x317C,0x0000,0x0000, 0x317D,0x0000,0x0000, 0x317E,0x0000,0x0000, /* 10036 */ +0x317F,0x0000,0x0000, 0x3180,0x0000,0x0000, 0xFBC2,0x803B,0x0000, /* 10039 */ +0x3181,0x0000,0x0000, 0x3182,0x0000,0x0000, 0xFBC2,0x803E,0x0000, /* 1003C */ +0x3183,0x0000,0x0000, 0x3184,0x0000,0x0000, 0x3185,0x0000,0x0000, /* 1003F */ +0x3186,0x0000,0x0000, 0x3187,0x0000,0x0000, 0x3188,0x0000,0x0000, /* 10042 */ +0x3189,0x0000,0x0000, 0x318A,0x0000,0x0000, 0x318B,0x0000,0x0000, /* 10045 */ +0x318C,0x0000,0x0000, 0x318D,0x0000,0x0000, 0x318E,0x0000,0x0000, /* 10048 */ +0x318F,0x0000,0x0000, 0x3190,0x0000,0x0000, 0x3191,0x0000,0x0000, /* 1004B */ +0xFBC2,0x804E,0x0000, 0xFBC2,0x804F,0x0000, 0x3192,0x0000,0x0000, /* 1004E */ +0x3193,0x0000,0x0000, 0x3194,0x0000,0x0000, 0x3195,0x0000,0x0000, /* 10051 */ +0x3196,0x0000,0x0000, 0x3197,0x0000,0x0000, 0x3198,0x0000,0x0000, /* 10054 */ +0x3199,0x0000,0x0000, 0x319A,0x0000,0x0000, 0x319B,0x0000,0x0000, /* 10057 */ +0x319C,0x0000,0x0000, 0x319D,0x0000,0x0000, 0x319E,0x0000,0x0000, /* 1005A */ +0x319F,0x0000,0x0000, 0xFBC2,0x805E,0x0000, 0xFBC2,0x805F,0x0000, /* 1005D */ +0xFBC2,0x8060,0x0000, 0xFBC2,0x8061,0x0000, 0xFBC2,0x8062,0x0000, /* 10060 */ +0xFBC2,0x8063,0x0000, 0xFBC2,0x8064,0x0000, 0xFBC2,0x8065,0x0000, /* 10063 */ +0xFBC2,0x8066,0x0000, 0xFBC2,0x8067,0x0000, 0xFBC2,0x8068,0x0000, /* 10066 */ +0xFBC2,0x8069,0x0000, 0xFBC2,0x806A,0x0000, 0xFBC2,0x806B,0x0000, /* 10069 */ +0xFBC2,0x806C,0x0000, 0xFBC2,0x806D,0x0000, 0xFBC2,0x806E,0x0000, /* 1006C */ +0xFBC2,0x806F,0x0000, 0xFBC2,0x8070,0x0000, 0xFBC2,0x8071,0x0000, /* 1006F */ +0xFBC2,0x8072,0x0000, 0xFBC2,0x8073,0x0000, 0xFBC2,0x8074,0x0000, /* 10072 */ +0xFBC2,0x8075,0x0000, 0xFBC2,0x8076,0x0000, 0xFBC2,0x8077,0x0000, /* 10075 */ +0xFBC2,0x8078,0x0000, 0xFBC2,0x8079,0x0000, 0xFBC2,0x807A,0x0000, /* 10078 */ +0xFBC2,0x807B,0x0000, 0xFBC2,0x807C,0x0000, 0xFBC2,0x807D,0x0000, /* 1007B */ +0xFBC2,0x807E,0x0000, 0xFBC2,0x807F,0x0000, 0x31A0,0x0000,0x0000, /* 1007E */ +0x31A1,0x0000,0x0000, 0x31A2,0x0000,0x0000, 0x31A3,0x0000,0x0000, /* 10081 */ +0x31A4,0x0000,0x0000, 0x31A5,0x0000,0x0000, 0x31A6,0x0000,0x0000, /* 10084 */ +0x31A7,0x0000,0x0000, 0x31A8,0x0000,0x0000, 0x31A9,0x0000,0x0000, /* 10087 */ +0x31AA,0x0000,0x0000, 0x31AB,0x0000,0x0000, 0x31AC,0x0000,0x0000, /* 1008A */ +0x31AD,0x0000,0x0000, 0x31AE,0x0000,0x0000, 0x31AF,0x0000,0x0000, /* 1008D */ +0x31B0,0x0000,0x0000, 0x31B1,0x0000,0x0000, 0x31B2,0x0000,0x0000, /* 10090 */ +0x31B3,0x0000,0x0000, 0x31B4,0x0000,0x0000, 0x31B5,0x0000,0x0000, /* 10093 */ +0x31B6,0x0000,0x0000, 0x31B7,0x0000,0x0000, 0x31B8,0x0000,0x0000, /* 10096 */ +0x31B9,0x0000,0x0000, 0x31BA,0x0000,0x0000, 0x31BB,0x0000,0x0000, /* 10099 */ +0x31BC,0x0000,0x0000, 0x31BD,0x0000,0x0000, 0x31BE,0x0000,0x0000, /* 1009C */ +0x31BF,0x0000,0x0000, 0x31C0,0x0000,0x0000, 0x31C1,0x0000,0x0000, /* 1009F */ +0x31C2,0x0000,0x0000, 0x31C3,0x0000,0x0000, 0x31C4,0x0000,0x0000, /* 100A2 */ +0x31C5,0x0000,0x0000, 0x31C6,0x0000,0x0000, 0x31C7,0x0000,0x0000, /* 100A5 */ +0x31C8,0x0000,0x0000, 0x31C9,0x0000,0x0000, 0x31CA,0x0000,0x0000, /* 100A8 */ +0x31CB,0x0000,0x0000, 0x31CC,0x0000,0x0000, 0x31CD,0x0000,0x0000, /* 100AB */ +0x31CE,0x0000,0x0000, 0x31CF,0x0000,0x0000, 0x31D0,0x0000,0x0000, /* 100AE */ +0x31D1,0x0000,0x0000, 0x31D2,0x0000,0x0000, 0x31D3,0x0000,0x0000, /* 100B1 */ +0x31D4,0x0000,0x0000, 0x31D5,0x0000,0x0000, 0x31D6,0x0000,0x0000, /* 100B4 */ +0x31D7,0x0000,0x0000, 0x31D8,0x0000,0x0000, 0x31D9,0x0000,0x0000, /* 100B7 */ +0x31DA,0x0000,0x0000, 0x31DB,0x0000,0x0000, 0x31DC,0x0000,0x0000, /* 100BA */ +0x31DD,0x0000,0x0000, 0x31DE,0x0000,0x0000, 0x31DF,0x0000,0x0000, /* 100BD */ +0x31E0,0x0000,0x0000, 0x31E1,0x0000,0x0000, 0x31E2,0x0000,0x0000, /* 100C0 */ +0x31E3,0x0000,0x0000, 0x31E4,0x0000,0x0000, 0x31E5,0x0000,0x0000, /* 100C3 */ +0x31E6,0x0000,0x0000, 0x31E7,0x0000,0x0000, 0x31E8,0x0000,0x0000, /* 100C6 */ +0x31E9,0x0000,0x0000, 0x31EA,0x0000,0x0000, 0x31EB,0x0000,0x0000, /* 100C9 */ +0x31EC,0x0000,0x0000, 0x31ED,0x0000,0x0000, 0x31EE,0x0000,0x0000, /* 100CC */ +0x31EF,0x0000,0x0000, 0x31F0,0x0000,0x0000, 0x31F1,0x0000,0x0000, /* 100CF */ +0x31F2,0x0000,0x0000, 0x31F3,0x0000,0x0000, 0x31F4,0x0000,0x0000, /* 100D2 */ +0x31F5,0x0000,0x0000, 0x31F6,0x0000,0x0000, 0x31F7,0x0000,0x0000, /* 100D5 */ +0x31F8,0x0000,0x0000, 0x31F9,0x0000,0x0000, 0x31FA,0x0000,0x0000, /* 100D8 */ +0x31FB,0x0000,0x0000, 0x31FC,0x0000,0x0000, 0x31FD,0x0000,0x0000, /* 100DB */ +0x31FE,0x0000,0x0000, 0x31FF,0x0000,0x0000, 0x3200,0x0000,0x0000, /* 100DE */ +0x3201,0x0000,0x0000, 0x3202,0x0000,0x0000, 0x3203,0x0000,0x0000, /* 100E1 */ +0x3204,0x0000,0x0000, 0x3205,0x0000,0x0000, 0x3206,0x0000,0x0000, /* 100E4 */ +0x3207,0x0000,0x0000, 0x3208,0x0000,0x0000, 0x3209,0x0000,0x0000, /* 100E7 */ +0x320A,0x0000,0x0000, 0x320B,0x0000,0x0000, 0x320C,0x0000,0x0000, /* 100EA */ +0x320D,0x0000,0x0000, 0x320E,0x0000,0x0000, 0x320F,0x0000,0x0000, /* 100ED */ +0x3210,0x0000,0x0000, 0x3211,0x0000,0x0000, 0x3212,0x0000,0x0000, /* 100F0 */ +0x3213,0x0000,0x0000, 0x3214,0x0000,0x0000, 0x3215,0x0000,0x0000, /* 100F3 */ +0x3216,0x0000,0x0000, 0x3217,0x0000,0x0000, 0x3218,0x0000,0x0000, /* 100F6 */ +0x3219,0x0000,0x0000, 0x321A,0x0000,0x0000, 0xFBC2,0x80FB,0x0000, /* 100F9 */ +0xFBC2,0x80FC,0x0000, 0xFBC2,0x80FD,0x0000, 0xFBC2,0x80FE,0x0000, /* 100FC */ +0xFBC2,0x80FF,0x0000 }; + +static const uint16 uca520_p101[]= { /* 10100 (3 weights per char) */ +0x02E4,0x0000,0x0000, 0x02E5,0x0000,0x0000, 0x02E6,0x0000,0x0000, /* 10100 */ +0xFBC2,0x8103,0x0000, 0xFBC2,0x8104,0x0000, 0xFBC2,0x8105,0x0000, /* 10103 */ +0xFBC2,0x8106,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10106 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 10109 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1010C */ +0x120E,0x0000,0x0000, 0x114F,0x0000,0x0000, 0x1150,0x0000,0x0000, /* 1010F */ +0x1151,0x0000,0x0000, 0x1152,0x0000,0x0000, 0x1153,0x0000,0x0000, /* 10112 */ +0x1154,0x0000,0x0000, 0x1155,0x0000,0x0000, 0x1156,0x0000,0x0000, /* 10115 */ +0x1157,0x0000,0x0000, 0x1158,0x0000,0x0000, 0x1159,0x0000,0x0000, /* 10118 */ +0x115A,0x0000,0x0000, 0x115B,0x0000,0x0000, 0x115C,0x0000,0x0000, /* 1011B */ +0x115D,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x115F,0x0000,0x0000, /* 1011E */ +0x1160,0x0000,0x0000, 0x1161,0x0000,0x0000, 0x1162,0x0000,0x0000, /* 10121 */ +0x1163,0x0000,0x0000, 0x1164,0x0000,0x0000, 0x1165,0x0000,0x0000, /* 10124 */ +0x1166,0x0000,0x0000, 0x1167,0x0000,0x0000, 0x1168,0x0000,0x0000, /* 10127 */ +0x1169,0x0000,0x0000, 0x116A,0x0000,0x0000, 0x116B,0x0000,0x0000, /* 1012A */ +0x116C,0x0000,0x0000, 0x116D,0x0000,0x0000, 0x116E,0x0000,0x0000, /* 1012D */ +0x116F,0x0000,0x0000, 0x1170,0x0000,0x0000, 0x1171,0x0000,0x0000, /* 10130 */ +0x1172,0x0000,0x0000, 0xFBC2,0x8134,0x0000, 0xFBC2,0x8135,0x0000, /* 10133 */ +0xFBC2,0x8136,0x0000, 0x0E0C,0x0000,0x0000, 0x0E0D,0x0000,0x0000, /* 10136 */ +0x0E0E,0x0000,0x0000, 0x0E0F,0x0000,0x0000, 0x0E10,0x0000,0x0000, /* 10139 */ +0x0E11,0x0000,0x0000, 0x0E12,0x0000,0x0000, 0x0E13,0x0000,0x0000, /* 1013C */ +0x0E14,0x0000,0x0000, 0x1173,0x0000,0x0000, 0x1174,0x0000,0x0000, /* 1013F */ +0x1206,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1175,0x0000,0x0000, /* 10142 */ +0x1176,0x0000,0x0000, 0x1177,0x0000,0x0000, 0x1178,0x0000,0x0000, /* 10145 */ +0x120A,0x0000,0x0000, 0x1179,0x0000,0x0000, 0x117A,0x0000,0x0000, /* 10148 */ +0x117B,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x117D,0x0000,0x0000, /* 1014B */ +0x117E,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x117F,0x0000,0x0000, /* 1014E */ +0x1180,0x0000,0x0000, 0x1181,0x0000,0x0000, 0x1182,0x0000,0x0000, /* 10151 */ +0x1183,0x0000,0x0000, 0x1184,0x0000,0x0000, 0x1185,0x0000,0x0000, /* 10154 */ +0x1186,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10157 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1015A */ +0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1015D */ +0x1187,0x0000,0x0000, 0x1188,0x0000,0x0000, 0x1189,0x0000,0x0000, /* 10160 */ +0x118A,0x0000,0x0000, 0x118B,0x0000,0x0000, 0x118C,0x0000,0x0000, /* 10163 */ +0x118D,0x0000,0x0000, 0x118E,0x0000,0x0000, 0x118F,0x0000,0x0000, /* 10166 */ +0x1190,0x0000,0x0000, 0x1191,0x0000,0x0000, 0x1192,0x0000,0x0000, /* 10169 */ +0x1193,0x0000,0x0000, 0x1194,0x0000,0x0000, 0x1195,0x0000,0x0000, /* 1016C */ +0x1196,0x0000,0x0000, 0x1197,0x0000,0x0000, 0x1198,0x0000,0x0000, /* 1016F */ +0x1199,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x119A,0x0000,0x0000, /* 10172 */ +0x119B,0x0000,0x0000, 0x119C,0x0000,0x0000, 0x119D,0x0000,0x0000, /* 10175 */ +0x119E,0x0000,0x0000, 0x0E15,0x0000,0x0000, 0x0E16,0x0000,0x0000, /* 10178 */ +0x0E17,0x0000,0x0000, 0x0E18,0x0000,0x0000, 0x0E19,0x0000,0x0000, /* 1017B */ +0x0E1A,0x0000,0x0000, 0x0E1B,0x0000,0x0000, 0x0E1C,0x0000,0x0000, /* 1017E */ +0x0E1D,0x0000,0x0000, 0x0E1E,0x0000,0x0000, 0x0E1F,0x0000,0x0000, /* 10181 */ +0x0E20,0x0000,0x0000, 0x0E21,0x0000,0x0000, 0x0E22,0x0000,0x0000, /* 10184 */ +0x0E23,0x0000,0x0000, 0x0E24,0x0000,0x0000, 0x0E25,0x0000,0x0000, /* 10187 */ +0x1205,0x0000,0x0000, 0xFBC2,0x818B,0x0000, 0xFBC2,0x818C,0x0000, /* 1018A */ +0xFBC2,0x818D,0x0000, 0xFBC2,0x818E,0x0000, 0xFBC2,0x818F,0x0000, /* 1018D */ +0x0E26,0x0000,0x0000, 0x0E27,0x0000,0x0000, 0x0E28,0x0000,0x0000, /* 10190 */ +0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, /* 10193 */ +0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, /* 10196 */ +0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, /* 10199 */ +0xFBC2,0x819C,0x0000, 0xFBC2,0x819D,0x0000, 0xFBC2,0x819E,0x0000, /* 1019C */ +0xFBC2,0x819F,0x0000, 0xFBC2,0x81A0,0x0000, 0xFBC2,0x81A1,0x0000, /* 1019F */ +0xFBC2,0x81A2,0x0000, 0xFBC2,0x81A3,0x0000, 0xFBC2,0x81A4,0x0000, /* 101A2 */ +0xFBC2,0x81A5,0x0000, 0xFBC2,0x81A6,0x0000, 0xFBC2,0x81A7,0x0000, /* 101A5 */ +0xFBC2,0x81A8,0x0000, 0xFBC2,0x81A9,0x0000, 0xFBC2,0x81AA,0x0000, /* 101A8 */ +0xFBC2,0x81AB,0x0000, 0xFBC2,0x81AC,0x0000, 0xFBC2,0x81AD,0x0000, /* 101AB */ +0xFBC2,0x81AE,0x0000, 0xFBC2,0x81AF,0x0000, 0xFBC2,0x81B0,0x0000, /* 101AE */ +0xFBC2,0x81B1,0x0000, 0xFBC2,0x81B2,0x0000, 0xFBC2,0x81B3,0x0000, /* 101B1 */ +0xFBC2,0x81B4,0x0000, 0xFBC2,0x81B5,0x0000, 0xFBC2,0x81B6,0x0000, /* 101B4 */ +0xFBC2,0x81B7,0x0000, 0xFBC2,0x81B8,0x0000, 0xFBC2,0x81B9,0x0000, /* 101B7 */ +0xFBC2,0x81BA,0x0000, 0xFBC2,0x81BB,0x0000, 0xFBC2,0x81BC,0x0000, /* 101BA */ +0xFBC2,0x81BD,0x0000, 0xFBC2,0x81BE,0x0000, 0xFBC2,0x81BF,0x0000, /* 101BD */ +0xFBC2,0x81C0,0x0000, 0xFBC2,0x81C1,0x0000, 0xFBC2,0x81C2,0x0000, /* 101C0 */ +0xFBC2,0x81C3,0x0000, 0xFBC2,0x81C4,0x0000, 0xFBC2,0x81C5,0x0000, /* 101C3 */ +0xFBC2,0x81C6,0x0000, 0xFBC2,0x81C7,0x0000, 0xFBC2,0x81C8,0x0000, /* 101C6 */ +0xFBC2,0x81C9,0x0000, 0xFBC2,0x81CA,0x0000, 0xFBC2,0x81CB,0x0000, /* 101C9 */ +0xFBC2,0x81CC,0x0000, 0xFBC2,0x81CD,0x0000, 0xFBC2,0x81CE,0x0000, /* 101CC */ +0xFBC2,0x81CF,0x0000, 0x0E32,0x0000,0x0000, 0x0E33,0x0000,0x0000, /* 101CF */ +0x0E34,0x0000,0x0000, 0x0E35,0x0000,0x0000, 0x0E36,0x0000,0x0000, /* 101D2 */ +0x0E37,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0E39,0x0000,0x0000, /* 101D5 */ +0x0E3A,0x0000,0x0000, 0x0E3B,0x0000,0x0000, 0x0E3C,0x0000,0x0000, /* 101D8 */ +0x0E3D,0x0000,0x0000, 0x0E3E,0x0000,0x0000, 0x0E3F,0x0000,0x0000, /* 101DB */ +0x0E40,0x0000,0x0000, 0x0E41,0x0000,0x0000, 0x0E42,0x0000,0x0000, /* 101DE */ +0x0E43,0x0000,0x0000, 0x0E44,0x0000,0x0000, 0x0E45,0x0000,0x0000, /* 101E1 */ +0x0E46,0x0000,0x0000, 0x0E47,0x0000,0x0000, 0x0E48,0x0000,0x0000, /* 101E4 */ +0x0E49,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E4B,0x0000,0x0000, /* 101E7 */ +0x0E4C,0x0000,0x0000, 0x0E4D,0x0000,0x0000, 0x0E4E,0x0000,0x0000, /* 101EA */ +0x0E4F,0x0000,0x0000, 0x0E50,0x0000,0x0000, 0x0E51,0x0000,0x0000, /* 101ED */ +0x0E52,0x0000,0x0000, 0x0E53,0x0000,0x0000, 0x0E54,0x0000,0x0000, /* 101F0 */ +0x0E55,0x0000,0x0000, 0x0E56,0x0000,0x0000, 0x0E57,0x0000,0x0000, /* 101F3 */ +0x0E58,0x0000,0x0000, 0x0E59,0x0000,0x0000, 0x0E5A,0x0000,0x0000, /* 101F6 */ +0x0E5B,0x0000,0x0000, 0x0E5C,0x0000,0x0000, 0x0E5D,0x0000,0x0000, /* 101F9 */ +0x0E5E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x81FE,0x0000, /* 101FC */ +0xFBC2,0x81FF,0x0000 }; + +static const uint16 uca520_p102[]= { /* 10200 (3 weights per char) */ +0xFBC2,0x8200,0x0000, 0xFBC2,0x8201,0x0000, 0xFBC2,0x8202,0x0000, /* 10200 */ +0xFBC2,0x8203,0x0000, 0xFBC2,0x8204,0x0000, 0xFBC2,0x8205,0x0000, /* 10203 */ +0xFBC2,0x8206,0x0000, 0xFBC2,0x8207,0x0000, 0xFBC2,0x8208,0x0000, /* 10206 */ +0xFBC2,0x8209,0x0000, 0xFBC2,0x820A,0x0000, 0xFBC2,0x820B,0x0000, /* 10209 */ +0xFBC2,0x820C,0x0000, 0xFBC2,0x820D,0x0000, 0xFBC2,0x820E,0x0000, /* 1020C */ +0xFBC2,0x820F,0x0000, 0xFBC2,0x8210,0x0000, 0xFBC2,0x8211,0x0000, /* 1020F */ +0xFBC2,0x8212,0x0000, 0xFBC2,0x8213,0x0000, 0xFBC2,0x8214,0x0000, /* 10212 */ +0xFBC2,0x8215,0x0000, 0xFBC2,0x8216,0x0000, 0xFBC2,0x8217,0x0000, /* 10215 */ +0xFBC2,0x8218,0x0000, 0xFBC2,0x8219,0x0000, 0xFBC2,0x821A,0x0000, /* 10218 */ +0xFBC2,0x821B,0x0000, 0xFBC2,0x821C,0x0000, 0xFBC2,0x821D,0x0000, /* 1021B */ +0xFBC2,0x821E,0x0000, 0xFBC2,0x821F,0x0000, 0xFBC2,0x8220,0x0000, /* 1021E */ +0xFBC2,0x8221,0x0000, 0xFBC2,0x8222,0x0000, 0xFBC2,0x8223,0x0000, /* 10221 */ +0xFBC2,0x8224,0x0000, 0xFBC2,0x8225,0x0000, 0xFBC2,0x8226,0x0000, /* 10224 */ +0xFBC2,0x8227,0x0000, 0xFBC2,0x8228,0x0000, 0xFBC2,0x8229,0x0000, /* 10227 */ +0xFBC2,0x822A,0x0000, 0xFBC2,0x822B,0x0000, 0xFBC2,0x822C,0x0000, /* 1022A */ +0xFBC2,0x822D,0x0000, 0xFBC2,0x822E,0x0000, 0xFBC2,0x822F,0x0000, /* 1022D */ +0xFBC2,0x8230,0x0000, 0xFBC2,0x8231,0x0000, 0xFBC2,0x8232,0x0000, /* 10230 */ +0xFBC2,0x8233,0x0000, 0xFBC2,0x8234,0x0000, 0xFBC2,0x8235,0x0000, /* 10233 */ +0xFBC2,0x8236,0x0000, 0xFBC2,0x8237,0x0000, 0xFBC2,0x8238,0x0000, /* 10236 */ +0xFBC2,0x8239,0x0000, 0xFBC2,0x823A,0x0000, 0xFBC2,0x823B,0x0000, /* 10239 */ +0xFBC2,0x823C,0x0000, 0xFBC2,0x823D,0x0000, 0xFBC2,0x823E,0x0000, /* 1023C */ +0xFBC2,0x823F,0x0000, 0xFBC2,0x8240,0x0000, 0xFBC2,0x8241,0x0000, /* 1023F */ +0xFBC2,0x8242,0x0000, 0xFBC2,0x8243,0x0000, 0xFBC2,0x8244,0x0000, /* 10242 */ +0xFBC2,0x8245,0x0000, 0xFBC2,0x8246,0x0000, 0xFBC2,0x8247,0x0000, /* 10245 */ +0xFBC2,0x8248,0x0000, 0xFBC2,0x8249,0x0000, 0xFBC2,0x824A,0x0000, /* 10248 */ +0xFBC2,0x824B,0x0000, 0xFBC2,0x824C,0x0000, 0xFBC2,0x824D,0x0000, /* 1024B */ +0xFBC2,0x824E,0x0000, 0xFBC2,0x824F,0x0000, 0xFBC2,0x8250,0x0000, /* 1024E */ +0xFBC2,0x8251,0x0000, 0xFBC2,0x8252,0x0000, 0xFBC2,0x8253,0x0000, /* 10251 */ +0xFBC2,0x8254,0x0000, 0xFBC2,0x8255,0x0000, 0xFBC2,0x8256,0x0000, /* 10254 */ +0xFBC2,0x8257,0x0000, 0xFBC2,0x8258,0x0000, 0xFBC2,0x8259,0x0000, /* 10257 */ +0xFBC2,0x825A,0x0000, 0xFBC2,0x825B,0x0000, 0xFBC2,0x825C,0x0000, /* 1025A */ +0xFBC2,0x825D,0x0000, 0xFBC2,0x825E,0x0000, 0xFBC2,0x825F,0x0000, /* 1025D */ +0xFBC2,0x8260,0x0000, 0xFBC2,0x8261,0x0000, 0xFBC2,0x8262,0x0000, /* 10260 */ +0xFBC2,0x8263,0x0000, 0xFBC2,0x8264,0x0000, 0xFBC2,0x8265,0x0000, /* 10263 */ +0xFBC2,0x8266,0x0000, 0xFBC2,0x8267,0x0000, 0xFBC2,0x8268,0x0000, /* 10266 */ +0xFBC2,0x8269,0x0000, 0xFBC2,0x826A,0x0000, 0xFBC2,0x826B,0x0000, /* 10269 */ +0xFBC2,0x826C,0x0000, 0xFBC2,0x826D,0x0000, 0xFBC2,0x826E,0x0000, /* 1026C */ +0xFBC2,0x826F,0x0000, 0xFBC2,0x8270,0x0000, 0xFBC2,0x8271,0x0000, /* 1026F */ +0xFBC2,0x8272,0x0000, 0xFBC2,0x8273,0x0000, 0xFBC2,0x8274,0x0000, /* 10272 */ +0xFBC2,0x8275,0x0000, 0xFBC2,0x8276,0x0000, 0xFBC2,0x8277,0x0000, /* 10275 */ +0xFBC2,0x8278,0x0000, 0xFBC2,0x8279,0x0000, 0xFBC2,0x827A,0x0000, /* 10278 */ +0xFBC2,0x827B,0x0000, 0xFBC2,0x827C,0x0000, 0xFBC2,0x827D,0x0000, /* 1027B */ +0xFBC2,0x827E,0x0000, 0xFBC2,0x827F,0x0000, 0x3030,0x0000,0x0000, /* 1027E */ +0x3031,0x0000,0x0000, 0x3032,0x0000,0x0000, 0x3033,0x0000,0x0000, /* 10281 */ +0x3034,0x0000,0x0000, 0x3035,0x0000,0x0000, 0x3036,0x0000,0x0000, /* 10284 */ +0x3037,0x0000,0x0000, 0x3038,0x0000,0x0000, 0x3039,0x0000,0x0000, /* 10287 */ +0x303A,0x0000,0x0000, 0x303B,0x0000,0x0000, 0x303C,0x0000,0x0000, /* 1028A */ +0x303D,0x0000,0x0000, 0x303E,0x0000,0x0000, 0x303F,0x0000,0x0000, /* 1028D */ +0x3040,0x0000,0x0000, 0x3041,0x0000,0x0000, 0x3042,0x0000,0x0000, /* 10290 */ +0x3043,0x0000,0x0000, 0x3044,0x0000,0x0000, 0x3045,0x0000,0x0000, /* 10293 */ +0x3046,0x0000,0x0000, 0x3047,0x0000,0x0000, 0x3048,0x0000,0x0000, /* 10296 */ +0x3049,0x0000,0x0000, 0x304A,0x0000,0x0000, 0x304B,0x0000,0x0000, /* 10299 */ +0x304C,0x0000,0x0000, 0xFBC2,0x829D,0x0000, 0xFBC2,0x829E,0x0000, /* 1029C */ +0xFBC2,0x829F,0x0000, 0x304D,0x0000,0x0000, 0x304E,0x0000,0x0000, /* 1029F */ +0x304F,0x0000,0x0000, 0x3050,0x0000,0x0000, 0x3051,0x0000,0x0000, /* 102A2 */ +0x3052,0x0000,0x0000, 0x3053,0x0000,0x0000, 0x3054,0x0000,0x0000, /* 102A5 */ +0x3055,0x0000,0x0000, 0x3056,0x0000,0x0000, 0x3057,0x0000,0x0000, /* 102A8 */ +0x3058,0x0000,0x0000, 0x3059,0x0000,0x0000, 0x305A,0x0000,0x0000, /* 102AB */ +0x305B,0x0000,0x0000, 0x305C,0x0000,0x0000, 0x305D,0x0000,0x0000, /* 102AE */ +0x305E,0x0000,0x0000, 0x305F,0x0000,0x0000, 0x3060,0x0000,0x0000, /* 102B1 */ +0x3061,0x0000,0x0000, 0x3062,0x0000,0x0000, 0x3063,0x0000,0x0000, /* 102B4 */ +0x3064,0x0000,0x0000, 0x3065,0x0000,0x0000, 0x3066,0x0000,0x0000, /* 102B7 */ +0x3067,0x0000,0x0000, 0x3068,0x0000,0x0000, 0x3069,0x0000,0x0000, /* 102BA */ +0x306A,0x0000,0x0000, 0x306B,0x0000,0x0000, 0x306C,0x0000,0x0000, /* 102BD */ +0x306D,0x0000,0x0000, 0x306E,0x0000,0x0000, 0x306F,0x0000,0x0000, /* 102C0 */ +0x3070,0x0000,0x0000, 0x3071,0x0000,0x0000, 0x3072,0x0000,0x0000, /* 102C3 */ +0x3073,0x0000,0x0000, 0x3074,0x0000,0x0000, 0x3075,0x0000,0x0000, /* 102C6 */ +0x3076,0x0000,0x0000, 0x3077,0x0000,0x0000, 0x3078,0x0000,0x0000, /* 102C9 */ +0x3079,0x0000,0x0000, 0x307A,0x0000,0x0000, 0x307B,0x0000,0x0000, /* 102CC */ +0x307C,0x0000,0x0000, 0x307D,0x0000,0x0000, 0xFBC2,0x82D1,0x0000, /* 102CF */ +0xFBC2,0x82D2,0x0000, 0xFBC2,0x82D3,0x0000, 0xFBC2,0x82D4,0x0000, /* 102D2 */ +0xFBC2,0x82D5,0x0000, 0xFBC2,0x82D6,0x0000, 0xFBC2,0x82D7,0x0000, /* 102D5 */ +0xFBC2,0x82D8,0x0000, 0xFBC2,0x82D9,0x0000, 0xFBC2,0x82DA,0x0000, /* 102D8 */ +0xFBC2,0x82DB,0x0000, 0xFBC2,0x82DC,0x0000, 0xFBC2,0x82DD,0x0000, /* 102DB */ +0xFBC2,0x82DE,0x0000, 0xFBC2,0x82DF,0x0000, 0xFBC2,0x82E0,0x0000, /* 102DE */ +0xFBC2,0x82E1,0x0000, 0xFBC2,0x82E2,0x0000, 0xFBC2,0x82E3,0x0000, /* 102E1 */ +0xFBC2,0x82E4,0x0000, 0xFBC2,0x82E5,0x0000, 0xFBC2,0x82E6,0x0000, /* 102E4 */ +0xFBC2,0x82E7,0x0000, 0xFBC2,0x82E8,0x0000, 0xFBC2,0x82E9,0x0000, /* 102E7 */ +0xFBC2,0x82EA,0x0000, 0xFBC2,0x82EB,0x0000, 0xFBC2,0x82EC,0x0000, /* 102EA */ +0xFBC2,0x82ED,0x0000, 0xFBC2,0x82EE,0x0000, 0xFBC2,0x82EF,0x0000, /* 102ED */ +0xFBC2,0x82F0,0x0000, 0xFBC2,0x82F1,0x0000, 0xFBC2,0x82F2,0x0000, /* 102F0 */ +0xFBC2,0x82F3,0x0000, 0xFBC2,0x82F4,0x0000, 0xFBC2,0x82F5,0x0000, /* 102F3 */ +0xFBC2,0x82F6,0x0000, 0xFBC2,0x82F7,0x0000, 0xFBC2,0x82F8,0x0000, /* 102F6 */ +0xFBC2,0x82F9,0x0000, 0xFBC2,0x82FA,0x0000, 0xFBC2,0x82FB,0x0000, /* 102F9 */ +0xFBC2,0x82FC,0x0000, 0xFBC2,0x82FD,0x0000, 0xFBC2,0x82FE,0x0000, /* 102FC */ +0xFBC2,0x82FF,0x0000 }; + +static const uint16 uca520_p103[]= { /* 10300 (3 weights per char) */ +0x3098,0x0000,0x0000, 0x3099,0x0000,0x0000, 0x309A,0x0000,0x0000, /* 10300 */ +0x309B,0x0000,0x0000, 0x309C,0x0000,0x0000, 0x309D,0x0000,0x0000, /* 10303 */ +0x309E,0x0000,0x0000, 0x309F,0x0000,0x0000, 0x30A0,0x0000,0x0000, /* 10306 */ +0x30A1,0x0000,0x0000, 0x30A2,0x0000,0x0000, 0x30A3,0x0000,0x0000, /* 10309 */ +0x30A4,0x0000,0x0000, 0x30A5,0x0000,0x0000, 0x30A6,0x0000,0x0000, /* 1030C */ +0x30A7,0x0000,0x0000, 0x30A8,0x0000,0x0000, 0x30A9,0x0000,0x0000, /* 1030F */ +0x30AA,0x0000,0x0000, 0x30AB,0x0000,0x0000, 0x30AC,0x0000,0x0000, /* 10312 */ +0x30AD,0x0000,0x0000, 0x30AE,0x0000,0x0000, 0x30AF,0x0000,0x0000, /* 10315 */ +0x30B0,0x0000,0x0000, 0x30B1,0x0000,0x0000, 0x30B2,0x0000,0x0000, /* 10318 */ +0x30B3,0x0000,0x0000, 0x30B4,0x0000,0x0000, 0x30B5,0x0000,0x0000, /* 1031B */ +0x30B6,0x0000,0x0000, 0xFBC2,0x831F,0x0000, 0x1206,0x0000,0x0000, /* 1031E */ +0x120A,0x0000,0x0000, 0x114D,0x0000,0x0000, 0x114E,0x0000,0x0000, /* 10321 */ +0xFBC2,0x8324,0x0000, 0xFBC2,0x8325,0x0000, 0xFBC2,0x8326,0x0000, /* 10324 */ +0xFBC2,0x8327,0x0000, 0xFBC2,0x8328,0x0000, 0xFBC2,0x8329,0x0000, /* 10327 */ +0xFBC2,0x832A,0x0000, 0xFBC2,0x832B,0x0000, 0xFBC2,0x832C,0x0000, /* 1032A */ +0xFBC2,0x832D,0x0000, 0xFBC2,0x832E,0x0000, 0xFBC2,0x832F,0x0000, /* 1032D */ +0x30B7,0x0000,0x0000, 0x30B8,0x0000,0x0000, 0x30B9,0x0000,0x0000, /* 10330 */ +0x30BA,0x0000,0x0000, 0x30BB,0x0000,0x0000, 0x30BC,0x0000,0x0000, /* 10333 */ +0x30BD,0x0000,0x0000, 0x30BE,0x0000,0x0000, 0x30BF,0x0000,0x0000, /* 10336 */ +0x30C0,0x0000,0x0000, 0x30C1,0x0000,0x0000, 0x30C2,0x0000,0x0000, /* 10339 */ +0x30C3,0x0000,0x0000, 0x30C4,0x0000,0x0000, 0x30C5,0x0000,0x0000, /* 1033C */ +0x30C6,0x0000,0x0000, 0x30C7,0x0000,0x0000, 0x30C8,0x0000,0x0000, /* 1033F */ +0x30C9,0x0000,0x0000, 0x30CA,0x0000,0x0000, 0x30CB,0x0000,0x0000, /* 10342 */ +0x30CC,0x0000,0x0000, 0x30CD,0x0000,0x0000, 0x30CE,0x0000,0x0000, /* 10345 */ +0x30CF,0x0000,0x0000, 0x30D0,0x0000,0x0000, 0x30D1,0x0000,0x0000, /* 10348 */ +0xFBC2,0x834B,0x0000, 0xFBC2,0x834C,0x0000, 0xFBC2,0x834D,0x0000, /* 1034B */ +0xFBC2,0x834E,0x0000, 0xFBC2,0x834F,0x0000, 0xFBC2,0x8350,0x0000, /* 1034E */ +0xFBC2,0x8351,0x0000, 0xFBC2,0x8352,0x0000, 0xFBC2,0x8353,0x0000, /* 10351 */ +0xFBC2,0x8354,0x0000, 0xFBC2,0x8355,0x0000, 0xFBC2,0x8356,0x0000, /* 10354 */ +0xFBC2,0x8357,0x0000, 0xFBC2,0x8358,0x0000, 0xFBC2,0x8359,0x0000, /* 10357 */ +0xFBC2,0x835A,0x0000, 0xFBC2,0x835B,0x0000, 0xFBC2,0x835C,0x0000, /* 1035A */ +0xFBC2,0x835D,0x0000, 0xFBC2,0x835E,0x0000, 0xFBC2,0x835F,0x0000, /* 1035D */ +0xFBC2,0x8360,0x0000, 0xFBC2,0x8361,0x0000, 0xFBC2,0x8362,0x0000, /* 10360 */ +0xFBC2,0x8363,0x0000, 0xFBC2,0x8364,0x0000, 0xFBC2,0x8365,0x0000, /* 10363 */ +0xFBC2,0x8366,0x0000, 0xFBC2,0x8367,0x0000, 0xFBC2,0x8368,0x0000, /* 10366 */ +0xFBC2,0x8369,0x0000, 0xFBC2,0x836A,0x0000, 0xFBC2,0x836B,0x0000, /* 10369 */ +0xFBC2,0x836C,0x0000, 0xFBC2,0x836D,0x0000, 0xFBC2,0x836E,0x0000, /* 1036C */ +0xFBC2,0x836F,0x0000, 0xFBC2,0x8370,0x0000, 0xFBC2,0x8371,0x0000, /* 1036F */ +0xFBC2,0x8372,0x0000, 0xFBC2,0x8373,0x0000, 0xFBC2,0x8374,0x0000, /* 10372 */ +0xFBC2,0x8375,0x0000, 0xFBC2,0x8376,0x0000, 0xFBC2,0x8377,0x0000, /* 10375 */ +0xFBC2,0x8378,0x0000, 0xFBC2,0x8379,0x0000, 0xFBC2,0x837A,0x0000, /* 10378 */ +0xFBC2,0x837B,0x0000, 0xFBC2,0x837C,0x0000, 0xFBC2,0x837D,0x0000, /* 1037B */ +0xFBC2,0x837E,0x0000, 0xFBC2,0x837F,0x0000, 0x32E3,0x0000,0x0000, /* 1037E */ +0x32E4,0x0000,0x0000, 0x32E5,0x0000,0x0000, 0x32E6,0x0000,0x0000, /* 10381 */ +0x32E7,0x0000,0x0000, 0x32E8,0x0000,0x0000, 0x32E9,0x0000,0x0000, /* 10384 */ +0x32EA,0x0000,0x0000, 0x32EB,0x0000,0x0000, 0x32EC,0x0000,0x0000, /* 10387 */ +0x32ED,0x0000,0x0000, 0x32EE,0x0000,0x0000, 0x32EF,0x0000,0x0000, /* 1038A */ +0x32F0,0x0000,0x0000, 0x32F1,0x0000,0x0000, 0x32F2,0x0000,0x0000, /* 1038D */ +0x32F3,0x0000,0x0000, 0x32F4,0x0000,0x0000, 0x32F5,0x0000,0x0000, /* 10390 */ +0x32F6,0x0000,0x0000, 0x32F7,0x0000,0x0000, 0x32F8,0x0000,0x0000, /* 10393 */ +0x32F9,0x0000,0x0000, 0x32FA,0x0000,0x0000, 0x32FB,0x0000,0x0000, /* 10396 */ +0x32FC,0x0000,0x0000, 0x32FD,0x0000,0x0000, 0x32FE,0x0000,0x0000, /* 10399 */ +0x32FF,0x0000,0x0000, 0x3300,0x0000,0x0000, 0xFBC2,0x839E,0x0000, /* 1039C */ +0x02E7,0x0000,0x0000, 0x3301,0x0000,0x0000, 0x3302,0x0000,0x0000, /* 1039F */ +0x3303,0x0000,0x0000, 0x3304,0x0000,0x0000, 0x3305,0x0000,0x0000, /* 103A2 */ +0x3306,0x0000,0x0000, 0x3307,0x0000,0x0000, 0x3308,0x0000,0x0000, /* 103A5 */ +0x3309,0x0000,0x0000, 0x330A,0x0000,0x0000, 0x330B,0x0000,0x0000, /* 103A8 */ +0x330C,0x0000,0x0000, 0x330D,0x0000,0x0000, 0x330E,0x0000,0x0000, /* 103AB */ +0x330F,0x0000,0x0000, 0x3310,0x0000,0x0000, 0x3311,0x0000,0x0000, /* 103AE */ +0x3312,0x0000,0x0000, 0x3313,0x0000,0x0000, 0x3314,0x0000,0x0000, /* 103B1 */ +0x3315,0x0000,0x0000, 0x3316,0x0000,0x0000, 0x3317,0x0000,0x0000, /* 103B4 */ +0x3318,0x0000,0x0000, 0x3319,0x0000,0x0000, 0x331A,0x0000,0x0000, /* 103B7 */ +0x331B,0x0000,0x0000, 0x331C,0x0000,0x0000, 0x331D,0x0000,0x0000, /* 103BA */ +0x331E,0x0000,0x0000, 0x331F,0x0000,0x0000, 0x3320,0x0000,0x0000, /* 103BD */ +0x3321,0x0000,0x0000, 0x3322,0x0000,0x0000, 0x3323,0x0000,0x0000, /* 103C0 */ +0x3324,0x0000,0x0000, 0xFBC2,0x83C4,0x0000, 0xFBC2,0x83C5,0x0000, /* 103C3 */ +0xFBC2,0x83C6,0x0000, 0xFBC2,0x83C7,0x0000, 0x3325,0x0000,0x0000, /* 103C6 */ +0x3326,0x0000,0x0000, 0x3327,0x0000,0x0000, 0x3328,0x0000,0x0000, /* 103C9 */ +0x3329,0x0000,0x0000, 0x332A,0x0000,0x0000, 0x332B,0x0000,0x0000, /* 103CC */ +0x332C,0x0000,0x0000, 0x02E8,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 103CF */ +0x1207,0x0000,0x0000, 0x119F,0x0000,0x0000, 0x11A0,0x0000,0x0000, /* 103D2 */ +0x11A1,0x0000,0x0000, 0xFBC2,0x83D6,0x0000, 0xFBC2,0x83D7,0x0000, /* 103D5 */ +0xFBC2,0x83D8,0x0000, 0xFBC2,0x83D9,0x0000, 0xFBC2,0x83DA,0x0000, /* 103D8 */ +0xFBC2,0x83DB,0x0000, 0xFBC2,0x83DC,0x0000, 0xFBC2,0x83DD,0x0000, /* 103DB */ +0xFBC2,0x83DE,0x0000, 0xFBC2,0x83DF,0x0000, 0xFBC2,0x83E0,0x0000, /* 103DE */ +0xFBC2,0x83E1,0x0000, 0xFBC2,0x83E2,0x0000, 0xFBC2,0x83E3,0x0000, /* 103E1 */ +0xFBC2,0x83E4,0x0000, 0xFBC2,0x83E5,0x0000, 0xFBC2,0x83E6,0x0000, /* 103E4 */ +0xFBC2,0x83E7,0x0000, 0xFBC2,0x83E8,0x0000, 0xFBC2,0x83E9,0x0000, /* 103E7 */ +0xFBC2,0x83EA,0x0000, 0xFBC2,0x83EB,0x0000, 0xFBC2,0x83EC,0x0000, /* 103EA */ +0xFBC2,0x83ED,0x0000, 0xFBC2,0x83EE,0x0000, 0xFBC2,0x83EF,0x0000, /* 103ED */ +0xFBC2,0x83F0,0x0000, 0xFBC2,0x83F1,0x0000, 0xFBC2,0x83F2,0x0000, /* 103F0 */ +0xFBC2,0x83F3,0x0000, 0xFBC2,0x83F4,0x0000, 0xFBC2,0x83F5,0x0000, /* 103F3 */ +0xFBC2,0x83F6,0x0000, 0xFBC2,0x83F7,0x0000, 0xFBC2,0x83F8,0x0000, /* 103F6 */ +0xFBC2,0x83F9,0x0000, 0xFBC2,0x83FA,0x0000, 0xFBC2,0x83FB,0x0000, /* 103F9 */ +0xFBC2,0x83FC,0x0000, 0xFBC2,0x83FD,0x0000, 0xFBC2,0x83FE,0x0000, /* 103FC */ +0xFBC2,0x83FF,0x0000 }; + +static const uint16 uca520_p104[]= { /* 10400 (3 weights per char) */ +0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, 0x30D4,0x0000,0x0000, /* 10400 */ +0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, 0x30D7,0x0000,0x0000, /* 10403 */ +0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, 0x30DA,0x0000,0x0000, /* 10406 */ +0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, 0x30DD,0x0000,0x0000, /* 10409 */ +0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, 0x30E0,0x0000,0x0000, /* 1040C */ +0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, 0x30E3,0x0000,0x0000, /* 1040F */ +0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, 0x30E6,0x0000,0x0000, /* 10412 */ +0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, 0x30E9,0x0000,0x0000, /* 10415 */ +0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, 0x30EC,0x0000,0x0000, /* 10418 */ +0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, 0x30EF,0x0000,0x0000, /* 1041B */ +0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, 0x30F2,0x0000,0x0000, /* 1041E */ +0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, 0x30F5,0x0000,0x0000, /* 10421 */ +0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, 0x30F8,0x0000,0x0000, /* 10424 */ +0x30F9,0x0000,0x0000, 0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, /* 10427 */ +0x30D4,0x0000,0x0000, 0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, /* 1042A */ +0x30D7,0x0000,0x0000, 0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, /* 1042D */ +0x30DA,0x0000,0x0000, 0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, /* 10430 */ +0x30DD,0x0000,0x0000, 0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, /* 10433 */ +0x30E0,0x0000,0x0000, 0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, /* 10436 */ +0x30E3,0x0000,0x0000, 0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, /* 10439 */ +0x30E6,0x0000,0x0000, 0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, /* 1043C */ +0x30E9,0x0000,0x0000, 0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, /* 1043F */ +0x30EC,0x0000,0x0000, 0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, /* 10442 */ +0x30EF,0x0000,0x0000, 0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, /* 10445 */ +0x30F2,0x0000,0x0000, 0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, /* 10448 */ +0x30F5,0x0000,0x0000, 0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, /* 1044B */ +0x30F8,0x0000,0x0000, 0x30F9,0x0000,0x0000, 0x30FA,0x0000,0x0000, /* 1044E */ +0x30FB,0x0000,0x0000, 0x30FC,0x0000,0x0000, 0x30FD,0x0000,0x0000, /* 10451 */ +0x30FE,0x0000,0x0000, 0x30FF,0x0000,0x0000, 0x3100,0x0000,0x0000, /* 10454 */ +0x3101,0x0000,0x0000, 0x3102,0x0000,0x0000, 0x3103,0x0000,0x0000, /* 10457 */ +0x3104,0x0000,0x0000, 0x3105,0x0000,0x0000, 0x3106,0x0000,0x0000, /* 1045A */ +0x3107,0x0000,0x0000, 0x3108,0x0000,0x0000, 0x3109,0x0000,0x0000, /* 1045D */ +0x310A,0x0000,0x0000, 0x310B,0x0000,0x0000, 0x310C,0x0000,0x0000, /* 10460 */ +0x310D,0x0000,0x0000, 0x310E,0x0000,0x0000, 0x310F,0x0000,0x0000, /* 10463 */ +0x3110,0x0000,0x0000, 0x3111,0x0000,0x0000, 0x3112,0x0000,0x0000, /* 10466 */ +0x3113,0x0000,0x0000, 0x3114,0x0000,0x0000, 0x3115,0x0000,0x0000, /* 10469 */ +0x3116,0x0000,0x0000, 0x3117,0x0000,0x0000, 0x3118,0x0000,0x0000, /* 1046C */ +0x3119,0x0000,0x0000, 0x311A,0x0000,0x0000, 0x311B,0x0000,0x0000, /* 1046F */ +0x311C,0x0000,0x0000, 0x311D,0x0000,0x0000, 0x311E,0x0000,0x0000, /* 10472 */ +0x311F,0x0000,0x0000, 0x3120,0x0000,0x0000, 0x3121,0x0000,0x0000, /* 10475 */ +0x3122,0x0000,0x0000, 0x3123,0x0000,0x0000, 0x3124,0x0000,0x0000, /* 10478 */ +0x3125,0x0000,0x0000, 0x3126,0x0000,0x0000, 0x3127,0x0000,0x0000, /* 1047B */ +0x3128,0x0000,0x0000, 0x3129,0x0000,0x0000, 0x312A,0x0000,0x0000, /* 1047E */ +0x312B,0x0000,0x0000, 0x312C,0x0000,0x0000, 0x312D,0x0000,0x0000, /* 10481 */ +0x312E,0x0000,0x0000, 0x312F,0x0000,0x0000, 0x3130,0x0000,0x0000, /* 10484 */ +0x3131,0x0000,0x0000, 0x3132,0x0000,0x0000, 0x3133,0x0000,0x0000, /* 10487 */ +0x3134,0x0000,0x0000, 0x3135,0x0000,0x0000, 0x3136,0x0000,0x0000, /* 1048A */ +0x3137,0x0000,0x0000, 0x3138,0x0000,0x0000, 0x3139,0x0000,0x0000, /* 1048D */ +0x313A,0x0000,0x0000, 0x313B,0x0000,0x0000, 0x313C,0x0000,0x0000, /* 10490 */ +0x313D,0x0000,0x0000, 0x313E,0x0000,0x0000, 0x313F,0x0000,0x0000, /* 10493 */ +0x3140,0x0000,0x0000, 0x3141,0x0000,0x0000, 0x3142,0x0000,0x0000, /* 10496 */ +0x3143,0x0000,0x0000, 0x3144,0x0000,0x0000, 0x3145,0x0000,0x0000, /* 10499 */ +0x3146,0x0000,0x0000, 0x3147,0x0000,0x0000, 0xFBC2,0x849E,0x0000, /* 1049C */ +0xFBC2,0x849F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1049F */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 104A2 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 104A5 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC2,0x84AA,0x0000, /* 104A8 */ +0xFBC2,0x84AB,0x0000, 0xFBC2,0x84AC,0x0000, 0xFBC2,0x84AD,0x0000, /* 104AB */ +0xFBC2,0x84AE,0x0000, 0xFBC2,0x84AF,0x0000, 0xFBC2,0x84B0,0x0000, /* 104AE */ +0xFBC2,0x84B1,0x0000, 0xFBC2,0x84B2,0x0000, 0xFBC2,0x84B3,0x0000, /* 104B1 */ +0xFBC2,0x84B4,0x0000, 0xFBC2,0x84B5,0x0000, 0xFBC2,0x84B6,0x0000, /* 104B4 */ +0xFBC2,0x84B7,0x0000, 0xFBC2,0x84B8,0x0000, 0xFBC2,0x84B9,0x0000, /* 104B7 */ +0xFBC2,0x84BA,0x0000, 0xFBC2,0x84BB,0x0000, 0xFBC2,0x84BC,0x0000, /* 104BA */ +0xFBC2,0x84BD,0x0000, 0xFBC2,0x84BE,0x0000, 0xFBC2,0x84BF,0x0000, /* 104BD */ +0xFBC2,0x84C0,0x0000, 0xFBC2,0x84C1,0x0000, 0xFBC2,0x84C2,0x0000, /* 104C0 */ +0xFBC2,0x84C3,0x0000, 0xFBC2,0x84C4,0x0000, 0xFBC2,0x84C5,0x0000, /* 104C3 */ +0xFBC2,0x84C6,0x0000, 0xFBC2,0x84C7,0x0000, 0xFBC2,0x84C8,0x0000, /* 104C6 */ +0xFBC2,0x84C9,0x0000, 0xFBC2,0x84CA,0x0000, 0xFBC2,0x84CB,0x0000, /* 104C9 */ +0xFBC2,0x84CC,0x0000, 0xFBC2,0x84CD,0x0000, 0xFBC2,0x84CE,0x0000, /* 104CC */ +0xFBC2,0x84CF,0x0000, 0xFBC2,0x84D0,0x0000, 0xFBC2,0x84D1,0x0000, /* 104CF */ +0xFBC2,0x84D2,0x0000, 0xFBC2,0x84D3,0x0000, 0xFBC2,0x84D4,0x0000, /* 104D2 */ +0xFBC2,0x84D5,0x0000, 0xFBC2,0x84D6,0x0000, 0xFBC2,0x84D7,0x0000, /* 104D5 */ +0xFBC2,0x84D8,0x0000, 0xFBC2,0x84D9,0x0000, 0xFBC2,0x84DA,0x0000, /* 104D8 */ +0xFBC2,0x84DB,0x0000, 0xFBC2,0x84DC,0x0000, 0xFBC2,0x84DD,0x0000, /* 104DB */ +0xFBC2,0x84DE,0x0000, 0xFBC2,0x84DF,0x0000, 0xFBC2,0x84E0,0x0000, /* 104DE */ +0xFBC2,0x84E1,0x0000, 0xFBC2,0x84E2,0x0000, 0xFBC2,0x84E3,0x0000, /* 104E1 */ +0xFBC2,0x84E4,0x0000, 0xFBC2,0x84E5,0x0000, 0xFBC2,0x84E6,0x0000, /* 104E4 */ +0xFBC2,0x84E7,0x0000, 0xFBC2,0x84E8,0x0000, 0xFBC2,0x84E9,0x0000, /* 104E7 */ +0xFBC2,0x84EA,0x0000, 0xFBC2,0x84EB,0x0000, 0xFBC2,0x84EC,0x0000, /* 104EA */ +0xFBC2,0x84ED,0x0000, 0xFBC2,0x84EE,0x0000, 0xFBC2,0x84EF,0x0000, /* 104ED */ +0xFBC2,0x84F0,0x0000, 0xFBC2,0x84F1,0x0000, 0xFBC2,0x84F2,0x0000, /* 104F0 */ +0xFBC2,0x84F3,0x0000, 0xFBC2,0x84F4,0x0000, 0xFBC2,0x84F5,0x0000, /* 104F3 */ +0xFBC2,0x84F6,0x0000, 0xFBC2,0x84F7,0x0000, 0xFBC2,0x84F8,0x0000, /* 104F6 */ +0xFBC2,0x84F9,0x0000, 0xFBC2,0x84FA,0x0000, 0xFBC2,0x84FB,0x0000, /* 104F9 */ +0xFBC2,0x84FC,0x0000, 0xFBC2,0x84FD,0x0000, 0xFBC2,0x84FE,0x0000, /* 104FC */ +0xFBC2,0x84FF,0x0000 }; + +static const uint16 uca520_p108[]= { /* 10800 (3 weights per char) */ +0x321B,0x0000,0x0000, 0x321C,0x0000,0x0000, 0x321D,0x0000,0x0000, /* 10800 */ +0x321E,0x0000,0x0000, 0x321F,0x0000,0x0000, 0x3220,0x0000,0x0000, /* 10803 */ +0xFBC2,0x8806,0x0000, 0xFBC2,0x8807,0x0000, 0x3221,0x0000,0x0000, /* 10806 */ +0xFBC2,0x8809,0x0000, 0x3222,0x0000,0x0000, 0x3223,0x0000,0x0000, /* 10809 */ +0x3224,0x0000,0x0000, 0x3225,0x0000,0x0000, 0x3226,0x0000,0x0000, /* 1080C */ +0x3227,0x0000,0x0000, 0x3228,0x0000,0x0000, 0x3229,0x0000,0x0000, /* 1080F */ +0x322A,0x0000,0x0000, 0x322B,0x0000,0x0000, 0x322C,0x0000,0x0000, /* 10812 */ +0x322D,0x0000,0x0000, 0x322E,0x0000,0x0000, 0x322F,0x0000,0x0000, /* 10815 */ +0x3230,0x0000,0x0000, 0x3231,0x0000,0x0000, 0x3232,0x0000,0x0000, /* 10818 */ +0x3233,0x0000,0x0000, 0x3234,0x0000,0x0000, 0x3235,0x0000,0x0000, /* 1081B */ +0x3236,0x0000,0x0000, 0x3237,0x0000,0x0000, 0x3238,0x0000,0x0000, /* 1081E */ +0x3239,0x0000,0x0000, 0x323A,0x0000,0x0000, 0x323B,0x0000,0x0000, /* 10821 */ +0x323C,0x0000,0x0000, 0x323D,0x0000,0x0000, 0x323E,0x0000,0x0000, /* 10824 */ +0x323F,0x0000,0x0000, 0x3240,0x0000,0x0000, 0x3241,0x0000,0x0000, /* 10827 */ +0x3242,0x0000,0x0000, 0x3243,0x0000,0x0000, 0x3244,0x0000,0x0000, /* 1082A */ +0x3245,0x0000,0x0000, 0x3246,0x0000,0x0000, 0x3247,0x0000,0x0000, /* 1082D */ +0x3248,0x0000,0x0000, 0x3249,0x0000,0x0000, 0x324A,0x0000,0x0000, /* 10830 */ +0x324B,0x0000,0x0000, 0x324C,0x0000,0x0000, 0x324D,0x0000,0x0000, /* 10833 */ +0xFBC2,0x8836,0x0000, 0x324E,0x0000,0x0000, 0x324F,0x0000,0x0000, /* 10836 */ +0xFBC2,0x8839,0x0000, 0xFBC2,0x883A,0x0000, 0xFBC2,0x883B,0x0000, /* 10839 */ +0x3250,0x0000,0x0000, 0xFBC2,0x883D,0x0000, 0xFBC2,0x883E,0x0000, /* 1083C */ +0x3251,0x0000,0x0000, 0x32A4,0x0000,0x0000, 0x32A5,0x0000,0x0000, /* 1083F */ +0x32A6,0x0000,0x0000, 0x32A7,0x0000,0x0000, 0x32A8,0x0000,0x0000, /* 10842 */ +0x32A9,0x0000,0x0000, 0x32AA,0x0000,0x0000, 0x32AB,0x0000,0x0000, /* 10845 */ +0x32AC,0x0000,0x0000, 0x32AD,0x0000,0x0000, 0x32AE,0x0000,0x0000, /* 10848 */ +0x32AF,0x0000,0x0000, 0x32B0,0x0000,0x0000, 0x32B1,0x0000,0x0000, /* 1084B */ +0x32B2,0x0000,0x0000, 0x32B3,0x0000,0x0000, 0x32B4,0x0000,0x0000, /* 1084E */ +0x32B5,0x0000,0x0000, 0x32B6,0x0000,0x0000, 0x32B7,0x0000,0x0000, /* 10851 */ +0x32B8,0x0000,0x0000, 0x32B9,0x0000,0x0000, 0xFBC2,0x8856,0x0000, /* 10854 */ +0x02CA,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10857 */ +0x1208,0x0000,0x0000, 0x11A7,0x0000,0x0000, 0x11A8,0x0000,0x0000, /* 1085A */ +0x11A9,0x0000,0x0000, 0x11AA,0x0000,0x0000, 0x11AB,0x0000,0x0000, /* 1085D */ +0xFBC2,0x8860,0x0000, 0xFBC2,0x8861,0x0000, 0xFBC2,0x8862,0x0000, /* 10860 */ +0xFBC2,0x8863,0x0000, 0xFBC2,0x8864,0x0000, 0xFBC2,0x8865,0x0000, /* 10863 */ +0xFBC2,0x8866,0x0000, 0xFBC2,0x8867,0x0000, 0xFBC2,0x8868,0x0000, /* 10866 */ +0xFBC2,0x8869,0x0000, 0xFBC2,0x886A,0x0000, 0xFBC2,0x886B,0x0000, /* 10869 */ +0xFBC2,0x886C,0x0000, 0xFBC2,0x886D,0x0000, 0xFBC2,0x886E,0x0000, /* 1086C */ +0xFBC2,0x886F,0x0000, 0xFBC2,0x8870,0x0000, 0xFBC2,0x8871,0x0000, /* 1086F */ +0xFBC2,0x8872,0x0000, 0xFBC2,0x8873,0x0000, 0xFBC2,0x8874,0x0000, /* 10872 */ +0xFBC2,0x8875,0x0000, 0xFBC2,0x8876,0x0000, 0xFBC2,0x8877,0x0000, /* 10875 */ +0xFBC2,0x8878,0x0000, 0xFBC2,0x8879,0x0000, 0xFBC2,0x887A,0x0000, /* 10878 */ +0xFBC2,0x887B,0x0000, 0xFBC2,0x887C,0x0000, 0xFBC2,0x887D,0x0000, /* 1087B */ +0xFBC2,0x887E,0x0000, 0xFBC2,0x887F,0x0000, 0xFBC2,0x8880,0x0000, /* 1087E */ +0xFBC2,0x8881,0x0000, 0xFBC2,0x8882,0x0000, 0xFBC2,0x8883,0x0000, /* 10881 */ +0xFBC2,0x8884,0x0000, 0xFBC2,0x8885,0x0000, 0xFBC2,0x8886,0x0000, /* 10884 */ +0xFBC2,0x8887,0x0000, 0xFBC2,0x8888,0x0000, 0xFBC2,0x8889,0x0000, /* 10887 */ +0xFBC2,0x888A,0x0000, 0xFBC2,0x888B,0x0000, 0xFBC2,0x888C,0x0000, /* 1088A */ +0xFBC2,0x888D,0x0000, 0xFBC2,0x888E,0x0000, 0xFBC2,0x888F,0x0000, /* 1088D */ +0xFBC2,0x8890,0x0000, 0xFBC2,0x8891,0x0000, 0xFBC2,0x8892,0x0000, /* 10890 */ +0xFBC2,0x8893,0x0000, 0xFBC2,0x8894,0x0000, 0xFBC2,0x8895,0x0000, /* 10893 */ +0xFBC2,0x8896,0x0000, 0xFBC2,0x8897,0x0000, 0xFBC2,0x8898,0x0000, /* 10896 */ +0xFBC2,0x8899,0x0000, 0xFBC2,0x889A,0x0000, 0xFBC2,0x889B,0x0000, /* 10899 */ +0xFBC2,0x889C,0x0000, 0xFBC2,0x889D,0x0000, 0xFBC2,0x889E,0x0000, /* 1089C */ +0xFBC2,0x889F,0x0000, 0xFBC2,0x88A0,0x0000, 0xFBC2,0x88A1,0x0000, /* 1089F */ +0xFBC2,0x88A2,0x0000, 0xFBC2,0x88A3,0x0000, 0xFBC2,0x88A4,0x0000, /* 108A2 */ +0xFBC2,0x88A5,0x0000, 0xFBC2,0x88A6,0x0000, 0xFBC2,0x88A7,0x0000, /* 108A5 */ +0xFBC2,0x88A8,0x0000, 0xFBC2,0x88A9,0x0000, 0xFBC2,0x88AA,0x0000, /* 108A8 */ +0xFBC2,0x88AB,0x0000, 0xFBC2,0x88AC,0x0000, 0xFBC2,0x88AD,0x0000, /* 108AB */ +0xFBC2,0x88AE,0x0000, 0xFBC2,0x88AF,0x0000, 0xFBC2,0x88B0,0x0000, /* 108AE */ +0xFBC2,0x88B1,0x0000, 0xFBC2,0x88B2,0x0000, 0xFBC2,0x88B3,0x0000, /* 108B1 */ +0xFBC2,0x88B4,0x0000, 0xFBC2,0x88B5,0x0000, 0xFBC2,0x88B6,0x0000, /* 108B4 */ +0xFBC2,0x88B7,0x0000, 0xFBC2,0x88B8,0x0000, 0xFBC2,0x88B9,0x0000, /* 108B7 */ +0xFBC2,0x88BA,0x0000, 0xFBC2,0x88BB,0x0000, 0xFBC2,0x88BC,0x0000, /* 108BA */ +0xFBC2,0x88BD,0x0000, 0xFBC2,0x88BE,0x0000, 0xFBC2,0x88BF,0x0000, /* 108BD */ +0xFBC2,0x88C0,0x0000, 0xFBC2,0x88C1,0x0000, 0xFBC2,0x88C2,0x0000, /* 108C0 */ +0xFBC2,0x88C3,0x0000, 0xFBC2,0x88C4,0x0000, 0xFBC2,0x88C5,0x0000, /* 108C3 */ +0xFBC2,0x88C6,0x0000, 0xFBC2,0x88C7,0x0000, 0xFBC2,0x88C8,0x0000, /* 108C6 */ +0xFBC2,0x88C9,0x0000, 0xFBC2,0x88CA,0x0000, 0xFBC2,0x88CB,0x0000, /* 108C9 */ +0xFBC2,0x88CC,0x0000, 0xFBC2,0x88CD,0x0000, 0xFBC2,0x88CE,0x0000, /* 108CC */ +0xFBC2,0x88CF,0x0000, 0xFBC2,0x88D0,0x0000, 0xFBC2,0x88D1,0x0000, /* 108CF */ +0xFBC2,0x88D2,0x0000, 0xFBC2,0x88D3,0x0000, 0xFBC2,0x88D4,0x0000, /* 108D2 */ +0xFBC2,0x88D5,0x0000, 0xFBC2,0x88D6,0x0000, 0xFBC2,0x88D7,0x0000, /* 108D5 */ +0xFBC2,0x88D8,0x0000, 0xFBC2,0x88D9,0x0000, 0xFBC2,0x88DA,0x0000, /* 108D8 */ +0xFBC2,0x88DB,0x0000, 0xFBC2,0x88DC,0x0000, 0xFBC2,0x88DD,0x0000, /* 108DB */ +0xFBC2,0x88DE,0x0000, 0xFBC2,0x88DF,0x0000, 0xFBC2,0x88E0,0x0000, /* 108DE */ +0xFBC2,0x88E1,0x0000, 0xFBC2,0x88E2,0x0000, 0xFBC2,0x88E3,0x0000, /* 108E1 */ +0xFBC2,0x88E4,0x0000, 0xFBC2,0x88E5,0x0000, 0xFBC2,0x88E6,0x0000, /* 108E4 */ +0xFBC2,0x88E7,0x0000, 0xFBC2,0x88E8,0x0000, 0xFBC2,0x88E9,0x0000, /* 108E7 */ +0xFBC2,0x88EA,0x0000, 0xFBC2,0x88EB,0x0000, 0xFBC2,0x88EC,0x0000, /* 108EA */ +0xFBC2,0x88ED,0x0000, 0xFBC2,0x88EE,0x0000, 0xFBC2,0x88EF,0x0000, /* 108ED */ +0xFBC2,0x88F0,0x0000, 0xFBC2,0x88F1,0x0000, 0xFBC2,0x88F2,0x0000, /* 108F0 */ +0xFBC2,0x88F3,0x0000, 0xFBC2,0x88F4,0x0000, 0xFBC2,0x88F5,0x0000, /* 108F3 */ +0xFBC2,0x88F6,0x0000, 0xFBC2,0x88F7,0x0000, 0xFBC2,0x88F8,0x0000, /* 108F6 */ +0xFBC2,0x88F9,0x0000, 0xFBC2,0x88FA,0x0000, 0xFBC2,0x88FB,0x0000, /* 108F9 */ +0xFBC2,0x88FC,0x0000, 0xFBC2,0x88FD,0x0000, 0xFBC2,0x88FE,0x0000, /* 108FC */ +0xFBC2,0x88FF,0x0000 }; + +static const uint16 uca520_p109[]= { /* 10900 (3 weights per char) */ +0x1872,0x0000,0x0000, 0x1873,0x0000,0x0000, 0x1874,0x0000,0x0000, /* 10900 */ +0x1875,0x0000,0x0000, 0x1876,0x0000,0x0000, 0x1877,0x0000,0x0000, /* 10903 */ +0x1878,0x0000,0x0000, 0x1879,0x0000,0x0000, 0x187A,0x0000,0x0000, /* 10906 */ +0x187B,0x0000,0x0000, 0x187C,0x0000,0x0000, 0x187D,0x0000,0x0000, /* 10909 */ +0x187E,0x0000,0x0000, 0x187F,0x0000,0x0000, 0x1880,0x0000,0x0000, /* 1090C */ +0x1881,0x0000,0x0000, 0x1882,0x0000,0x0000, 0x1883,0x0000,0x0000, /* 1090F */ +0x1884,0x0000,0x0000, 0x1885,0x0000,0x0000, 0x1886,0x0000,0x0000, /* 10912 */ +0x1887,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x11A4,0x0000,0x0000, /* 10915 */ +0x11A5,0x0000,0x0000, 0x11A6,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10918 */ +0x1208,0x0000,0x0000, 0xFBC2,0x891C,0x0000, 0xFBC2,0x891D,0x0000, /* 1091B */ +0xFBC2,0x891E,0x0000, 0x02E9,0x0000,0x0000, 0x307E,0x0000,0x0000, /* 1091E */ +0x307F,0x0000,0x0000, 0x3080,0x0000,0x0000, 0x3081,0x0000,0x0000, /* 10921 */ +0x3082,0x0000,0x0000, 0x3083,0x0000,0x0000, 0x3084,0x0000,0x0000, /* 10924 */ +0x3085,0x0000,0x0000, 0x3086,0x0000,0x0000, 0x3087,0x0000,0x0000, /* 10927 */ +0x3088,0x0000,0x0000, 0x3089,0x0000,0x0000, 0x308A,0x0000,0x0000, /* 1092A */ +0x308B,0x0000,0x0000, 0x308C,0x0000,0x0000, 0x308D,0x0000,0x0000, /* 1092D */ +0x308E,0x0000,0x0000, 0x308F,0x0000,0x0000, 0x3090,0x0000,0x0000, /* 10930 */ +0x3091,0x0000,0x0000, 0x3092,0x0000,0x0000, 0x3093,0x0000,0x0000, /* 10933 */ +0x3094,0x0000,0x0000, 0x3095,0x0000,0x0000, 0x3096,0x0000,0x0000, /* 10936 */ +0x3097,0x0000,0x0000, 0xFBC2,0x893A,0x0000, 0xFBC2,0x893B,0x0000, /* 10939 */ +0xFBC2,0x893C,0x0000, 0xFBC2,0x893D,0x0000, 0xFBC2,0x893E,0x0000, /* 1093C */ +0x02E3,0x0000,0x0000, 0xFBC2,0x8940,0x0000, 0xFBC2,0x8941,0x0000, /* 1093F */ +0xFBC2,0x8942,0x0000, 0xFBC2,0x8943,0x0000, 0xFBC2,0x8944,0x0000, /* 10942 */ +0xFBC2,0x8945,0x0000, 0xFBC2,0x8946,0x0000, 0xFBC2,0x8947,0x0000, /* 10945 */ +0xFBC2,0x8948,0x0000, 0xFBC2,0x8949,0x0000, 0xFBC2,0x894A,0x0000, /* 10948 */ +0xFBC2,0x894B,0x0000, 0xFBC2,0x894C,0x0000, 0xFBC2,0x894D,0x0000, /* 1094B */ +0xFBC2,0x894E,0x0000, 0xFBC2,0x894F,0x0000, 0xFBC2,0x8950,0x0000, /* 1094E */ +0xFBC2,0x8951,0x0000, 0xFBC2,0x8952,0x0000, 0xFBC2,0x8953,0x0000, /* 10951 */ +0xFBC2,0x8954,0x0000, 0xFBC2,0x8955,0x0000, 0xFBC2,0x8956,0x0000, /* 10954 */ +0xFBC2,0x8957,0x0000, 0xFBC2,0x8958,0x0000, 0xFBC2,0x8959,0x0000, /* 10957 */ +0xFBC2,0x895A,0x0000, 0xFBC2,0x895B,0x0000, 0xFBC2,0x895C,0x0000, /* 1095A */ +0xFBC2,0x895D,0x0000, 0xFBC2,0x895E,0x0000, 0xFBC2,0x895F,0x0000, /* 1095D */ +0xFBC2,0x8960,0x0000, 0xFBC2,0x8961,0x0000, 0xFBC2,0x8962,0x0000, /* 10960 */ +0xFBC2,0x8963,0x0000, 0xFBC2,0x8964,0x0000, 0xFBC2,0x8965,0x0000, /* 10963 */ +0xFBC2,0x8966,0x0000, 0xFBC2,0x8967,0x0000, 0xFBC2,0x8968,0x0000, /* 10966 */ +0xFBC2,0x8969,0x0000, 0xFBC2,0x896A,0x0000, 0xFBC2,0x896B,0x0000, /* 10969 */ +0xFBC2,0x896C,0x0000, 0xFBC2,0x896D,0x0000, 0xFBC2,0x896E,0x0000, /* 1096C */ +0xFBC2,0x896F,0x0000, 0xFBC2,0x8970,0x0000, 0xFBC2,0x8971,0x0000, /* 1096F */ +0xFBC2,0x8972,0x0000, 0xFBC2,0x8973,0x0000, 0xFBC2,0x8974,0x0000, /* 10972 */ +0xFBC2,0x8975,0x0000, 0xFBC2,0x8976,0x0000, 0xFBC2,0x8977,0x0000, /* 10975 */ +0xFBC2,0x8978,0x0000, 0xFBC2,0x8979,0x0000, 0xFBC2,0x897A,0x0000, /* 10978 */ +0xFBC2,0x897B,0x0000, 0xFBC2,0x897C,0x0000, 0xFBC2,0x897D,0x0000, /* 1097B */ +0xFBC2,0x897E,0x0000, 0xFBC2,0x897F,0x0000, 0xFBC2,0x8980,0x0000, /* 1097E */ +0xFBC2,0x8981,0x0000, 0xFBC2,0x8982,0x0000, 0xFBC2,0x8983,0x0000, /* 10981 */ +0xFBC2,0x8984,0x0000, 0xFBC2,0x8985,0x0000, 0xFBC2,0x8986,0x0000, /* 10984 */ +0xFBC2,0x8987,0x0000, 0xFBC2,0x8988,0x0000, 0xFBC2,0x8989,0x0000, /* 10987 */ +0xFBC2,0x898A,0x0000, 0xFBC2,0x898B,0x0000, 0xFBC2,0x898C,0x0000, /* 1098A */ +0xFBC2,0x898D,0x0000, 0xFBC2,0x898E,0x0000, 0xFBC2,0x898F,0x0000, /* 1098D */ +0xFBC2,0x8990,0x0000, 0xFBC2,0x8991,0x0000, 0xFBC2,0x8992,0x0000, /* 10990 */ +0xFBC2,0x8993,0x0000, 0xFBC2,0x8994,0x0000, 0xFBC2,0x8995,0x0000, /* 10993 */ +0xFBC2,0x8996,0x0000, 0xFBC2,0x8997,0x0000, 0xFBC2,0x8998,0x0000, /* 10996 */ +0xFBC2,0x8999,0x0000, 0xFBC2,0x899A,0x0000, 0xFBC2,0x899B,0x0000, /* 10999 */ +0xFBC2,0x899C,0x0000, 0xFBC2,0x899D,0x0000, 0xFBC2,0x899E,0x0000, /* 1099C */ +0xFBC2,0x899F,0x0000, 0xFBC2,0x89A0,0x0000, 0xFBC2,0x89A1,0x0000, /* 1099F */ +0xFBC2,0x89A2,0x0000, 0xFBC2,0x89A3,0x0000, 0xFBC2,0x89A4,0x0000, /* 109A2 */ +0xFBC2,0x89A5,0x0000, 0xFBC2,0x89A6,0x0000, 0xFBC2,0x89A7,0x0000, /* 109A5 */ +0xFBC2,0x89A8,0x0000, 0xFBC2,0x89A9,0x0000, 0xFBC2,0x89AA,0x0000, /* 109A8 */ +0xFBC2,0x89AB,0x0000, 0xFBC2,0x89AC,0x0000, 0xFBC2,0x89AD,0x0000, /* 109AB */ +0xFBC2,0x89AE,0x0000, 0xFBC2,0x89AF,0x0000, 0xFBC2,0x89B0,0x0000, /* 109AE */ +0xFBC2,0x89B1,0x0000, 0xFBC2,0x89B2,0x0000, 0xFBC2,0x89B3,0x0000, /* 109B1 */ +0xFBC2,0x89B4,0x0000, 0xFBC2,0x89B5,0x0000, 0xFBC2,0x89B6,0x0000, /* 109B4 */ +0xFBC2,0x89B7,0x0000, 0xFBC2,0x89B8,0x0000, 0xFBC2,0x89B9,0x0000, /* 109B7 */ +0xFBC2,0x89BA,0x0000, 0xFBC2,0x89BB,0x0000, 0xFBC2,0x89BC,0x0000, /* 109BA */ +0xFBC2,0x89BD,0x0000, 0xFBC2,0x89BE,0x0000, 0xFBC2,0x89BF,0x0000, /* 109BD */ +0xFBC2,0x89C0,0x0000, 0xFBC2,0x89C1,0x0000, 0xFBC2,0x89C2,0x0000, /* 109C0 */ +0xFBC2,0x89C3,0x0000, 0xFBC2,0x89C4,0x0000, 0xFBC2,0x89C5,0x0000, /* 109C3 */ +0xFBC2,0x89C6,0x0000, 0xFBC2,0x89C7,0x0000, 0xFBC2,0x89C8,0x0000, /* 109C6 */ +0xFBC2,0x89C9,0x0000, 0xFBC2,0x89CA,0x0000, 0xFBC2,0x89CB,0x0000, /* 109C9 */ +0xFBC2,0x89CC,0x0000, 0xFBC2,0x89CD,0x0000, 0xFBC2,0x89CE,0x0000, /* 109CC */ +0xFBC2,0x89CF,0x0000, 0xFBC2,0x89D0,0x0000, 0xFBC2,0x89D1,0x0000, /* 109CF */ +0xFBC2,0x89D2,0x0000, 0xFBC2,0x89D3,0x0000, 0xFBC2,0x89D4,0x0000, /* 109D2 */ +0xFBC2,0x89D5,0x0000, 0xFBC2,0x89D6,0x0000, 0xFBC2,0x89D7,0x0000, /* 109D5 */ +0xFBC2,0x89D8,0x0000, 0xFBC2,0x89D9,0x0000, 0xFBC2,0x89DA,0x0000, /* 109D8 */ +0xFBC2,0x89DB,0x0000, 0xFBC2,0x89DC,0x0000, 0xFBC2,0x89DD,0x0000, /* 109DB */ +0xFBC2,0x89DE,0x0000, 0xFBC2,0x89DF,0x0000, 0xFBC2,0x89E0,0x0000, /* 109DE */ +0xFBC2,0x89E1,0x0000, 0xFBC2,0x89E2,0x0000, 0xFBC2,0x89E3,0x0000, /* 109E1 */ +0xFBC2,0x89E4,0x0000, 0xFBC2,0x89E5,0x0000, 0xFBC2,0x89E6,0x0000, /* 109E4 */ +0xFBC2,0x89E7,0x0000, 0xFBC2,0x89E8,0x0000, 0xFBC2,0x89E9,0x0000, /* 109E7 */ +0xFBC2,0x89EA,0x0000, 0xFBC2,0x89EB,0x0000, 0xFBC2,0x89EC,0x0000, /* 109EA */ +0xFBC2,0x89ED,0x0000, 0xFBC2,0x89EE,0x0000, 0xFBC2,0x89EF,0x0000, /* 109ED */ +0xFBC2,0x89F0,0x0000, 0xFBC2,0x89F1,0x0000, 0xFBC2,0x89F2,0x0000, /* 109F0 */ +0xFBC2,0x89F3,0x0000, 0xFBC2,0x89F4,0x0000, 0xFBC2,0x89F5,0x0000, /* 109F3 */ +0xFBC2,0x89F6,0x0000, 0xFBC2,0x89F7,0x0000, 0xFBC2,0x89F8,0x0000, /* 109F6 */ +0xFBC2,0x89F9,0x0000, 0xFBC2,0x89FA,0x0000, 0xFBC2,0x89FB,0x0000, /* 109F9 */ +0xFBC2,0x89FC,0x0000, 0xFBC2,0x89FD,0x0000, 0xFBC2,0x89FE,0x0000, /* 109FC */ +0xFBC2,0x89FF,0x0000 }; + +static const uint16 uca520_p10A[]= { /* 10A00 (3 weights per char) */ +0x1F46,0x0000,0x0000, 0x1F47,0x0000,0x0000, 0x1F48,0x0000,0x0000, /* 10A00 */ +0x1F49,0x0000,0x0000, 0xFBC2,0x8A04,0x0000, 0x1F4A,0x0000,0x0000, /* 10A03 */ +0x1F4B,0x0000,0x0000, 0xFBC2,0x8A07,0x0000, 0xFBC2,0x8A08,0x0000, /* 10A06 */ +0xFBC2,0x8A09,0x0000, 0xFBC2,0x8A0A,0x0000, 0xFBC2,0x8A0B,0x0000, /* 10A09 */ +0x1F4C,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 10A0C */ +0x0000,0x0000,0x0000, 0x1F4D,0x0000,0x0000, 0x1F4E,0x0000,0x0000, /* 10A0F */ +0x1F4F,0x0000,0x0000, 0x1F50,0x0000,0x0000, 0xFBC2,0x8A14,0x0000, /* 10A12 */ +0x1F51,0x0000,0x0000, 0x1F52,0x0000,0x0000, 0x1F53,0x0000,0x0000, /* 10A15 */ +0xFBC2,0x8A18,0x0000, 0x1F54,0x0000,0x0000, 0x1F55,0x0000,0x0000, /* 10A18 */ +0x1F56,0x0000,0x0000, 0x1F57,0x0000,0x0000, 0x1F58,0x0000,0x0000, /* 10A1B */ +0x1F59,0x0000,0x0000, 0x1F5A,0x0000,0x0000, 0x1F5B,0x0000,0x0000, /* 10A1E */ +0x1F5C,0x0000,0x0000, 0x1F5D,0x0000,0x0000, 0x1F5E,0x0000,0x0000, /* 10A21 */ +0x1F5F,0x0000,0x0000, 0x1F60,0x0000,0x0000, 0x1F61,0x0000,0x0000, /* 10A24 */ +0x1F62,0x0000,0x0000, 0x1F63,0x0000,0x0000, 0x1F64,0x0000,0x0000, /* 10A27 */ +0x1F65,0x0000,0x0000, 0x1F66,0x0000,0x0000, 0x1F67,0x0000,0x0000, /* 10A2A */ +0x1F68,0x0000,0x0000, 0x1F69,0x0000,0x0000, 0x1F6A,0x0000,0x0000, /* 10A2D */ +0x1F6B,0x0000,0x0000, 0x1F6C,0x0000,0x0000, 0x1F6D,0x0000,0x0000, /* 10A30 */ +0x1F6E,0x0000,0x0000, 0xFBC2,0x8A34,0x0000, 0xFBC2,0x8A35,0x0000, /* 10A33 */ +0xFBC2,0x8A36,0x0000, 0xFBC2,0x8A37,0x0000, 0x0000,0x0000,0x0000, /* 10A36 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x8A3B,0x0000, /* 10A39 */ +0xFBC2,0x8A3C,0x0000, 0xFBC2,0x8A3D,0x0000, 0xFBC2,0x8A3E,0x0000, /* 10A3C */ +0x1F6F,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10A3F */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11B4,0x0000,0x0000, /* 10A42 */ +0x11B5,0x0000,0x0000, 0x11B6,0x0000,0x0000, 0x11B7,0x0000,0x0000, /* 10A45 */ +0xFBC2,0x8A48,0x0000, 0xFBC2,0x8A49,0x0000, 0xFBC2,0x8A4A,0x0000, /* 10A48 */ +0xFBC2,0x8A4B,0x0000, 0xFBC2,0x8A4C,0x0000, 0xFBC2,0x8A4D,0x0000, /* 10A4B */ +0xFBC2,0x8A4E,0x0000, 0xFBC2,0x8A4F,0x0000, 0x03DF,0x0000,0x0000, /* 10A4E */ +0x03E0,0x0000,0x0000, 0x03E1,0x0000,0x0000, 0x03E2,0x0000,0x0000, /* 10A51 */ +0x03E3,0x0000,0x0000, 0x03E4,0x0000,0x0000, 0x02AF,0x0000,0x0000, /* 10A54 */ +0x02B0,0x0000,0x0000, 0x03E5,0x0000,0x0000, 0xFBC2,0x8A59,0x0000, /* 10A57 */ +0xFBC2,0x8A5A,0x0000, 0xFBC2,0x8A5B,0x0000, 0xFBC2,0x8A5C,0x0000, /* 10A5A */ +0xFBC2,0x8A5D,0x0000, 0xFBC2,0x8A5E,0x0000, 0xFBC2,0x8A5F,0x0000, /* 10A5D */ +0x3252,0x0000,0x0000, 0x3253,0x0000,0x0000, 0x3254,0x0000,0x0000, /* 10A60 */ +0x3255,0x0000,0x0000, 0x3256,0x0000,0x0000, 0x3257,0x0000,0x0000, /* 10A63 */ +0x3258,0x0000,0x0000, 0x3259,0x0000,0x0000, 0x325A,0x0000,0x0000, /* 10A66 */ +0x325B,0x0000,0x0000, 0x325C,0x0000,0x0000, 0x325D,0x0000,0x0000, /* 10A69 */ +0x325E,0x0000,0x0000, 0x325F,0x0000,0x0000, 0x3260,0x0000,0x0000, /* 10A6C */ +0x3261,0x0000,0x0000, 0x3262,0x0000,0x0000, 0x3263,0x0000,0x0000, /* 10A6F */ +0x3264,0x0000,0x0000, 0x3265,0x0000,0x0000, 0x3266,0x0000,0x0000, /* 10A72 */ +0x3267,0x0000,0x0000, 0x3268,0x0000,0x0000, 0x3269,0x0000,0x0000, /* 10A75 */ +0x326A,0x0000,0x0000, 0x326B,0x0000,0x0000, 0x326C,0x0000,0x0000, /* 10A78 */ +0x326D,0x0000,0x0000, 0x326E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10A7B */ +0x11A2,0x0000,0x0000, 0x11A3,0x0000,0x0000, 0xFBC2,0x8A80,0x0000, /* 10A7E */ +0xFBC2,0x8A81,0x0000, 0xFBC2,0x8A82,0x0000, 0xFBC2,0x8A83,0x0000, /* 10A81 */ +0xFBC2,0x8A84,0x0000, 0xFBC2,0x8A85,0x0000, 0xFBC2,0x8A86,0x0000, /* 10A84 */ +0xFBC2,0x8A87,0x0000, 0xFBC2,0x8A88,0x0000, 0xFBC2,0x8A89,0x0000, /* 10A87 */ +0xFBC2,0x8A8A,0x0000, 0xFBC2,0x8A8B,0x0000, 0xFBC2,0x8A8C,0x0000, /* 10A8A */ +0xFBC2,0x8A8D,0x0000, 0xFBC2,0x8A8E,0x0000, 0xFBC2,0x8A8F,0x0000, /* 10A8D */ +0xFBC2,0x8A90,0x0000, 0xFBC2,0x8A91,0x0000, 0xFBC2,0x8A92,0x0000, /* 10A90 */ +0xFBC2,0x8A93,0x0000, 0xFBC2,0x8A94,0x0000, 0xFBC2,0x8A95,0x0000, /* 10A93 */ +0xFBC2,0x8A96,0x0000, 0xFBC2,0x8A97,0x0000, 0xFBC2,0x8A98,0x0000, /* 10A96 */ +0xFBC2,0x8A99,0x0000, 0xFBC2,0x8A9A,0x0000, 0xFBC2,0x8A9B,0x0000, /* 10A99 */ +0xFBC2,0x8A9C,0x0000, 0xFBC2,0x8A9D,0x0000, 0xFBC2,0x8A9E,0x0000, /* 10A9C */ +0xFBC2,0x8A9F,0x0000, 0xFBC2,0x8AA0,0x0000, 0xFBC2,0x8AA1,0x0000, /* 10A9F */ +0xFBC2,0x8AA2,0x0000, 0xFBC2,0x8AA3,0x0000, 0xFBC2,0x8AA4,0x0000, /* 10AA2 */ +0xFBC2,0x8AA5,0x0000, 0xFBC2,0x8AA6,0x0000, 0xFBC2,0x8AA7,0x0000, /* 10AA5 */ +0xFBC2,0x8AA8,0x0000, 0xFBC2,0x8AA9,0x0000, 0xFBC2,0x8AAA,0x0000, /* 10AA8 */ +0xFBC2,0x8AAB,0x0000, 0xFBC2,0x8AAC,0x0000, 0xFBC2,0x8AAD,0x0000, /* 10AAB */ +0xFBC2,0x8AAE,0x0000, 0xFBC2,0x8AAF,0x0000, 0xFBC2,0x8AB0,0x0000, /* 10AAE */ +0xFBC2,0x8AB1,0x0000, 0xFBC2,0x8AB2,0x0000, 0xFBC2,0x8AB3,0x0000, /* 10AB1 */ +0xFBC2,0x8AB4,0x0000, 0xFBC2,0x8AB5,0x0000, 0xFBC2,0x8AB6,0x0000, /* 10AB4 */ +0xFBC2,0x8AB7,0x0000, 0xFBC2,0x8AB8,0x0000, 0xFBC2,0x8AB9,0x0000, /* 10AB7 */ +0xFBC2,0x8ABA,0x0000, 0xFBC2,0x8ABB,0x0000, 0xFBC2,0x8ABC,0x0000, /* 10ABA */ +0xFBC2,0x8ABD,0x0000, 0xFBC2,0x8ABE,0x0000, 0xFBC2,0x8ABF,0x0000, /* 10ABD */ +0xFBC2,0x8AC0,0x0000, 0xFBC2,0x8AC1,0x0000, 0xFBC2,0x8AC2,0x0000, /* 10AC0 */ +0xFBC2,0x8AC3,0x0000, 0xFBC2,0x8AC4,0x0000, 0xFBC2,0x8AC5,0x0000, /* 10AC3 */ +0xFBC2,0x8AC6,0x0000, 0xFBC2,0x8AC7,0x0000, 0xFBC2,0x8AC8,0x0000, /* 10AC6 */ +0xFBC2,0x8AC9,0x0000, 0xFBC2,0x8ACA,0x0000, 0xFBC2,0x8ACB,0x0000, /* 10AC9 */ +0xFBC2,0x8ACC,0x0000, 0xFBC2,0x8ACD,0x0000, 0xFBC2,0x8ACE,0x0000, /* 10ACC */ +0xFBC2,0x8ACF,0x0000, 0xFBC2,0x8AD0,0x0000, 0xFBC2,0x8AD1,0x0000, /* 10ACF */ +0xFBC2,0x8AD2,0x0000, 0xFBC2,0x8AD3,0x0000, 0xFBC2,0x8AD4,0x0000, /* 10AD2 */ +0xFBC2,0x8AD5,0x0000, 0xFBC2,0x8AD6,0x0000, 0xFBC2,0x8AD7,0x0000, /* 10AD5 */ +0xFBC2,0x8AD8,0x0000, 0xFBC2,0x8AD9,0x0000, 0xFBC2,0x8ADA,0x0000, /* 10AD8 */ +0xFBC2,0x8ADB,0x0000, 0xFBC2,0x8ADC,0x0000, 0xFBC2,0x8ADD,0x0000, /* 10ADB */ +0xFBC2,0x8ADE,0x0000, 0xFBC2,0x8ADF,0x0000, 0xFBC2,0x8AE0,0x0000, /* 10ADE */ +0xFBC2,0x8AE1,0x0000, 0xFBC2,0x8AE2,0x0000, 0xFBC2,0x8AE3,0x0000, /* 10AE1 */ +0xFBC2,0x8AE4,0x0000, 0xFBC2,0x8AE5,0x0000, 0xFBC2,0x8AE6,0x0000, /* 10AE4 */ +0xFBC2,0x8AE7,0x0000, 0xFBC2,0x8AE8,0x0000, 0xFBC2,0x8AE9,0x0000, /* 10AE7 */ +0xFBC2,0x8AEA,0x0000, 0xFBC2,0x8AEB,0x0000, 0xFBC2,0x8AEC,0x0000, /* 10AEA */ +0xFBC2,0x8AED,0x0000, 0xFBC2,0x8AEE,0x0000, 0xFBC2,0x8AEF,0x0000, /* 10AED */ +0xFBC2,0x8AF0,0x0000, 0xFBC2,0x8AF1,0x0000, 0xFBC2,0x8AF2,0x0000, /* 10AF0 */ +0xFBC2,0x8AF3,0x0000, 0xFBC2,0x8AF4,0x0000, 0xFBC2,0x8AF5,0x0000, /* 10AF3 */ +0xFBC2,0x8AF6,0x0000, 0xFBC2,0x8AF7,0x0000, 0xFBC2,0x8AF8,0x0000, /* 10AF6 */ +0xFBC2,0x8AF9,0x0000, 0xFBC2,0x8AFA,0x0000, 0xFBC2,0x8AFB,0x0000, /* 10AF9 */ +0xFBC2,0x8AFC,0x0000, 0xFBC2,0x8AFD,0x0000, 0xFBC2,0x8AFE,0x0000, /* 10AFC */ +0xFBC2,0x8AFF,0x0000 }; + +static const uint16 uca520_p10B[]= { /* 10B00 (3 weights per char) */ +0x326F,0x0000,0x0000, 0x3270,0x0000,0x0000, 0x3271,0x0000,0x0000, /* 10B00 */ +0x3272,0x0000,0x0000, 0x3273,0x0000,0x0000, 0x3274,0x0000,0x0000, /* 10B03 */ +0x3275,0x0000,0x0000, 0x3276,0x0000,0x0000, 0x3277,0x0000,0x0000, /* 10B06 */ +0x3278,0x0000,0x0000, 0x3279,0x0000,0x0000, 0x327A,0x0000,0x0000, /* 10B09 */ +0x327B,0x0000,0x0000, 0x327C,0x0000,0x0000, 0x327D,0x0000,0x0000, /* 10B0C */ +0x327E,0x0000,0x0000, 0x327F,0x0000,0x0000, 0x3280,0x0000,0x0000, /* 10B0F */ +0x3281,0x0000,0x0000, 0x3282,0x0000,0x0000, 0x3283,0x0000,0x0000, /* 10B12 */ +0x3284,0x0000,0x0000, 0x3285,0x0000,0x0000, 0x3286,0x0000,0x0000, /* 10B15 */ +0x3287,0x0000,0x0000, 0x3288,0x0000,0x0000, 0x3289,0x0000,0x0000, /* 10B18 */ +0x328A,0x0000,0x0000, 0x328B,0x0000,0x0000, 0x328C,0x0000,0x0000, /* 10B1B */ +0x328D,0x0000,0x0000, 0x328E,0x0000,0x0000, 0x328F,0x0000,0x0000, /* 10B1E */ +0x3290,0x0000,0x0000, 0x3291,0x0000,0x0000, 0x3292,0x0000,0x0000, /* 10B21 */ +0x3293,0x0000,0x0000, 0x3294,0x0000,0x0000, 0x3295,0x0000,0x0000, /* 10B24 */ +0x3296,0x0000,0x0000, 0x3297,0x0000,0x0000, 0x3298,0x0000,0x0000, /* 10B27 */ +0x3299,0x0000,0x0000, 0x329A,0x0000,0x0000, 0x329B,0x0000,0x0000, /* 10B2A */ +0x329C,0x0000,0x0000, 0x329C,0x0000,0x0000, 0x329D,0x0000,0x0000, /* 10B2D */ +0x329E,0x0000,0x0000, 0x329F,0x0000,0x0000, 0x32A0,0x0000,0x0000, /* 10B30 */ +0x32A1,0x0000,0x0000, 0x32A2,0x0000,0x0000, 0x32A3,0x0000,0x0000, /* 10B33 */ +0xFBC2,0x8B36,0x0000, 0xFBC2,0x8B37,0x0000, 0xFBC2,0x8B38,0x0000, /* 10B36 */ +0x03E6,0x0000,0x0000, 0x02CB,0x0000,0x0000, 0x02CC,0x0000,0x0000, /* 10B39 */ +0x02CD,0x0000,0x0000, 0x02CE,0x0000,0x0000, 0x02CF,0x0000,0x0000, /* 10B3C */ +0x02D0,0x0000,0x0000, 0x32BA,0x0000,0x0000, 0x32BB,0x0000,0x0000, /* 10B3F */ +0x32BC,0x0000,0x0000, 0x32BD,0x0000,0x0000, 0x32BE,0x0000,0x0000, /* 10B42 */ +0x32BF,0x0000,0x0000, 0x32C0,0x0000,0x0000, 0x32C1,0x0000,0x0000, /* 10B45 */ +0x32C2,0x0000,0x0000, 0x32C3,0x0000,0x0000, 0x32C4,0x0000,0x0000, /* 10B48 */ +0x32C5,0x0000,0x0000, 0x32C6,0x0000,0x0000, 0x32C7,0x0000,0x0000, /* 10B4B */ +0x32C8,0x0000,0x0000, 0x32C9,0x0000,0x0000, 0x32CA,0x0000,0x0000, /* 10B4E */ +0x32CB,0x0000,0x0000, 0x32CC,0x0000,0x0000, 0x32CD,0x0000,0x0000, /* 10B51 */ +0x32CE,0x0000,0x0000, 0x32CF,0x0000,0x0000, 0xFBC2,0x8B56,0x0000, /* 10B54 */ +0xFBC2,0x8B57,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10B57 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11AC,0x0000,0x0000, /* 10B5A */ +0x11AD,0x0000,0x0000, 0x11AE,0x0000,0x0000, 0x11AF,0x0000,0x0000, /* 10B5D */ +0x32D0,0x0000,0x0000, 0x32D1,0x0000,0x0000, 0x32D2,0x0000,0x0000, /* 10B60 */ +0x32D3,0x0000,0x0000, 0x32D4,0x0000,0x0000, 0x32D5,0x0000,0x0000, /* 10B63 */ +0x32D6,0x0000,0x0000, 0x32D7,0x0000,0x0000, 0x32D8,0x0000,0x0000, /* 10B66 */ +0x32D9,0x0000,0x0000, 0x32DA,0x0000,0x0000, 0x32DB,0x0000,0x0000, /* 10B69 */ +0x32DC,0x0000,0x0000, 0x32DD,0x0000,0x0000, 0x32DE,0x0000,0x0000, /* 10B6C */ +0x32DF,0x0000,0x0000, 0x32E0,0x0000,0x0000, 0x32E1,0x0000,0x0000, /* 10B6F */ +0x32E2,0x0000,0x0000, 0xFBC2,0x8B73,0x0000, 0xFBC2,0x8B74,0x0000, /* 10B72 */ +0xFBC2,0x8B75,0x0000, 0xFBC2,0x8B76,0x0000, 0xFBC2,0x8B77,0x0000, /* 10B75 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10B78 */ +0x1209,0x0000,0x0000, 0x11B0,0x0000,0x0000, 0x11B1,0x0000,0x0000, /* 10B7B */ +0x11B2,0x0000,0x0000, 0x11B3,0x0000,0x0000, 0xFBC2,0x8B80,0x0000, /* 10B7E */ +0xFBC2,0x8B81,0x0000, 0xFBC2,0x8B82,0x0000, 0xFBC2,0x8B83,0x0000, /* 10B81 */ +0xFBC2,0x8B84,0x0000, 0xFBC2,0x8B85,0x0000, 0xFBC2,0x8B86,0x0000, /* 10B84 */ +0xFBC2,0x8B87,0x0000, 0xFBC2,0x8B88,0x0000, 0xFBC2,0x8B89,0x0000, /* 10B87 */ +0xFBC2,0x8B8A,0x0000, 0xFBC2,0x8B8B,0x0000, 0xFBC2,0x8B8C,0x0000, /* 10B8A */ +0xFBC2,0x8B8D,0x0000, 0xFBC2,0x8B8E,0x0000, 0xFBC2,0x8B8F,0x0000, /* 10B8D */ +0xFBC2,0x8B90,0x0000, 0xFBC2,0x8B91,0x0000, 0xFBC2,0x8B92,0x0000, /* 10B90 */ +0xFBC2,0x8B93,0x0000, 0xFBC2,0x8B94,0x0000, 0xFBC2,0x8B95,0x0000, /* 10B93 */ +0xFBC2,0x8B96,0x0000, 0xFBC2,0x8B97,0x0000, 0xFBC2,0x8B98,0x0000, /* 10B96 */ +0xFBC2,0x8B99,0x0000, 0xFBC2,0x8B9A,0x0000, 0xFBC2,0x8B9B,0x0000, /* 10B99 */ +0xFBC2,0x8B9C,0x0000, 0xFBC2,0x8B9D,0x0000, 0xFBC2,0x8B9E,0x0000, /* 10B9C */ +0xFBC2,0x8B9F,0x0000, 0xFBC2,0x8BA0,0x0000, 0xFBC2,0x8BA1,0x0000, /* 10B9F */ +0xFBC2,0x8BA2,0x0000, 0xFBC2,0x8BA3,0x0000, 0xFBC2,0x8BA4,0x0000, /* 10BA2 */ +0xFBC2,0x8BA5,0x0000, 0xFBC2,0x8BA6,0x0000, 0xFBC2,0x8BA7,0x0000, /* 10BA5 */ +0xFBC2,0x8BA8,0x0000, 0xFBC2,0x8BA9,0x0000, 0xFBC2,0x8BAA,0x0000, /* 10BA8 */ +0xFBC2,0x8BAB,0x0000, 0xFBC2,0x8BAC,0x0000, 0xFBC2,0x8BAD,0x0000, /* 10BAB */ +0xFBC2,0x8BAE,0x0000, 0xFBC2,0x8BAF,0x0000, 0xFBC2,0x8BB0,0x0000, /* 10BAE */ +0xFBC2,0x8BB1,0x0000, 0xFBC2,0x8BB2,0x0000, 0xFBC2,0x8BB3,0x0000, /* 10BB1 */ +0xFBC2,0x8BB4,0x0000, 0xFBC2,0x8BB5,0x0000, 0xFBC2,0x8BB6,0x0000, /* 10BB4 */ +0xFBC2,0x8BB7,0x0000, 0xFBC2,0x8BB8,0x0000, 0xFBC2,0x8BB9,0x0000, /* 10BB7 */ +0xFBC2,0x8BBA,0x0000, 0xFBC2,0x8BBB,0x0000, 0xFBC2,0x8BBC,0x0000, /* 10BBA */ +0xFBC2,0x8BBD,0x0000, 0xFBC2,0x8BBE,0x0000, 0xFBC2,0x8BBF,0x0000, /* 10BBD */ +0xFBC2,0x8BC0,0x0000, 0xFBC2,0x8BC1,0x0000, 0xFBC2,0x8BC2,0x0000, /* 10BC0 */ +0xFBC2,0x8BC3,0x0000, 0xFBC2,0x8BC4,0x0000, 0xFBC2,0x8BC5,0x0000, /* 10BC3 */ +0xFBC2,0x8BC6,0x0000, 0xFBC2,0x8BC7,0x0000, 0xFBC2,0x8BC8,0x0000, /* 10BC6 */ +0xFBC2,0x8BC9,0x0000, 0xFBC2,0x8BCA,0x0000, 0xFBC2,0x8BCB,0x0000, /* 10BC9 */ +0xFBC2,0x8BCC,0x0000, 0xFBC2,0x8BCD,0x0000, 0xFBC2,0x8BCE,0x0000, /* 10BCC */ +0xFBC2,0x8BCF,0x0000, 0xFBC2,0x8BD0,0x0000, 0xFBC2,0x8BD1,0x0000, /* 10BCF */ +0xFBC2,0x8BD2,0x0000, 0xFBC2,0x8BD3,0x0000, 0xFBC2,0x8BD4,0x0000, /* 10BD2 */ +0xFBC2,0x8BD5,0x0000, 0xFBC2,0x8BD6,0x0000, 0xFBC2,0x8BD7,0x0000, /* 10BD5 */ +0xFBC2,0x8BD8,0x0000, 0xFBC2,0x8BD9,0x0000, 0xFBC2,0x8BDA,0x0000, /* 10BD8 */ +0xFBC2,0x8BDB,0x0000, 0xFBC2,0x8BDC,0x0000, 0xFBC2,0x8BDD,0x0000, /* 10BDB */ +0xFBC2,0x8BDE,0x0000, 0xFBC2,0x8BDF,0x0000, 0xFBC2,0x8BE0,0x0000, /* 10BDE */ +0xFBC2,0x8BE1,0x0000, 0xFBC2,0x8BE2,0x0000, 0xFBC2,0x8BE3,0x0000, /* 10BE1 */ +0xFBC2,0x8BE4,0x0000, 0xFBC2,0x8BE5,0x0000, 0xFBC2,0x8BE6,0x0000, /* 10BE4 */ +0xFBC2,0x8BE7,0x0000, 0xFBC2,0x8BE8,0x0000, 0xFBC2,0x8BE9,0x0000, /* 10BE7 */ +0xFBC2,0x8BEA,0x0000, 0xFBC2,0x8BEB,0x0000, 0xFBC2,0x8BEC,0x0000, /* 10BEA */ +0xFBC2,0x8BED,0x0000, 0xFBC2,0x8BEE,0x0000, 0xFBC2,0x8BEF,0x0000, /* 10BED */ +0xFBC2,0x8BF0,0x0000, 0xFBC2,0x8BF1,0x0000, 0xFBC2,0x8BF2,0x0000, /* 10BF0 */ +0xFBC2,0x8BF3,0x0000, 0xFBC2,0x8BF4,0x0000, 0xFBC2,0x8BF5,0x0000, /* 10BF3 */ +0xFBC2,0x8BF6,0x0000, 0xFBC2,0x8BF7,0x0000, 0xFBC2,0x8BF8,0x0000, /* 10BF6 */ +0xFBC2,0x8BF9,0x0000, 0xFBC2,0x8BFA,0x0000, 0xFBC2,0x8BFB,0x0000, /* 10BF9 */ +0xFBC2,0x8BFC,0x0000, 0xFBC2,0x8BFD,0x0000, 0xFBC2,0x8BFE,0x0000, /* 10BFC */ +0xFBC2,0x8BFF,0x0000 }; + +static const uint16 uca520_p10C[]= { /* 10C00 (3 weights per char) */ +0x2826,0x0000,0x0000, 0x2826,0x0000,0x0000, 0x2827,0x0000,0x0000, /* 10C00 */ +0x2828,0x0000,0x0000, 0x2828,0x0000,0x0000, 0x2829,0x0000,0x0000, /* 10C03 */ +0x282A,0x0000,0x0000, 0x282B,0x0000,0x0000, 0x282B,0x0000,0x0000, /* 10C06 */ +0x282C,0x0000,0x0000, 0x282C,0x0000,0x0000, 0x282D,0x0000,0x0000, /* 10C09 */ +0x282D,0x0000,0x0000, 0x282E,0x0000,0x0000, 0x282E,0x0000,0x0000, /* 10C0C */ +0x282F,0x0000,0x0000, 0x282F,0x0000,0x0000, 0x2830,0x0000,0x0000, /* 10C0F */ +0x2830,0x0000,0x0000, 0x2831,0x0000,0x0000, 0x2832,0x0000,0x0000, /* 10C12 */ +0x2832,0x0000,0x0000, 0x2833,0x0000,0x0000, 0x2833,0x0000,0x0000, /* 10C15 */ +0x2834,0x0000,0x0000, 0x2834,0x0000,0x0000, 0x2835,0x0000,0x0000, /* 10C18 */ +0x2835,0x0000,0x0000, 0x2836,0x0000,0x0000, 0x2836,0x0000,0x0000, /* 10C1B */ +0x2837,0x0000,0x0000, 0x2837,0x0000,0x0000, 0x2838,0x0000,0x0000, /* 10C1E */ +0x2839,0x0000,0x0000, 0x283A,0x0000,0x0000, 0x283B,0x0000,0x0000, /* 10C21 */ +0x283C,0x0000,0x0000, 0x283C,0x0000,0x0000, 0x283D,0x0000,0x0000, /* 10C24 */ +0x283D,0x0000,0x0000, 0x283E,0x0000,0x0000, 0x283E,0x0000,0x0000, /* 10C27 */ +0x283F,0x0000,0x0000, 0x283F,0x0000,0x0000, 0x2840,0x0000,0x0000, /* 10C2A */ +0x2841,0x0000,0x0000, 0x2841,0x0000,0x0000, 0x2842,0x0000,0x0000, /* 10C2D */ +0x2843,0x0000,0x0000, 0x2844,0x0000,0x0000, 0x2845,0x0000,0x0000, /* 10C30 */ +0x2845,0x0000,0x0000, 0x2846,0x0000,0x0000, 0x2846,0x0000,0x0000, /* 10C33 */ +0x2847,0x0000,0x0000, 0x2847,0x0000,0x0000, 0x2848,0x0000,0x0000, /* 10C36 */ +0x2848,0x0000,0x0000, 0x2849,0x0000,0x0000, 0x2849,0x0000,0x0000, /* 10C39 */ +0x284A,0x0000,0x0000, 0x284B,0x0000,0x0000, 0x284C,0x0000,0x0000, /* 10C3C */ +0x284D,0x0000,0x0000, 0x284D,0x0000,0x0000, 0x284E,0x0000,0x0000, /* 10C3F */ +0x284E,0x0000,0x0000, 0x284F,0x0000,0x0000, 0x284F,0x0000,0x0000, /* 10C42 */ +0x2850,0x0000,0x0000, 0x2850,0x0000,0x0000, 0x2851,0x0000,0x0000, /* 10C45 */ +0x2852,0x0000,0x0000, 0xFBC2,0x8C49,0x0000, 0xFBC2,0x8C4A,0x0000, /* 10C48 */ +0xFBC2,0x8C4B,0x0000, 0xFBC2,0x8C4C,0x0000, 0xFBC2,0x8C4D,0x0000, /* 10C4B */ +0xFBC2,0x8C4E,0x0000, 0xFBC2,0x8C4F,0x0000, 0xFBC2,0x8C50,0x0000, /* 10C4E */ +0xFBC2,0x8C51,0x0000, 0xFBC2,0x8C52,0x0000, 0xFBC2,0x8C53,0x0000, /* 10C51 */ +0xFBC2,0x8C54,0x0000, 0xFBC2,0x8C55,0x0000, 0xFBC2,0x8C56,0x0000, /* 10C54 */ +0xFBC2,0x8C57,0x0000, 0xFBC2,0x8C58,0x0000, 0xFBC2,0x8C59,0x0000, /* 10C57 */ +0xFBC2,0x8C5A,0x0000, 0xFBC2,0x8C5B,0x0000, 0xFBC2,0x8C5C,0x0000, /* 10C5A */ +0xFBC2,0x8C5D,0x0000, 0xFBC2,0x8C5E,0x0000, 0xFBC2,0x8C5F,0x0000, /* 10C5D */ +0xFBC2,0x8C60,0x0000, 0xFBC2,0x8C61,0x0000, 0xFBC2,0x8C62,0x0000, /* 10C60 */ +0xFBC2,0x8C63,0x0000, 0xFBC2,0x8C64,0x0000, 0xFBC2,0x8C65,0x0000, /* 10C63 */ +0xFBC2,0x8C66,0x0000, 0xFBC2,0x8C67,0x0000, 0xFBC2,0x8C68,0x0000, /* 10C66 */ +0xFBC2,0x8C69,0x0000, 0xFBC2,0x8C6A,0x0000, 0xFBC2,0x8C6B,0x0000, /* 10C69 */ +0xFBC2,0x8C6C,0x0000, 0xFBC2,0x8C6D,0x0000, 0xFBC2,0x8C6E,0x0000, /* 10C6C */ +0xFBC2,0x8C6F,0x0000, 0xFBC2,0x8C70,0x0000, 0xFBC2,0x8C71,0x0000, /* 10C6F */ +0xFBC2,0x8C72,0x0000, 0xFBC2,0x8C73,0x0000, 0xFBC2,0x8C74,0x0000, /* 10C72 */ +0xFBC2,0x8C75,0x0000, 0xFBC2,0x8C76,0x0000, 0xFBC2,0x8C77,0x0000, /* 10C75 */ +0xFBC2,0x8C78,0x0000, 0xFBC2,0x8C79,0x0000, 0xFBC2,0x8C7A,0x0000, /* 10C78 */ +0xFBC2,0x8C7B,0x0000, 0xFBC2,0x8C7C,0x0000, 0xFBC2,0x8C7D,0x0000, /* 10C7B */ +0xFBC2,0x8C7E,0x0000, 0xFBC2,0x8C7F,0x0000, 0xFBC2,0x8C80,0x0000, /* 10C7E */ +0xFBC2,0x8C81,0x0000, 0xFBC2,0x8C82,0x0000, 0xFBC2,0x8C83,0x0000, /* 10C81 */ +0xFBC2,0x8C84,0x0000, 0xFBC2,0x8C85,0x0000, 0xFBC2,0x8C86,0x0000, /* 10C84 */ +0xFBC2,0x8C87,0x0000, 0xFBC2,0x8C88,0x0000, 0xFBC2,0x8C89,0x0000, /* 10C87 */ +0xFBC2,0x8C8A,0x0000, 0xFBC2,0x8C8B,0x0000, 0xFBC2,0x8C8C,0x0000, /* 10C8A */ +0xFBC2,0x8C8D,0x0000, 0xFBC2,0x8C8E,0x0000, 0xFBC2,0x8C8F,0x0000, /* 10C8D */ +0xFBC2,0x8C90,0x0000, 0xFBC2,0x8C91,0x0000, 0xFBC2,0x8C92,0x0000, /* 10C90 */ +0xFBC2,0x8C93,0x0000, 0xFBC2,0x8C94,0x0000, 0xFBC2,0x8C95,0x0000, /* 10C93 */ +0xFBC2,0x8C96,0x0000, 0xFBC2,0x8C97,0x0000, 0xFBC2,0x8C98,0x0000, /* 10C96 */ +0xFBC2,0x8C99,0x0000, 0xFBC2,0x8C9A,0x0000, 0xFBC2,0x8C9B,0x0000, /* 10C99 */ +0xFBC2,0x8C9C,0x0000, 0xFBC2,0x8C9D,0x0000, 0xFBC2,0x8C9E,0x0000, /* 10C9C */ +0xFBC2,0x8C9F,0x0000, 0xFBC2,0x8CA0,0x0000, 0xFBC2,0x8CA1,0x0000, /* 10C9F */ +0xFBC2,0x8CA2,0x0000, 0xFBC2,0x8CA3,0x0000, 0xFBC2,0x8CA4,0x0000, /* 10CA2 */ +0xFBC2,0x8CA5,0x0000, 0xFBC2,0x8CA6,0x0000, 0xFBC2,0x8CA7,0x0000, /* 10CA5 */ +0xFBC2,0x8CA8,0x0000, 0xFBC2,0x8CA9,0x0000, 0xFBC2,0x8CAA,0x0000, /* 10CA8 */ +0xFBC2,0x8CAB,0x0000, 0xFBC2,0x8CAC,0x0000, 0xFBC2,0x8CAD,0x0000, /* 10CAB */ +0xFBC2,0x8CAE,0x0000, 0xFBC2,0x8CAF,0x0000, 0xFBC2,0x8CB0,0x0000, /* 10CAE */ +0xFBC2,0x8CB1,0x0000, 0xFBC2,0x8CB2,0x0000, 0xFBC2,0x8CB3,0x0000, /* 10CB1 */ +0xFBC2,0x8CB4,0x0000, 0xFBC2,0x8CB5,0x0000, 0xFBC2,0x8CB6,0x0000, /* 10CB4 */ +0xFBC2,0x8CB7,0x0000, 0xFBC2,0x8CB8,0x0000, 0xFBC2,0x8CB9,0x0000, /* 10CB7 */ +0xFBC2,0x8CBA,0x0000, 0xFBC2,0x8CBB,0x0000, 0xFBC2,0x8CBC,0x0000, /* 10CBA */ +0xFBC2,0x8CBD,0x0000, 0xFBC2,0x8CBE,0x0000, 0xFBC2,0x8CBF,0x0000, /* 10CBD */ +0xFBC2,0x8CC0,0x0000, 0xFBC2,0x8CC1,0x0000, 0xFBC2,0x8CC2,0x0000, /* 10CC0 */ +0xFBC2,0x8CC3,0x0000, 0xFBC2,0x8CC4,0x0000, 0xFBC2,0x8CC5,0x0000, /* 10CC3 */ +0xFBC2,0x8CC6,0x0000, 0xFBC2,0x8CC7,0x0000, 0xFBC2,0x8CC8,0x0000, /* 10CC6 */ +0xFBC2,0x8CC9,0x0000, 0xFBC2,0x8CCA,0x0000, 0xFBC2,0x8CCB,0x0000, /* 10CC9 */ +0xFBC2,0x8CCC,0x0000, 0xFBC2,0x8CCD,0x0000, 0xFBC2,0x8CCE,0x0000, /* 10CCC */ +0xFBC2,0x8CCF,0x0000, 0xFBC2,0x8CD0,0x0000, 0xFBC2,0x8CD1,0x0000, /* 10CCF */ +0xFBC2,0x8CD2,0x0000, 0xFBC2,0x8CD3,0x0000, 0xFBC2,0x8CD4,0x0000, /* 10CD2 */ +0xFBC2,0x8CD5,0x0000, 0xFBC2,0x8CD6,0x0000, 0xFBC2,0x8CD7,0x0000, /* 10CD5 */ +0xFBC2,0x8CD8,0x0000, 0xFBC2,0x8CD9,0x0000, 0xFBC2,0x8CDA,0x0000, /* 10CD8 */ +0xFBC2,0x8CDB,0x0000, 0xFBC2,0x8CDC,0x0000, 0xFBC2,0x8CDD,0x0000, /* 10CDB */ +0xFBC2,0x8CDE,0x0000, 0xFBC2,0x8CDF,0x0000, 0xFBC2,0x8CE0,0x0000, /* 10CDE */ +0xFBC2,0x8CE1,0x0000, 0xFBC2,0x8CE2,0x0000, 0xFBC2,0x8CE3,0x0000, /* 10CE1 */ +0xFBC2,0x8CE4,0x0000, 0xFBC2,0x8CE5,0x0000, 0xFBC2,0x8CE6,0x0000, /* 10CE4 */ +0xFBC2,0x8CE7,0x0000, 0xFBC2,0x8CE8,0x0000, 0xFBC2,0x8CE9,0x0000, /* 10CE7 */ +0xFBC2,0x8CEA,0x0000, 0xFBC2,0x8CEB,0x0000, 0xFBC2,0x8CEC,0x0000, /* 10CEA */ +0xFBC2,0x8CED,0x0000, 0xFBC2,0x8CEE,0x0000, 0xFBC2,0x8CEF,0x0000, /* 10CED */ +0xFBC2,0x8CF0,0x0000, 0xFBC2,0x8CF1,0x0000, 0xFBC2,0x8CF2,0x0000, /* 10CF0 */ +0xFBC2,0x8CF3,0x0000, 0xFBC2,0x8CF4,0x0000, 0xFBC2,0x8CF5,0x0000, /* 10CF3 */ +0xFBC2,0x8CF6,0x0000, 0xFBC2,0x8CF7,0x0000, 0xFBC2,0x8CF8,0x0000, /* 10CF6 */ +0xFBC2,0x8CF9,0x0000, 0xFBC2,0x8CFA,0x0000, 0xFBC2,0x8CFB,0x0000, /* 10CF9 */ +0xFBC2,0x8CFC,0x0000, 0xFBC2,0x8CFD,0x0000, 0xFBC2,0x8CFE,0x0000, /* 10CFC */ +0xFBC2,0x8CFF,0x0000 }; + +static const uint16 uca520_p10E[]= { /* 10E00 (3 weights per char) */ +0xFBC2,0x8E00,0x0000, 0xFBC2,0x8E01,0x0000, 0xFBC2,0x8E02,0x0000, /* 10E00 */ +0xFBC2,0x8E03,0x0000, 0xFBC2,0x8E04,0x0000, 0xFBC2,0x8E05,0x0000, /* 10E03 */ +0xFBC2,0x8E06,0x0000, 0xFBC2,0x8E07,0x0000, 0xFBC2,0x8E08,0x0000, /* 10E06 */ +0xFBC2,0x8E09,0x0000, 0xFBC2,0x8E0A,0x0000, 0xFBC2,0x8E0B,0x0000, /* 10E09 */ +0xFBC2,0x8E0C,0x0000, 0xFBC2,0x8E0D,0x0000, 0xFBC2,0x8E0E,0x0000, /* 10E0C */ +0xFBC2,0x8E0F,0x0000, 0xFBC2,0x8E10,0x0000, 0xFBC2,0x8E11,0x0000, /* 10E0F */ +0xFBC2,0x8E12,0x0000, 0xFBC2,0x8E13,0x0000, 0xFBC2,0x8E14,0x0000, /* 10E12 */ +0xFBC2,0x8E15,0x0000, 0xFBC2,0x8E16,0x0000, 0xFBC2,0x8E17,0x0000, /* 10E15 */ +0xFBC2,0x8E18,0x0000, 0xFBC2,0x8E19,0x0000, 0xFBC2,0x8E1A,0x0000, /* 10E18 */ +0xFBC2,0x8E1B,0x0000, 0xFBC2,0x8E1C,0x0000, 0xFBC2,0x8E1D,0x0000, /* 10E1B */ +0xFBC2,0x8E1E,0x0000, 0xFBC2,0x8E1F,0x0000, 0xFBC2,0x8E20,0x0000, /* 10E1E */ +0xFBC2,0x8E21,0x0000, 0xFBC2,0x8E22,0x0000, 0xFBC2,0x8E23,0x0000, /* 10E21 */ +0xFBC2,0x8E24,0x0000, 0xFBC2,0x8E25,0x0000, 0xFBC2,0x8E26,0x0000, /* 10E24 */ +0xFBC2,0x8E27,0x0000, 0xFBC2,0x8E28,0x0000, 0xFBC2,0x8E29,0x0000, /* 10E27 */ +0xFBC2,0x8E2A,0x0000, 0xFBC2,0x8E2B,0x0000, 0xFBC2,0x8E2C,0x0000, /* 10E2A */ +0xFBC2,0x8E2D,0x0000, 0xFBC2,0x8E2E,0x0000, 0xFBC2,0x8E2F,0x0000, /* 10E2D */ +0xFBC2,0x8E30,0x0000, 0xFBC2,0x8E31,0x0000, 0xFBC2,0x8E32,0x0000, /* 10E30 */ +0xFBC2,0x8E33,0x0000, 0xFBC2,0x8E34,0x0000, 0xFBC2,0x8E35,0x0000, /* 10E33 */ +0xFBC2,0x8E36,0x0000, 0xFBC2,0x8E37,0x0000, 0xFBC2,0x8E38,0x0000, /* 10E36 */ +0xFBC2,0x8E39,0x0000, 0xFBC2,0x8E3A,0x0000, 0xFBC2,0x8E3B,0x0000, /* 10E39 */ +0xFBC2,0x8E3C,0x0000, 0xFBC2,0x8E3D,0x0000, 0xFBC2,0x8E3E,0x0000, /* 10E3C */ +0xFBC2,0x8E3F,0x0000, 0xFBC2,0x8E40,0x0000, 0xFBC2,0x8E41,0x0000, /* 10E3F */ +0xFBC2,0x8E42,0x0000, 0xFBC2,0x8E43,0x0000, 0xFBC2,0x8E44,0x0000, /* 10E42 */ +0xFBC2,0x8E45,0x0000, 0xFBC2,0x8E46,0x0000, 0xFBC2,0x8E47,0x0000, /* 10E45 */ +0xFBC2,0x8E48,0x0000, 0xFBC2,0x8E49,0x0000, 0xFBC2,0x8E4A,0x0000, /* 10E48 */ +0xFBC2,0x8E4B,0x0000, 0xFBC2,0x8E4C,0x0000, 0xFBC2,0x8E4D,0x0000, /* 10E4B */ +0xFBC2,0x8E4E,0x0000, 0xFBC2,0x8E4F,0x0000, 0xFBC2,0x8E50,0x0000, /* 10E4E */ +0xFBC2,0x8E51,0x0000, 0xFBC2,0x8E52,0x0000, 0xFBC2,0x8E53,0x0000, /* 10E51 */ +0xFBC2,0x8E54,0x0000, 0xFBC2,0x8E55,0x0000, 0xFBC2,0x8E56,0x0000, /* 10E54 */ +0xFBC2,0x8E57,0x0000, 0xFBC2,0x8E58,0x0000, 0xFBC2,0x8E59,0x0000, /* 10E57 */ +0xFBC2,0x8E5A,0x0000, 0xFBC2,0x8E5B,0x0000, 0xFBC2,0x8E5C,0x0000, /* 10E5A */ +0xFBC2,0x8E5D,0x0000, 0xFBC2,0x8E5E,0x0000, 0xFBC2,0x8E5F,0x0000, /* 10E5D */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10E60 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 10E63 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 10E66 */ +0x1136,0x0000,0x0000, 0x1137,0x0000,0x0000, 0x1138,0x0000,0x0000, /* 10E69 */ +0x1139,0x0000,0x0000, 0x113A,0x0000,0x0000, 0x113B,0x0000,0x0000, /* 10E6C */ +0x113C,0x0000,0x0000, 0x113D,0x0000,0x0000, 0x113E,0x0000,0x0000, /* 10E6F */ +0x113F,0x0000,0x0000, 0x1140,0x0000,0x0000, 0x1141,0x0000,0x0000, /* 10E72 */ +0x1142,0x0000,0x0000, 0x1143,0x0000,0x0000, 0x1144,0x0000,0x0000, /* 10E75 */ +0x1145,0x0000,0x0000, 0x1146,0x0000,0x0000, 0x1147,0x0000,0x0000, /* 10E78 */ +0x1148,0x0000,0x0000, 0x1149,0x0000,0x0000, 0x114A,0x0000,0x0000, /* 10E7B */ +0x114B,0x0000,0x0000, 0xFBC2,0x8E7F,0x0000, 0xFBC2,0x8E80,0x0000, /* 10E7E */ +0xFBC2,0x8E81,0x0000, 0xFBC2,0x8E82,0x0000, 0xFBC2,0x8E83,0x0000, /* 10E81 */ +0xFBC2,0x8E84,0x0000, 0xFBC2,0x8E85,0x0000, 0xFBC2,0x8E86,0x0000, /* 10E84 */ +0xFBC2,0x8E87,0x0000, 0xFBC2,0x8E88,0x0000, 0xFBC2,0x8E89,0x0000, /* 10E87 */ +0xFBC2,0x8E8A,0x0000, 0xFBC2,0x8E8B,0x0000, 0xFBC2,0x8E8C,0x0000, /* 10E8A */ +0xFBC2,0x8E8D,0x0000, 0xFBC2,0x8E8E,0x0000, 0xFBC2,0x8E8F,0x0000, /* 10E8D */ +0xFBC2,0x8E90,0x0000, 0xFBC2,0x8E91,0x0000, 0xFBC2,0x8E92,0x0000, /* 10E90 */ +0xFBC2,0x8E93,0x0000, 0xFBC2,0x8E94,0x0000, 0xFBC2,0x8E95,0x0000, /* 10E93 */ +0xFBC2,0x8E96,0x0000, 0xFBC2,0x8E97,0x0000, 0xFBC2,0x8E98,0x0000, /* 10E96 */ +0xFBC2,0x8E99,0x0000, 0xFBC2,0x8E9A,0x0000, 0xFBC2,0x8E9B,0x0000, /* 10E99 */ +0xFBC2,0x8E9C,0x0000, 0xFBC2,0x8E9D,0x0000, 0xFBC2,0x8E9E,0x0000, /* 10E9C */ +0xFBC2,0x8E9F,0x0000, 0xFBC2,0x8EA0,0x0000, 0xFBC2,0x8EA1,0x0000, /* 10E9F */ +0xFBC2,0x8EA2,0x0000, 0xFBC2,0x8EA3,0x0000, 0xFBC2,0x8EA4,0x0000, /* 10EA2 */ +0xFBC2,0x8EA5,0x0000, 0xFBC2,0x8EA6,0x0000, 0xFBC2,0x8EA7,0x0000, /* 10EA5 */ +0xFBC2,0x8EA8,0x0000, 0xFBC2,0x8EA9,0x0000, 0xFBC2,0x8EAA,0x0000, /* 10EA8 */ +0xFBC2,0x8EAB,0x0000, 0xFBC2,0x8EAC,0x0000, 0xFBC2,0x8EAD,0x0000, /* 10EAB */ +0xFBC2,0x8EAE,0x0000, 0xFBC2,0x8EAF,0x0000, 0xFBC2,0x8EB0,0x0000, /* 10EAE */ +0xFBC2,0x8EB1,0x0000, 0xFBC2,0x8EB2,0x0000, 0xFBC2,0x8EB3,0x0000, /* 10EB1 */ +0xFBC2,0x8EB4,0x0000, 0xFBC2,0x8EB5,0x0000, 0xFBC2,0x8EB6,0x0000, /* 10EB4 */ +0xFBC2,0x8EB7,0x0000, 0xFBC2,0x8EB8,0x0000, 0xFBC2,0x8EB9,0x0000, /* 10EB7 */ +0xFBC2,0x8EBA,0x0000, 0xFBC2,0x8EBB,0x0000, 0xFBC2,0x8EBC,0x0000, /* 10EBA */ +0xFBC2,0x8EBD,0x0000, 0xFBC2,0x8EBE,0x0000, 0xFBC2,0x8EBF,0x0000, /* 10EBD */ +0xFBC2,0x8EC0,0x0000, 0xFBC2,0x8EC1,0x0000, 0xFBC2,0x8EC2,0x0000, /* 10EC0 */ +0xFBC2,0x8EC3,0x0000, 0xFBC2,0x8EC4,0x0000, 0xFBC2,0x8EC5,0x0000, /* 10EC3 */ +0xFBC2,0x8EC6,0x0000, 0xFBC2,0x8EC7,0x0000, 0xFBC2,0x8EC8,0x0000, /* 10EC6 */ +0xFBC2,0x8EC9,0x0000, 0xFBC2,0x8ECA,0x0000, 0xFBC2,0x8ECB,0x0000, /* 10EC9 */ +0xFBC2,0x8ECC,0x0000, 0xFBC2,0x8ECD,0x0000, 0xFBC2,0x8ECE,0x0000, /* 10ECC */ +0xFBC2,0x8ECF,0x0000, 0xFBC2,0x8ED0,0x0000, 0xFBC2,0x8ED1,0x0000, /* 10ECF */ +0xFBC2,0x8ED2,0x0000, 0xFBC2,0x8ED3,0x0000, 0xFBC2,0x8ED4,0x0000, /* 10ED2 */ +0xFBC2,0x8ED5,0x0000, 0xFBC2,0x8ED6,0x0000, 0xFBC2,0x8ED7,0x0000, /* 10ED5 */ +0xFBC2,0x8ED8,0x0000, 0xFBC2,0x8ED9,0x0000, 0xFBC2,0x8EDA,0x0000, /* 10ED8 */ +0xFBC2,0x8EDB,0x0000, 0xFBC2,0x8EDC,0x0000, 0xFBC2,0x8EDD,0x0000, /* 10EDB */ +0xFBC2,0x8EDE,0x0000, 0xFBC2,0x8EDF,0x0000, 0xFBC2,0x8EE0,0x0000, /* 10EDE */ +0xFBC2,0x8EE1,0x0000, 0xFBC2,0x8EE2,0x0000, 0xFBC2,0x8EE3,0x0000, /* 10EE1 */ +0xFBC2,0x8EE4,0x0000, 0xFBC2,0x8EE5,0x0000, 0xFBC2,0x8EE6,0x0000, /* 10EE4 */ +0xFBC2,0x8EE7,0x0000, 0xFBC2,0x8EE8,0x0000, 0xFBC2,0x8EE9,0x0000, /* 10EE7 */ +0xFBC2,0x8EEA,0x0000, 0xFBC2,0x8EEB,0x0000, 0xFBC2,0x8EEC,0x0000, /* 10EEA */ +0xFBC2,0x8EED,0x0000, 0xFBC2,0x8EEE,0x0000, 0xFBC2,0x8EEF,0x0000, /* 10EED */ +0xFBC2,0x8EF0,0x0000, 0xFBC2,0x8EF1,0x0000, 0xFBC2,0x8EF2,0x0000, /* 10EF0 */ +0xFBC2,0x8EF3,0x0000, 0xFBC2,0x8EF4,0x0000, 0xFBC2,0x8EF5,0x0000, /* 10EF3 */ +0xFBC2,0x8EF6,0x0000, 0xFBC2,0x8EF7,0x0000, 0xFBC2,0x8EF8,0x0000, /* 10EF6 */ +0xFBC2,0x8EF9,0x0000, 0xFBC2,0x8EFA,0x0000, 0xFBC2,0x8EFB,0x0000, /* 10EF9 */ +0xFBC2,0x8EFC,0x0000, 0xFBC2,0x8EFD,0x0000, 0xFBC2,0x8EFE,0x0000, /* 10EFC */ +0xFBC2,0x8EFF,0x0000 }; + +static const uint16 uca520_p110[]= { /* 11000 (3 weights per char) */ +0xFBC2,0x9000,0x0000, 0xFBC2,0x9001,0x0000, 0xFBC2,0x9002,0x0000, /* 11000 */ +0xFBC2,0x9003,0x0000, 0xFBC2,0x9004,0x0000, 0xFBC2,0x9005,0x0000, /* 11003 */ +0xFBC2,0x9006,0x0000, 0xFBC2,0x9007,0x0000, 0xFBC2,0x9008,0x0000, /* 11006 */ +0xFBC2,0x9009,0x0000, 0xFBC2,0x900A,0x0000, 0xFBC2,0x900B,0x0000, /* 11009 */ +0xFBC2,0x900C,0x0000, 0xFBC2,0x900D,0x0000, 0xFBC2,0x900E,0x0000, /* 1100C */ +0xFBC2,0x900F,0x0000, 0xFBC2,0x9010,0x0000, 0xFBC2,0x9011,0x0000, /* 1100F */ +0xFBC2,0x9012,0x0000, 0xFBC2,0x9013,0x0000, 0xFBC2,0x9014,0x0000, /* 11012 */ +0xFBC2,0x9015,0x0000, 0xFBC2,0x9016,0x0000, 0xFBC2,0x9017,0x0000, /* 11015 */ +0xFBC2,0x9018,0x0000, 0xFBC2,0x9019,0x0000, 0xFBC2,0x901A,0x0000, /* 11018 */ +0xFBC2,0x901B,0x0000, 0xFBC2,0x901C,0x0000, 0xFBC2,0x901D,0x0000, /* 1101B */ +0xFBC2,0x901E,0x0000, 0xFBC2,0x901F,0x0000, 0xFBC2,0x9020,0x0000, /* 1101E */ +0xFBC2,0x9021,0x0000, 0xFBC2,0x9022,0x0000, 0xFBC2,0x9023,0x0000, /* 11021 */ +0xFBC2,0x9024,0x0000, 0xFBC2,0x9025,0x0000, 0xFBC2,0x9026,0x0000, /* 11024 */ +0xFBC2,0x9027,0x0000, 0xFBC2,0x9028,0x0000, 0xFBC2,0x9029,0x0000, /* 11027 */ +0xFBC2,0x902A,0x0000, 0xFBC2,0x902B,0x0000, 0xFBC2,0x902C,0x0000, /* 1102A */ +0xFBC2,0x902D,0x0000, 0xFBC2,0x902E,0x0000, 0xFBC2,0x902F,0x0000, /* 1102D */ +0xFBC2,0x9030,0x0000, 0xFBC2,0x9031,0x0000, 0xFBC2,0x9032,0x0000, /* 11030 */ +0xFBC2,0x9033,0x0000, 0xFBC2,0x9034,0x0000, 0xFBC2,0x9035,0x0000, /* 11033 */ +0xFBC2,0x9036,0x0000, 0xFBC2,0x9037,0x0000, 0xFBC2,0x9038,0x0000, /* 11036 */ +0xFBC2,0x9039,0x0000, 0xFBC2,0x903A,0x0000, 0xFBC2,0x903B,0x0000, /* 11039 */ +0xFBC2,0x903C,0x0000, 0xFBC2,0x903D,0x0000, 0xFBC2,0x903E,0x0000, /* 1103C */ +0xFBC2,0x903F,0x0000, 0xFBC2,0x9040,0x0000, 0xFBC2,0x9041,0x0000, /* 1103F */ +0xFBC2,0x9042,0x0000, 0xFBC2,0x9043,0x0000, 0xFBC2,0x9044,0x0000, /* 11042 */ +0xFBC2,0x9045,0x0000, 0xFBC2,0x9046,0x0000, 0xFBC2,0x9047,0x0000, /* 11045 */ +0xFBC2,0x9048,0x0000, 0xFBC2,0x9049,0x0000, 0xFBC2,0x904A,0x0000, /* 11048 */ +0xFBC2,0x904B,0x0000, 0xFBC2,0x904C,0x0000, 0xFBC2,0x904D,0x0000, /* 1104B */ +0xFBC2,0x904E,0x0000, 0xFBC2,0x904F,0x0000, 0xFBC2,0x9050,0x0000, /* 1104E */ +0xFBC2,0x9051,0x0000, 0xFBC2,0x9052,0x0000, 0xFBC2,0x9053,0x0000, /* 11051 */ +0xFBC2,0x9054,0x0000, 0xFBC2,0x9055,0x0000, 0xFBC2,0x9056,0x0000, /* 11054 */ +0xFBC2,0x9057,0x0000, 0xFBC2,0x9058,0x0000, 0xFBC2,0x9059,0x0000, /* 11057 */ +0xFBC2,0x905A,0x0000, 0xFBC2,0x905B,0x0000, 0xFBC2,0x905C,0x0000, /* 1105A */ +0xFBC2,0x905D,0x0000, 0xFBC2,0x905E,0x0000, 0xFBC2,0x905F,0x0000, /* 1105D */ +0xFBC2,0x9060,0x0000, 0xFBC2,0x9061,0x0000, 0xFBC2,0x9062,0x0000, /* 11060 */ +0xFBC2,0x9063,0x0000, 0xFBC2,0x9064,0x0000, 0xFBC2,0x9065,0x0000, /* 11063 */ +0xFBC2,0x9066,0x0000, 0xFBC2,0x9067,0x0000, 0xFBC2,0x9068,0x0000, /* 11066 */ +0xFBC2,0x9069,0x0000, 0xFBC2,0x906A,0x0000, 0xFBC2,0x906B,0x0000, /* 11069 */ +0xFBC2,0x906C,0x0000, 0xFBC2,0x906D,0x0000, 0xFBC2,0x906E,0x0000, /* 1106C */ +0xFBC2,0x906F,0x0000, 0xFBC2,0x9070,0x0000, 0xFBC2,0x9071,0x0000, /* 1106F */ +0xFBC2,0x9072,0x0000, 0xFBC2,0x9073,0x0000, 0xFBC2,0x9074,0x0000, /* 11072 */ +0xFBC2,0x9075,0x0000, 0xFBC2,0x9076,0x0000, 0xFBC2,0x9077,0x0000, /* 11075 */ +0xFBC2,0x9078,0x0000, 0xFBC2,0x9079,0x0000, 0xFBC2,0x907A,0x0000, /* 11078 */ +0xFBC2,0x907B,0x0000, 0xFBC2,0x907C,0x0000, 0xFBC2,0x907D,0x0000, /* 1107B */ +0xFBC2,0x907E,0x0000, 0xFBC2,0x907F,0x0000, 0x0000,0x0000,0x0000, /* 1107E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1EE8,0x0000,0x0000, /* 11081 */ +0x1EE9,0x0000,0x0000, 0x1EEA,0x0000,0x0000, 0x1EEB,0x0000,0x0000, /* 11084 */ +0x1EEC,0x0000,0x0000, 0x1EED,0x0000,0x0000, 0x1EEE,0x0000,0x0000, /* 11087 */ +0x1EEF,0x0000,0x0000, 0x1EF0,0x0000,0x0000, 0x1EF1,0x0000,0x0000, /* 1108A */ +0x1EF2,0x0000,0x0000, 0x1EF3,0x0000,0x0000, 0x1EF4,0x0000,0x0000, /* 1108D */ +0x1EF5,0x0000,0x0000, 0x1EF6,0x0000,0x0000, 0x1EF7,0x0000,0x0000, /* 11090 */ +0x1EF8,0x0000,0x0000, 0x1EF9,0x0000,0x0000, 0x1EFA,0x0000,0x0000, /* 11093 */ +0x1EFB,0x0000,0x0000, 0x1EFC,0x0000,0x0000, 0x1EFD,0x0000,0x0000, /* 11096 */ +0x1EFE,0x0000,0x0000, 0x1EFE,0x0000,0x0000, 0x1EFF,0x0000,0x0000, /* 11099 */ +0x1EFF,0x0000,0x0000, 0x1F00,0x0000,0x0000, 0x1F01,0x0000,0x0000, /* 1109C */ +0x1F02,0x0000,0x0000, 0x1F03,0x0000,0x0000, 0x1F04,0x0000,0x0000, /* 1109F */ +0x1F05,0x0000,0x0000, 0x1F06,0x0000,0x0000, 0x1F07,0x0000,0x0000, /* 110A2 */ +0x1F08,0x0000,0x0000, 0x1F09,0x0000,0x0000, 0x1F0A,0x0000,0x0000, /* 110A5 */ +0x1F0B,0x0000,0x0000, 0x1F0C,0x0000,0x0000, 0x1F0D,0x0000,0x0000, /* 110A8 */ +0x1F08,0x0000,0x0000, 0x1F0E,0x0000,0x0000, 0x1F0F,0x0000,0x0000, /* 110AB */ +0x1F10,0x0000,0x0000, 0x1F11,0x0000,0x0000, 0x1F12,0x0000,0x0000, /* 110AE */ +0x1F13,0x0000,0x0000, 0x1F14,0x0000,0x0000, 0x1F15,0x0000,0x0000, /* 110B1 */ +0x1F16,0x0000,0x0000, 0x1F17,0x0000,0x0000, 0x1F18,0x0000,0x0000, /* 110B4 */ +0x1F19,0x0000,0x0000, 0x1F1A,0x0000,0x0000, 0x1F1B,0x0000,0x0000, /* 110B7 */ +0x0000,0x0000,0x0000, 0x03E7,0x0000,0x0000, 0x03E8,0x0000,0x0000, /* 110BA */ +0x0000,0x0000,0x0000, 0x02D1,0x0000,0x0000, 0x02D2,0x0000,0x0000, /* 110BD */ +0x02B1,0x0000,0x0000, 0x02B2,0x0000,0x0000, 0xFBC2,0x90C2,0x0000, /* 110C0 */ +0xFBC2,0x90C3,0x0000, 0xFBC2,0x90C4,0x0000, 0xFBC2,0x90C5,0x0000, /* 110C3 */ +0xFBC2,0x90C6,0x0000, 0xFBC2,0x90C7,0x0000, 0xFBC2,0x90C8,0x0000, /* 110C6 */ +0xFBC2,0x90C9,0x0000, 0xFBC2,0x90CA,0x0000, 0xFBC2,0x90CB,0x0000, /* 110C9 */ +0xFBC2,0x90CC,0x0000, 0xFBC2,0x90CD,0x0000, 0xFBC2,0x90CE,0x0000, /* 110CC */ +0xFBC2,0x90CF,0x0000, 0xFBC2,0x90D0,0x0000, 0xFBC2,0x90D1,0x0000, /* 110CF */ +0xFBC2,0x90D2,0x0000, 0xFBC2,0x90D3,0x0000, 0xFBC2,0x90D4,0x0000, /* 110D2 */ +0xFBC2,0x90D5,0x0000, 0xFBC2,0x90D6,0x0000, 0xFBC2,0x90D7,0x0000, /* 110D5 */ +0xFBC2,0x90D8,0x0000, 0xFBC2,0x90D9,0x0000, 0xFBC2,0x90DA,0x0000, /* 110D8 */ +0xFBC2,0x90DB,0x0000, 0xFBC2,0x90DC,0x0000, 0xFBC2,0x90DD,0x0000, /* 110DB */ +0xFBC2,0x90DE,0x0000, 0xFBC2,0x90DF,0x0000, 0xFBC2,0x90E0,0x0000, /* 110DE */ +0xFBC2,0x90E1,0x0000, 0xFBC2,0x90E2,0x0000, 0xFBC2,0x90E3,0x0000, /* 110E1 */ +0xFBC2,0x90E4,0x0000, 0xFBC2,0x90E5,0x0000, 0xFBC2,0x90E6,0x0000, /* 110E4 */ +0xFBC2,0x90E7,0x0000, 0xFBC2,0x90E8,0x0000, 0xFBC2,0x90E9,0x0000, /* 110E7 */ +0xFBC2,0x90EA,0x0000, 0xFBC2,0x90EB,0x0000, 0xFBC2,0x90EC,0x0000, /* 110EA */ +0xFBC2,0x90ED,0x0000, 0xFBC2,0x90EE,0x0000, 0xFBC2,0x90EF,0x0000, /* 110ED */ +0xFBC2,0x90F0,0x0000, 0xFBC2,0x90F1,0x0000, 0xFBC2,0x90F2,0x0000, /* 110F0 */ +0xFBC2,0x90F3,0x0000, 0xFBC2,0x90F4,0x0000, 0xFBC2,0x90F5,0x0000, /* 110F3 */ +0xFBC2,0x90F6,0x0000, 0xFBC2,0x90F7,0x0000, 0xFBC2,0x90F8,0x0000, /* 110F6 */ +0xFBC2,0x90F9,0x0000, 0xFBC2,0x90FA,0x0000, 0xFBC2,0x90FB,0x0000, /* 110F9 */ +0xFBC2,0x90FC,0x0000, 0xFBC2,0x90FD,0x0000, 0xFBC2,0x90FE,0x0000, /* 110FC */ +0xFBC2,0x90FF,0x0000 }; + +static const uint16 uca520_p120[]= { /* 12000 (2 weights per char) */ +0x332D,0x0000, 0x332E,0x0000, 0x332F,0x0000, 0x3330,0x0000, /* 12000 */ +0x3331,0x0000, 0x3332,0x0000, 0x3333,0x0000, 0x3334,0x0000, /* 12004 */ +0x3335,0x0000, 0x3336,0x0000, 0x3337,0x0000, 0x3338,0x0000, /* 12008 */ +0x3339,0x0000, 0x333A,0x0000, 0x333B,0x0000, 0x333C,0x0000, /* 1200C */ +0x333D,0x0000, 0x333E,0x0000, 0x333F,0x0000, 0x3340,0x0000, /* 12010 */ +0x3341,0x0000, 0x3342,0x0000, 0x3343,0x0000, 0x3344,0x0000, /* 12014 */ +0x3345,0x0000, 0x3346,0x0000, 0x3347,0x0000, 0x3348,0x0000, /* 12018 */ +0x3349,0x0000, 0x334A,0x0000, 0x334B,0x0000, 0x334C,0x0000, /* 1201C */ +0x334D,0x0000, 0x334E,0x0000, 0x334F,0x0000, 0x3350,0x0000, /* 12020 */ +0x3351,0x0000, 0x3352,0x0000, 0x3353,0x0000, 0x3354,0x0000, /* 12024 */ +0x3355,0x0000, 0x3356,0x0000, 0x3357,0x0000, 0x3358,0x0000, /* 12028 */ +0x3359,0x0000, 0x335A,0x0000, 0x335B,0x0000, 0x335C,0x0000, /* 1202C */ +0x335D,0x0000, 0x335E,0x0000, 0x335F,0x0000, 0x3360,0x0000, /* 12030 */ +0x3361,0x0000, 0x3362,0x0000, 0x3363,0x0000, 0x3364,0x0000, /* 12034 */ +0x3365,0x0000, 0x3366,0x0000, 0x3367,0x0000, 0x3368,0x0000, /* 12038 */ +0x3369,0x0000, 0x336A,0x0000, 0x336B,0x0000, 0x336C,0x0000, /* 1203C */ +0x336D,0x0000, 0x336E,0x0000, 0x336F,0x0000, 0x3370,0x0000, /* 12040 */ +0x3371,0x0000, 0x3372,0x0000, 0x3373,0x0000, 0x3374,0x0000, /* 12044 */ +0x3375,0x0000, 0x3376,0x0000, 0x3377,0x0000, 0x3378,0x0000, /* 12048 */ +0x3379,0x0000, 0x337A,0x0000, 0x337B,0x0000, 0x337C,0x0000, /* 1204C */ +0x337D,0x0000, 0x337E,0x0000, 0x337F,0x0000, 0x3380,0x0000, /* 12050 */ +0x3381,0x0000, 0x3382,0x0000, 0x3383,0x0000, 0x3384,0x0000, /* 12054 */ +0x3385,0x0000, 0x3386,0x0000, 0x3387,0x0000, 0x3388,0x0000, /* 12058 */ +0x3389,0x0000, 0x338A,0x0000, 0x338B,0x0000, 0x338C,0x0000, /* 1205C */ +0x338D,0x0000, 0x338E,0x0000, 0x338F,0x0000, 0x3390,0x0000, /* 12060 */ +0x3391,0x0000, 0x3392,0x0000, 0x3393,0x0000, 0x3394,0x0000, /* 12064 */ +0x3395,0x0000, 0x3396,0x0000, 0x3397,0x0000, 0x3398,0x0000, /* 12068 */ +0x3399,0x0000, 0x339A,0x0000, 0x339B,0x0000, 0x339C,0x0000, /* 1206C */ +0x339D,0x0000, 0x339E,0x0000, 0x339F,0x0000, 0x33A0,0x0000, /* 12070 */ +0x33A1,0x0000, 0x33A2,0x0000, 0x33A3,0x0000, 0x33A4,0x0000, /* 12074 */ +0x33A5,0x0000, 0x33A6,0x0000, 0x33A7,0x0000, 0x33A8,0x0000, /* 12078 */ +0x33A9,0x0000, 0x33AA,0x0000, 0x33AB,0x0000, 0x33AC,0x0000, /* 1207C */ +0x33AD,0x0000, 0x33AE,0x0000, 0x33AF,0x0000, 0x33B0,0x0000, /* 12080 */ +0x33B1,0x0000, 0x33B2,0x0000, 0x33B3,0x0000, 0x33B4,0x0000, /* 12084 */ +0x33B5,0x0000, 0x33B6,0x0000, 0x33B7,0x0000, 0x33B8,0x0000, /* 12088 */ +0x33B9,0x0000, 0x33BA,0x0000, 0x33BB,0x0000, 0x33BC,0x0000, /* 1208C */ +0x33BD,0x0000, 0x33BE,0x0000, 0x33BF,0x0000, 0x33C0,0x0000, /* 12090 */ +0x33C1,0x0000, 0x33C2,0x0000, 0x33C3,0x0000, 0x33C4,0x0000, /* 12094 */ +0x33C5,0x0000, 0x33C6,0x0000, 0x33C7,0x0000, 0x33C8,0x0000, /* 12098 */ +0x33C9,0x0000, 0x33CA,0x0000, 0x33CB,0x0000, 0x33CC,0x0000, /* 1209C */ +0x33CD,0x0000, 0x33CE,0x0000, 0x33CF,0x0000, 0x33D0,0x0000, /* 120A0 */ +0x33D1,0x0000, 0x33D2,0x0000, 0x33D3,0x0000, 0x33D4,0x0000, /* 120A4 */ +0x33D5,0x0000, 0x33D6,0x0000, 0x33D7,0x0000, 0x33D8,0x0000, /* 120A8 */ +0x33D9,0x0000, 0x33DA,0x0000, 0x33DB,0x0000, 0x33DC,0x0000, /* 120AC */ +0x33DD,0x0000, 0x33DE,0x0000, 0x33DF,0x0000, 0x33E0,0x0000, /* 120B0 */ +0x33E1,0x0000, 0x33E2,0x0000, 0x33E3,0x0000, 0x33E4,0x0000, /* 120B4 */ +0x33E5,0x0000, 0x33E6,0x0000, 0x33E7,0x0000, 0x33E8,0x0000, /* 120B8 */ +0x33E9,0x0000, 0x33EA,0x0000, 0x33EB,0x0000, 0x33EC,0x0000, /* 120BC */ +0x33ED,0x0000, 0x33EE,0x0000, 0x33EF,0x0000, 0x33F0,0x0000, /* 120C0 */ +0x33F1,0x0000, 0x33F2,0x0000, 0x33F3,0x0000, 0x33F4,0x0000, /* 120C4 */ +0x33F5,0x0000, 0x33F6,0x0000, 0x33F7,0x0000, 0x33F8,0x0000, /* 120C8 */ +0x33F9,0x0000, 0x33FA,0x0000, 0x33FB,0x0000, 0x33FC,0x0000, /* 120CC */ +0x33FD,0x0000, 0x33FE,0x0000, 0x33FF,0x0000, 0x3400,0x0000, /* 120D0 */ +0x3401,0x0000, 0x3402,0x0000, 0x3403,0x0000, 0x3404,0x0000, /* 120D4 */ +0x3405,0x0000, 0x3406,0x0000, 0x3407,0x0000, 0x3408,0x0000, /* 120D8 */ +0x3409,0x0000, 0x340A,0x0000, 0x340B,0x0000, 0x340C,0x0000, /* 120DC */ +0x340D,0x0000, 0x340E,0x0000, 0x340F,0x0000, 0x3410,0x0000, /* 120E0 */ +0x3411,0x0000, 0x3412,0x0000, 0x3413,0x0000, 0x3414,0x0000, /* 120E4 */ +0x3415,0x0000, 0x3416,0x0000, 0x3417,0x0000, 0x3418,0x0000, /* 120E8 */ +0x3419,0x0000, 0x341A,0x0000, 0x341B,0x0000, 0x341C,0x0000, /* 120EC */ +0x341D,0x0000, 0x341E,0x0000, 0x341F,0x0000, 0x3420,0x0000, /* 120F0 */ +0x3421,0x0000, 0x3422,0x0000, 0x3423,0x0000, 0x3424,0x0000, /* 120F4 */ +0x3425,0x0000, 0x3426,0x0000, 0x3427,0x0000, 0x3428,0x0000, /* 120F8 */ +0x3429,0x0000, 0x342A,0x0000, 0x342B,0x0000, 0x342C,0x0000 /* 120FC */ +}; + +static const uint16 uca520_p121[]= { /* 12100 (2 weights per char) */ +0x342D,0x0000, 0x342E,0x0000, 0x342F,0x0000, 0x3430,0x0000, /* 12100 */ +0x3431,0x0000, 0x3432,0x0000, 0x3433,0x0000, 0x3434,0x0000, /* 12104 */ +0x3435,0x0000, 0x3436,0x0000, 0x3437,0x0000, 0x3438,0x0000, /* 12108 */ +0x3439,0x0000, 0x343A,0x0000, 0x343B,0x0000, 0x343C,0x0000, /* 1210C */ +0x343D,0x0000, 0x343E,0x0000, 0x343F,0x0000, 0x3440,0x0000, /* 12110 */ +0x3441,0x0000, 0x3442,0x0000, 0x3443,0x0000, 0x3444,0x0000, /* 12114 */ +0x3445,0x0000, 0x3446,0x0000, 0x3447,0x0000, 0x3448,0x0000, /* 12118 */ +0x3449,0x0000, 0x344A,0x0000, 0x344B,0x0000, 0x344C,0x0000, /* 1211C */ +0x344D,0x0000, 0x344E,0x0000, 0x344F,0x0000, 0x3450,0x0000, /* 12120 */ +0x3451,0x0000, 0x3452,0x0000, 0x3453,0x0000, 0x3454,0x0000, /* 12124 */ +0x3455,0x0000, 0x3456,0x0000, 0x3457,0x0000, 0x3458,0x0000, /* 12128 */ +0x3459,0x0000, 0x345A,0x0000, 0x345B,0x0000, 0x345C,0x0000, /* 1212C */ +0x345D,0x0000, 0x345E,0x0000, 0x345F,0x0000, 0x3460,0x0000, /* 12130 */ +0x3461,0x0000, 0x3462,0x0000, 0x3463,0x0000, 0x3464,0x0000, /* 12134 */ +0x3465,0x0000, 0x3466,0x0000, 0x3467,0x0000, 0x3468,0x0000, /* 12138 */ +0x3469,0x0000, 0x346A,0x0000, 0x346B,0x0000, 0x346C,0x0000, /* 1213C */ +0x346D,0x0000, 0x346E,0x0000, 0x346F,0x0000, 0x3470,0x0000, /* 12140 */ +0x3471,0x0000, 0x3472,0x0000, 0x3473,0x0000, 0x3474,0x0000, /* 12144 */ +0x3475,0x0000, 0x3476,0x0000, 0x3477,0x0000, 0x3478,0x0000, /* 12148 */ +0x3479,0x0000, 0x347A,0x0000, 0x347B,0x0000, 0x347C,0x0000, /* 1214C */ +0x347D,0x0000, 0x347E,0x0000, 0x347F,0x0000, 0x3480,0x0000, /* 12150 */ +0x3481,0x0000, 0x3482,0x0000, 0x3483,0x0000, 0x3484,0x0000, /* 12154 */ +0x3485,0x0000, 0x3486,0x0000, 0x3487,0x0000, 0x3488,0x0000, /* 12158 */ +0x3489,0x0000, 0x348A,0x0000, 0x348B,0x0000, 0x348C,0x0000, /* 1215C */ +0x348D,0x0000, 0x348E,0x0000, 0x348F,0x0000, 0x3490,0x0000, /* 12160 */ +0x3491,0x0000, 0x3492,0x0000, 0x3493,0x0000, 0x3494,0x0000, /* 12164 */ +0x3495,0x0000, 0x3496,0x0000, 0x3497,0x0000, 0x3498,0x0000, /* 12168 */ +0x3499,0x0000, 0x349A,0x0000, 0x349B,0x0000, 0x349C,0x0000, /* 1216C */ +0x349D,0x0000, 0x349E,0x0000, 0x349F,0x0000, 0x34A0,0x0000, /* 12170 */ +0x34A1,0x0000, 0x34A2,0x0000, 0x34A3,0x0000, 0x34A4,0x0000, /* 12174 */ +0x34A5,0x0000, 0x34A6,0x0000, 0x34A7,0x0000, 0x34A8,0x0000, /* 12178 */ +0x34A9,0x0000, 0x34AA,0x0000, 0x34AB,0x0000, 0x34AC,0x0000, /* 1217C */ +0x34AD,0x0000, 0x34AE,0x0000, 0x34AF,0x0000, 0x34B0,0x0000, /* 12180 */ +0x34B1,0x0000, 0x34B2,0x0000, 0x34B3,0x0000, 0x34B4,0x0000, /* 12184 */ +0x34B5,0x0000, 0x34B6,0x0000, 0x34B7,0x0000, 0x34B8,0x0000, /* 12188 */ +0x34B9,0x0000, 0x34BA,0x0000, 0x34BB,0x0000, 0x34BC,0x0000, /* 1218C */ +0x34BD,0x0000, 0x34BE,0x0000, 0x34BF,0x0000, 0x34C0,0x0000, /* 12190 */ +0x34C1,0x0000, 0x34C2,0x0000, 0x34C3,0x0000, 0x34C4,0x0000, /* 12194 */ +0x34C5,0x0000, 0x34C6,0x0000, 0x34C7,0x0000, 0x34C8,0x0000, /* 12198 */ +0x34C9,0x0000, 0x34CA,0x0000, 0x34CB,0x0000, 0x34CC,0x0000, /* 1219C */ +0x34CD,0x0000, 0x34CE,0x0000, 0x34CF,0x0000, 0x34D0,0x0000, /* 121A0 */ +0x34D1,0x0000, 0x34D2,0x0000, 0x34D3,0x0000, 0x34D4,0x0000, /* 121A4 */ +0x34D5,0x0000, 0x34D6,0x0000, 0x34D7,0x0000, 0x34D8,0x0000, /* 121A8 */ +0x34D9,0x0000, 0x34DA,0x0000, 0x34DB,0x0000, 0x34DC,0x0000, /* 121AC */ +0x34DD,0x0000, 0x34DE,0x0000, 0x34DF,0x0000, 0x34E0,0x0000, /* 121B0 */ +0x34E1,0x0000, 0x34E2,0x0000, 0x34E3,0x0000, 0x34E4,0x0000, /* 121B4 */ +0x34E5,0x0000, 0x34E6,0x0000, 0x34E7,0x0000, 0x34E8,0x0000, /* 121B8 */ +0x34E9,0x0000, 0x34EA,0x0000, 0x34EB,0x0000, 0x34EC,0x0000, /* 121BC */ +0x34ED,0x0000, 0x34EE,0x0000, 0x34EF,0x0000, 0x34F0,0x0000, /* 121C0 */ +0x34F1,0x0000, 0x34F2,0x0000, 0x34F3,0x0000, 0x34F4,0x0000, /* 121C4 */ +0x34F5,0x0000, 0x34F6,0x0000, 0x34F7,0x0000, 0x34F8,0x0000, /* 121C8 */ +0x34F9,0x0000, 0x34FA,0x0000, 0x34FB,0x0000, 0x34FC,0x0000, /* 121CC */ +0x34FD,0x0000, 0x34FE,0x0000, 0x34FF,0x0000, 0x3500,0x0000, /* 121D0 */ +0x3501,0x0000, 0x3502,0x0000, 0x3503,0x0000, 0x3504,0x0000, /* 121D4 */ +0x3505,0x0000, 0x3506,0x0000, 0x3507,0x0000, 0x3508,0x0000, /* 121D8 */ +0x3509,0x0000, 0x350A,0x0000, 0x350B,0x0000, 0x350C,0x0000, /* 121DC */ +0x350D,0x0000, 0x350E,0x0000, 0x350F,0x0000, 0x3510,0x0000, /* 121E0 */ +0x3511,0x0000, 0x3512,0x0000, 0x3513,0x0000, 0x3514,0x0000, /* 121E4 */ +0x3515,0x0000, 0x3516,0x0000, 0x3517,0x0000, 0x3518,0x0000, /* 121E8 */ +0x3519,0x0000, 0x351A,0x0000, 0x351B,0x0000, 0x351C,0x0000, /* 121EC */ +0x351D,0x0000, 0x351E,0x0000, 0x351F,0x0000, 0x3520,0x0000, /* 121F0 */ +0x3521,0x0000, 0x3522,0x0000, 0x3523,0x0000, 0x3524,0x0000, /* 121F4 */ +0x3525,0x0000, 0x3526,0x0000, 0x3527,0x0000, 0x3528,0x0000, /* 121F8 */ +0x3529,0x0000, 0x352A,0x0000, 0x352B,0x0000, 0x352C,0x0000 /* 121FC */ +}; + +static const uint16 uca520_p122[]= { /* 12200 (2 weights per char) */ +0x352D,0x0000, 0x352E,0x0000, 0x352F,0x0000, 0x3530,0x0000, /* 12200 */ +0x3531,0x0000, 0x3532,0x0000, 0x3533,0x0000, 0x3534,0x0000, /* 12204 */ +0x3535,0x0000, 0x3536,0x0000, 0x3537,0x0000, 0x3538,0x0000, /* 12208 */ +0x3539,0x0000, 0x353A,0x0000, 0x353B,0x0000, 0x353C,0x0000, /* 1220C */ +0x353D,0x0000, 0x353E,0x0000, 0x353F,0x0000, 0x3540,0x0000, /* 12210 */ +0x3541,0x0000, 0x3542,0x0000, 0x3543,0x0000, 0x3544,0x0000, /* 12214 */ +0x3545,0x0000, 0x3546,0x0000, 0x3547,0x0000, 0x3548,0x0000, /* 12218 */ +0x3549,0x0000, 0x354A,0x0000, 0x354B,0x0000, 0x354C,0x0000, /* 1221C */ +0x354D,0x0000, 0x354E,0x0000, 0x354F,0x0000, 0x3550,0x0000, /* 12220 */ +0x3551,0x0000, 0x3552,0x0000, 0x3553,0x0000, 0x3554,0x0000, /* 12224 */ +0x3555,0x0000, 0x3556,0x0000, 0x3557,0x0000, 0x3558,0x0000, /* 12228 */ +0x3559,0x0000, 0x355A,0x0000, 0x355B,0x0000, 0x355C,0x0000, /* 1222C */ +0x355D,0x0000, 0x355E,0x0000, 0x355F,0x0000, 0x3560,0x0000, /* 12230 */ +0x3561,0x0000, 0x3562,0x0000, 0x3563,0x0000, 0x3564,0x0000, /* 12234 */ +0x3565,0x0000, 0x3566,0x0000, 0x3567,0x0000, 0x3568,0x0000, /* 12238 */ +0x3569,0x0000, 0x356A,0x0000, 0x356B,0x0000, 0x356C,0x0000, /* 1223C */ +0x356D,0x0000, 0x356E,0x0000, 0x356F,0x0000, 0x3570,0x0000, /* 12240 */ +0x3571,0x0000, 0x3572,0x0000, 0x3573,0x0000, 0x3574,0x0000, /* 12244 */ +0x3575,0x0000, 0x3576,0x0000, 0x3577,0x0000, 0x3578,0x0000, /* 12248 */ +0x3579,0x0000, 0x357A,0x0000, 0x357B,0x0000, 0x357C,0x0000, /* 1224C */ +0x357D,0x0000, 0x357E,0x0000, 0x357F,0x0000, 0x3580,0x0000, /* 12250 */ +0x3581,0x0000, 0x3582,0x0000, 0x3583,0x0000, 0x3584,0x0000, /* 12254 */ +0x3585,0x0000, 0x3586,0x0000, 0x3587,0x0000, 0x3588,0x0000, /* 12258 */ +0x3589,0x0000, 0x358A,0x0000, 0x358B,0x0000, 0x358C,0x0000, /* 1225C */ +0x358D,0x0000, 0x358E,0x0000, 0x358F,0x0000, 0x3590,0x0000, /* 12260 */ +0x3591,0x0000, 0x3592,0x0000, 0x3593,0x0000, 0x3594,0x0000, /* 12264 */ +0x3595,0x0000, 0x3596,0x0000, 0x3597,0x0000, 0x3598,0x0000, /* 12268 */ +0x3599,0x0000, 0x359A,0x0000, 0x359B,0x0000, 0x359C,0x0000, /* 1226C */ +0x359D,0x0000, 0x359E,0x0000, 0x359F,0x0000, 0x35A0,0x0000, /* 12270 */ +0x35A1,0x0000, 0x35A2,0x0000, 0x35A3,0x0000, 0x35A4,0x0000, /* 12274 */ +0x35A5,0x0000, 0x35A6,0x0000, 0x35A7,0x0000, 0x35A8,0x0000, /* 12278 */ +0x35A9,0x0000, 0x35AA,0x0000, 0x35AB,0x0000, 0x35AC,0x0000, /* 1227C */ +0x35AD,0x0000, 0x35AE,0x0000, 0x35AF,0x0000, 0x35B0,0x0000, /* 12280 */ +0x35B1,0x0000, 0x35B2,0x0000, 0x35B3,0x0000, 0x35B4,0x0000, /* 12284 */ +0x35B5,0x0000, 0x35B6,0x0000, 0x35B7,0x0000, 0x35B8,0x0000, /* 12288 */ +0x35B9,0x0000, 0x35BA,0x0000, 0x35BB,0x0000, 0x35BC,0x0000, /* 1228C */ +0x35BD,0x0000, 0x35BE,0x0000, 0x35BF,0x0000, 0x35C0,0x0000, /* 12290 */ +0x35C1,0x0000, 0x35C2,0x0000, 0x35C3,0x0000, 0x35C4,0x0000, /* 12294 */ +0x35C5,0x0000, 0x35C6,0x0000, 0x35C7,0x0000, 0x35C8,0x0000, /* 12298 */ +0x35C9,0x0000, 0x35CA,0x0000, 0x35CB,0x0000, 0x35CC,0x0000, /* 1229C */ +0x35CD,0x0000, 0x35CE,0x0000, 0x35CF,0x0000, 0x35D0,0x0000, /* 122A0 */ +0x35D1,0x0000, 0x35D2,0x0000, 0x35D3,0x0000, 0x35D4,0x0000, /* 122A4 */ +0x35D5,0x0000, 0x35D6,0x0000, 0x35D7,0x0000, 0x35D8,0x0000, /* 122A8 */ +0x35D9,0x0000, 0x35DA,0x0000, 0x35DB,0x0000, 0x35DC,0x0000, /* 122AC */ +0x35DD,0x0000, 0x35DE,0x0000, 0x35DF,0x0000, 0x35E0,0x0000, /* 122B0 */ +0x35E1,0x0000, 0x35E2,0x0000, 0x35E3,0x0000, 0x35E4,0x0000, /* 122B4 */ +0x35E5,0x0000, 0x35E6,0x0000, 0x35E7,0x0000, 0x35E8,0x0000, /* 122B8 */ +0x35E9,0x0000, 0x35EA,0x0000, 0x35EB,0x0000, 0x35EC,0x0000, /* 122BC */ +0x35ED,0x0000, 0x35EE,0x0000, 0x35EF,0x0000, 0x35F0,0x0000, /* 122C0 */ +0x35F1,0x0000, 0x35F2,0x0000, 0x35F3,0x0000, 0x35F4,0x0000, /* 122C4 */ +0x35F5,0x0000, 0x35F6,0x0000, 0x35F7,0x0000, 0x35F8,0x0000, /* 122C8 */ +0x35F9,0x0000, 0x35FA,0x0000, 0x35FB,0x0000, 0x35FC,0x0000, /* 122CC */ +0x35FD,0x0000, 0x35FE,0x0000, 0x35FF,0x0000, 0x3600,0x0000, /* 122D0 */ +0x3601,0x0000, 0x3602,0x0000, 0x3603,0x0000, 0x3604,0x0000, /* 122D4 */ +0x3605,0x0000, 0x3606,0x0000, 0x3607,0x0000, 0x3608,0x0000, /* 122D8 */ +0x3609,0x0000, 0x360A,0x0000, 0x360B,0x0000, 0x360C,0x0000, /* 122DC */ +0x360D,0x0000, 0x360E,0x0000, 0x360F,0x0000, 0x3610,0x0000, /* 122E0 */ +0x3611,0x0000, 0x3612,0x0000, 0x3613,0x0000, 0x3614,0x0000, /* 122E4 */ +0x3615,0x0000, 0x3616,0x0000, 0x3617,0x0000, 0x3618,0x0000, /* 122E8 */ +0x3619,0x0000, 0x361A,0x0000, 0x361B,0x0000, 0x361C,0x0000, /* 122EC */ +0x361D,0x0000, 0x361E,0x0000, 0x361F,0x0000, 0x3620,0x0000, /* 122F0 */ +0x3621,0x0000, 0x3622,0x0000, 0x3623,0x0000, 0x3624,0x0000, /* 122F4 */ +0x3625,0x0000, 0x3626,0x0000, 0x3627,0x0000, 0x3628,0x0000, /* 122F8 */ +0x3629,0x0000, 0x362A,0x0000, 0x362B,0x0000, 0x362C,0x0000 /* 122FC */ +}; + +static const uint16 uca520_p123[]= { /* 12300 (3 weights per char) */ +0x362D,0x0000,0x0000, 0x362E,0x0000,0x0000, 0x362F,0x0000,0x0000, /* 12300 */ +0x3630,0x0000,0x0000, 0x3631,0x0000,0x0000, 0x3632,0x0000,0x0000, /* 12303 */ +0x3633,0x0000,0x0000, 0x3634,0x0000,0x0000, 0x3635,0x0000,0x0000, /* 12306 */ +0x3636,0x0000,0x0000, 0x3637,0x0000,0x0000, 0x3638,0x0000,0x0000, /* 12309 */ +0x3639,0x0000,0x0000, 0x363A,0x0000,0x0000, 0x363B,0x0000,0x0000, /* 1230C */ +0x363C,0x0000,0x0000, 0x363D,0x0000,0x0000, 0x363E,0x0000,0x0000, /* 1230F */ +0x363F,0x0000,0x0000, 0x3640,0x0000,0x0000, 0x3641,0x0000,0x0000, /* 12312 */ +0x3642,0x0000,0x0000, 0x3643,0x0000,0x0000, 0x3644,0x0000,0x0000, /* 12315 */ +0x3645,0x0000,0x0000, 0x3646,0x0000,0x0000, 0x3647,0x0000,0x0000, /* 12318 */ +0x3648,0x0000,0x0000, 0x3649,0x0000,0x0000, 0x364A,0x0000,0x0000, /* 1231B */ +0x364B,0x0000,0x0000, 0x364C,0x0000,0x0000, 0x364D,0x0000,0x0000, /* 1231E */ +0x364E,0x0000,0x0000, 0x364F,0x0000,0x0000, 0x3650,0x0000,0x0000, /* 12321 */ +0x3651,0x0000,0x0000, 0x3652,0x0000,0x0000, 0x3653,0x0000,0x0000, /* 12324 */ +0x3654,0x0000,0x0000, 0x3655,0x0000,0x0000, 0x3656,0x0000,0x0000, /* 12327 */ +0x3657,0x0000,0x0000, 0x3658,0x0000,0x0000, 0x3659,0x0000,0x0000, /* 1232A */ +0x365A,0x0000,0x0000, 0x365B,0x0000,0x0000, 0x365C,0x0000,0x0000, /* 1232D */ +0x365D,0x0000,0x0000, 0x365E,0x0000,0x0000, 0x365F,0x0000,0x0000, /* 12330 */ +0x3660,0x0000,0x0000, 0x3661,0x0000,0x0000, 0x3662,0x0000,0x0000, /* 12333 */ +0x3663,0x0000,0x0000, 0x3664,0x0000,0x0000, 0x3665,0x0000,0x0000, /* 12336 */ +0x3666,0x0000,0x0000, 0x3667,0x0000,0x0000, 0x3668,0x0000,0x0000, /* 12339 */ +0x3669,0x0000,0x0000, 0x366A,0x0000,0x0000, 0x366B,0x0000,0x0000, /* 1233C */ +0x366C,0x0000,0x0000, 0x366D,0x0000,0x0000, 0x366E,0x0000,0x0000, /* 1233F */ +0x366F,0x0000,0x0000, 0x3670,0x0000,0x0000, 0x3671,0x0000,0x0000, /* 12342 */ +0x3672,0x0000,0x0000, 0x3673,0x0000,0x0000, 0x3674,0x0000,0x0000, /* 12345 */ +0x3675,0x0000,0x0000, 0x3676,0x0000,0x0000, 0x3677,0x0000,0x0000, /* 12348 */ +0x3678,0x0000,0x0000, 0x3679,0x0000,0x0000, 0x367A,0x0000,0x0000, /* 1234B */ +0x367B,0x0000,0x0000, 0x367C,0x0000,0x0000, 0x367D,0x0000,0x0000, /* 1234E */ +0x367E,0x0000,0x0000, 0x367F,0x0000,0x0000, 0x3680,0x0000,0x0000, /* 12351 */ +0x3681,0x0000,0x0000, 0x3682,0x0000,0x0000, 0x3683,0x0000,0x0000, /* 12354 */ +0x3684,0x0000,0x0000, 0x3685,0x0000,0x0000, 0x3686,0x0000,0x0000, /* 12357 */ +0x3687,0x0000,0x0000, 0x3688,0x0000,0x0000, 0x3689,0x0000,0x0000, /* 1235A */ +0x368A,0x0000,0x0000, 0x368B,0x0000,0x0000, 0x368C,0x0000,0x0000, /* 1235D */ +0x368D,0x0000,0x0000, 0x368E,0x0000,0x0000, 0x368F,0x0000,0x0000, /* 12360 */ +0x3690,0x0000,0x0000, 0x3691,0x0000,0x0000, 0x3692,0x0000,0x0000, /* 12363 */ +0x3693,0x0000,0x0000, 0x3694,0x0000,0x0000, 0x3695,0x0000,0x0000, /* 12366 */ +0x3696,0x0000,0x0000, 0x3697,0x0000,0x0000, 0x3698,0x0000,0x0000, /* 12369 */ +0x3699,0x0000,0x0000, 0x369A,0x0000,0x0000, 0x369B,0x0000,0x0000, /* 1236C */ +0xFBC2,0xA36F,0x0000, 0xFBC2,0xA370,0x0000, 0xFBC2,0xA371,0x0000, /* 1236F */ +0xFBC2,0xA372,0x0000, 0xFBC2,0xA373,0x0000, 0xFBC2,0xA374,0x0000, /* 12372 */ +0xFBC2,0xA375,0x0000, 0xFBC2,0xA376,0x0000, 0xFBC2,0xA377,0x0000, /* 12375 */ +0xFBC2,0xA378,0x0000, 0xFBC2,0xA379,0x0000, 0xFBC2,0xA37A,0x0000, /* 12378 */ +0xFBC2,0xA37B,0x0000, 0xFBC2,0xA37C,0x0000, 0xFBC2,0xA37D,0x0000, /* 1237B */ +0xFBC2,0xA37E,0x0000, 0xFBC2,0xA37F,0x0000, 0xFBC2,0xA380,0x0000, /* 1237E */ +0xFBC2,0xA381,0x0000, 0xFBC2,0xA382,0x0000, 0xFBC2,0xA383,0x0000, /* 12381 */ +0xFBC2,0xA384,0x0000, 0xFBC2,0xA385,0x0000, 0xFBC2,0xA386,0x0000, /* 12384 */ +0xFBC2,0xA387,0x0000, 0xFBC2,0xA388,0x0000, 0xFBC2,0xA389,0x0000, /* 12387 */ +0xFBC2,0xA38A,0x0000, 0xFBC2,0xA38B,0x0000, 0xFBC2,0xA38C,0x0000, /* 1238A */ +0xFBC2,0xA38D,0x0000, 0xFBC2,0xA38E,0x0000, 0xFBC2,0xA38F,0x0000, /* 1238D */ +0xFBC2,0xA390,0x0000, 0xFBC2,0xA391,0x0000, 0xFBC2,0xA392,0x0000, /* 12390 */ +0xFBC2,0xA393,0x0000, 0xFBC2,0xA394,0x0000, 0xFBC2,0xA395,0x0000, /* 12393 */ +0xFBC2,0xA396,0x0000, 0xFBC2,0xA397,0x0000, 0xFBC2,0xA398,0x0000, /* 12396 */ +0xFBC2,0xA399,0x0000, 0xFBC2,0xA39A,0x0000, 0xFBC2,0xA39B,0x0000, /* 12399 */ +0xFBC2,0xA39C,0x0000, 0xFBC2,0xA39D,0x0000, 0xFBC2,0xA39E,0x0000, /* 1239C */ +0xFBC2,0xA39F,0x0000, 0xFBC2,0xA3A0,0x0000, 0xFBC2,0xA3A1,0x0000, /* 1239F */ +0xFBC2,0xA3A2,0x0000, 0xFBC2,0xA3A3,0x0000, 0xFBC2,0xA3A4,0x0000, /* 123A2 */ +0xFBC2,0xA3A5,0x0000, 0xFBC2,0xA3A6,0x0000, 0xFBC2,0xA3A7,0x0000, /* 123A5 */ +0xFBC2,0xA3A8,0x0000, 0xFBC2,0xA3A9,0x0000, 0xFBC2,0xA3AA,0x0000, /* 123A8 */ +0xFBC2,0xA3AB,0x0000, 0xFBC2,0xA3AC,0x0000, 0xFBC2,0xA3AD,0x0000, /* 123AB */ +0xFBC2,0xA3AE,0x0000, 0xFBC2,0xA3AF,0x0000, 0xFBC2,0xA3B0,0x0000, /* 123AE */ +0xFBC2,0xA3B1,0x0000, 0xFBC2,0xA3B2,0x0000, 0xFBC2,0xA3B3,0x0000, /* 123B1 */ +0xFBC2,0xA3B4,0x0000, 0xFBC2,0xA3B5,0x0000, 0xFBC2,0xA3B6,0x0000, /* 123B4 */ +0xFBC2,0xA3B7,0x0000, 0xFBC2,0xA3B8,0x0000, 0xFBC2,0xA3B9,0x0000, /* 123B7 */ +0xFBC2,0xA3BA,0x0000, 0xFBC2,0xA3BB,0x0000, 0xFBC2,0xA3BC,0x0000, /* 123BA */ +0xFBC2,0xA3BD,0x0000, 0xFBC2,0xA3BE,0x0000, 0xFBC2,0xA3BF,0x0000, /* 123BD */ +0xFBC2,0xA3C0,0x0000, 0xFBC2,0xA3C1,0x0000, 0xFBC2,0xA3C2,0x0000, /* 123C0 */ +0xFBC2,0xA3C3,0x0000, 0xFBC2,0xA3C4,0x0000, 0xFBC2,0xA3C5,0x0000, /* 123C3 */ +0xFBC2,0xA3C6,0x0000, 0xFBC2,0xA3C7,0x0000, 0xFBC2,0xA3C8,0x0000, /* 123C6 */ +0xFBC2,0xA3C9,0x0000, 0xFBC2,0xA3CA,0x0000, 0xFBC2,0xA3CB,0x0000, /* 123C9 */ +0xFBC2,0xA3CC,0x0000, 0xFBC2,0xA3CD,0x0000, 0xFBC2,0xA3CE,0x0000, /* 123CC */ +0xFBC2,0xA3CF,0x0000, 0xFBC2,0xA3D0,0x0000, 0xFBC2,0xA3D1,0x0000, /* 123CF */ +0xFBC2,0xA3D2,0x0000, 0xFBC2,0xA3D3,0x0000, 0xFBC2,0xA3D4,0x0000, /* 123D2 */ +0xFBC2,0xA3D5,0x0000, 0xFBC2,0xA3D6,0x0000, 0xFBC2,0xA3D7,0x0000, /* 123D5 */ +0xFBC2,0xA3D8,0x0000, 0xFBC2,0xA3D9,0x0000, 0xFBC2,0xA3DA,0x0000, /* 123D8 */ +0xFBC2,0xA3DB,0x0000, 0xFBC2,0xA3DC,0x0000, 0xFBC2,0xA3DD,0x0000, /* 123DB */ +0xFBC2,0xA3DE,0x0000, 0xFBC2,0xA3DF,0x0000, 0xFBC2,0xA3E0,0x0000, /* 123DE */ +0xFBC2,0xA3E1,0x0000, 0xFBC2,0xA3E2,0x0000, 0xFBC2,0xA3E3,0x0000, /* 123E1 */ +0xFBC2,0xA3E4,0x0000, 0xFBC2,0xA3E5,0x0000, 0xFBC2,0xA3E6,0x0000, /* 123E4 */ +0xFBC2,0xA3E7,0x0000, 0xFBC2,0xA3E8,0x0000, 0xFBC2,0xA3E9,0x0000, /* 123E7 */ +0xFBC2,0xA3EA,0x0000, 0xFBC2,0xA3EB,0x0000, 0xFBC2,0xA3EC,0x0000, /* 123EA */ +0xFBC2,0xA3ED,0x0000, 0xFBC2,0xA3EE,0x0000, 0xFBC2,0xA3EF,0x0000, /* 123ED */ +0xFBC2,0xA3F0,0x0000, 0xFBC2,0xA3F1,0x0000, 0xFBC2,0xA3F2,0x0000, /* 123F0 */ +0xFBC2,0xA3F3,0x0000, 0xFBC2,0xA3F4,0x0000, 0xFBC2,0xA3F5,0x0000, /* 123F3 */ +0xFBC2,0xA3F6,0x0000, 0xFBC2,0xA3F7,0x0000, 0xFBC2,0xA3F8,0x0000, /* 123F6 */ +0xFBC2,0xA3F9,0x0000, 0xFBC2,0xA3FA,0x0000, 0xFBC2,0xA3FB,0x0000, /* 123F9 */ +0xFBC2,0xA3FC,0x0000, 0xFBC2,0xA3FD,0x0000, 0xFBC2,0xA3FE,0x0000, /* 123FC */ +0xFBC2,0xA3FF,0x0000 }; + +static const uint16 uca520_p124[]= { /* 12400 (3 weights per char) */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12400 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12403 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12406 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12409 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1240C */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1240F */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12412 */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12415 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12418 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1241B */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1241E */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12421 */ +0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12424 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12427 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1242A */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1242D */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11B8,0x0000,0x0000, /* 12430 */ +0x11B9,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12433 */ +0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12436 */ +0x120A,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12439 */ +0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1243C */ +0x1209,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1243F */ +0x120C,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 12442 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12445 */ +0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12448 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1244B */ +0x120B,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1244E */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12451 */ +0x120A,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11BA,0x0000,0x0000, /* 12454 */ +0x11BB,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12457 */ +0x11BC,0x0000,0x0000, 0x11BD,0x0000,0x0000, 0x11BE,0x0000,0x0000, /* 1245A */ +0x11BF,0x0000,0x0000, 0x11C0,0x0000,0x0000, 0x11C1,0x0000,0x0000, /* 1245D */ +0x11C2,0x0000,0x0000, 0x11C3,0x0000,0x0000, 0x11C4,0x0000,0x0000, /* 12460 */ +0xFBC2,0xA463,0x0000, 0xFBC2,0xA464,0x0000, 0xFBC2,0xA465,0x0000, /* 12463 */ +0xFBC2,0xA466,0x0000, 0xFBC2,0xA467,0x0000, 0xFBC2,0xA468,0x0000, /* 12466 */ +0xFBC2,0xA469,0x0000, 0xFBC2,0xA46A,0x0000, 0xFBC2,0xA46B,0x0000, /* 12469 */ +0xFBC2,0xA46C,0x0000, 0xFBC2,0xA46D,0x0000, 0xFBC2,0xA46E,0x0000, /* 1246C */ +0xFBC2,0xA46F,0x0000, 0x02EA,0x0000,0x0000, 0x02EB,0x0000,0x0000, /* 1246F */ +0x02EC,0x0000,0x0000, 0x02ED,0x0000,0x0000, 0xFBC2,0xA474,0x0000, /* 12472 */ +0xFBC2,0xA475,0x0000, 0xFBC2,0xA476,0x0000, 0xFBC2,0xA477,0x0000, /* 12475 */ +0xFBC2,0xA478,0x0000, 0xFBC2,0xA479,0x0000, 0xFBC2,0xA47A,0x0000, /* 12478 */ +0xFBC2,0xA47B,0x0000, 0xFBC2,0xA47C,0x0000, 0xFBC2,0xA47D,0x0000, /* 1247B */ +0xFBC2,0xA47E,0x0000, 0xFBC2,0xA47F,0x0000, 0xFBC2,0xA480,0x0000, /* 1247E */ +0xFBC2,0xA481,0x0000, 0xFBC2,0xA482,0x0000, 0xFBC2,0xA483,0x0000, /* 12481 */ +0xFBC2,0xA484,0x0000, 0xFBC2,0xA485,0x0000, 0xFBC2,0xA486,0x0000, /* 12484 */ +0xFBC2,0xA487,0x0000, 0xFBC2,0xA488,0x0000, 0xFBC2,0xA489,0x0000, /* 12487 */ +0xFBC2,0xA48A,0x0000, 0xFBC2,0xA48B,0x0000, 0xFBC2,0xA48C,0x0000, /* 1248A */ +0xFBC2,0xA48D,0x0000, 0xFBC2,0xA48E,0x0000, 0xFBC2,0xA48F,0x0000, /* 1248D */ +0xFBC2,0xA490,0x0000, 0xFBC2,0xA491,0x0000, 0xFBC2,0xA492,0x0000, /* 12490 */ +0xFBC2,0xA493,0x0000, 0xFBC2,0xA494,0x0000, 0xFBC2,0xA495,0x0000, /* 12493 */ +0xFBC2,0xA496,0x0000, 0xFBC2,0xA497,0x0000, 0xFBC2,0xA498,0x0000, /* 12496 */ +0xFBC2,0xA499,0x0000, 0xFBC2,0xA49A,0x0000, 0xFBC2,0xA49B,0x0000, /* 12499 */ +0xFBC2,0xA49C,0x0000, 0xFBC2,0xA49D,0x0000, 0xFBC2,0xA49E,0x0000, /* 1249C */ +0xFBC2,0xA49F,0x0000, 0xFBC2,0xA4A0,0x0000, 0xFBC2,0xA4A1,0x0000, /* 1249F */ +0xFBC2,0xA4A2,0x0000, 0xFBC2,0xA4A3,0x0000, 0xFBC2,0xA4A4,0x0000, /* 124A2 */ +0xFBC2,0xA4A5,0x0000, 0xFBC2,0xA4A6,0x0000, 0xFBC2,0xA4A7,0x0000, /* 124A5 */ +0xFBC2,0xA4A8,0x0000, 0xFBC2,0xA4A9,0x0000, 0xFBC2,0xA4AA,0x0000, /* 124A8 */ +0xFBC2,0xA4AB,0x0000, 0xFBC2,0xA4AC,0x0000, 0xFBC2,0xA4AD,0x0000, /* 124AB */ +0xFBC2,0xA4AE,0x0000, 0xFBC2,0xA4AF,0x0000, 0xFBC2,0xA4B0,0x0000, /* 124AE */ +0xFBC2,0xA4B1,0x0000, 0xFBC2,0xA4B2,0x0000, 0xFBC2,0xA4B3,0x0000, /* 124B1 */ +0xFBC2,0xA4B4,0x0000, 0xFBC2,0xA4B5,0x0000, 0xFBC2,0xA4B6,0x0000, /* 124B4 */ +0xFBC2,0xA4B7,0x0000, 0xFBC2,0xA4B8,0x0000, 0xFBC2,0xA4B9,0x0000, /* 124B7 */ +0xFBC2,0xA4BA,0x0000, 0xFBC2,0xA4BB,0x0000, 0xFBC2,0xA4BC,0x0000, /* 124BA */ +0xFBC2,0xA4BD,0x0000, 0xFBC2,0xA4BE,0x0000, 0xFBC2,0xA4BF,0x0000, /* 124BD */ +0xFBC2,0xA4C0,0x0000, 0xFBC2,0xA4C1,0x0000, 0xFBC2,0xA4C2,0x0000, /* 124C0 */ +0xFBC2,0xA4C3,0x0000, 0xFBC2,0xA4C4,0x0000, 0xFBC2,0xA4C5,0x0000, /* 124C3 */ +0xFBC2,0xA4C6,0x0000, 0xFBC2,0xA4C7,0x0000, 0xFBC2,0xA4C8,0x0000, /* 124C6 */ +0xFBC2,0xA4C9,0x0000, 0xFBC2,0xA4CA,0x0000, 0xFBC2,0xA4CB,0x0000, /* 124C9 */ +0xFBC2,0xA4CC,0x0000, 0xFBC2,0xA4CD,0x0000, 0xFBC2,0xA4CE,0x0000, /* 124CC */ +0xFBC2,0xA4CF,0x0000, 0xFBC2,0xA4D0,0x0000, 0xFBC2,0xA4D1,0x0000, /* 124CF */ +0xFBC2,0xA4D2,0x0000, 0xFBC2,0xA4D3,0x0000, 0xFBC2,0xA4D4,0x0000, /* 124D2 */ +0xFBC2,0xA4D5,0x0000, 0xFBC2,0xA4D6,0x0000, 0xFBC2,0xA4D7,0x0000, /* 124D5 */ +0xFBC2,0xA4D8,0x0000, 0xFBC2,0xA4D9,0x0000, 0xFBC2,0xA4DA,0x0000, /* 124D8 */ +0xFBC2,0xA4DB,0x0000, 0xFBC2,0xA4DC,0x0000, 0xFBC2,0xA4DD,0x0000, /* 124DB */ +0xFBC2,0xA4DE,0x0000, 0xFBC2,0xA4DF,0x0000, 0xFBC2,0xA4E0,0x0000, /* 124DE */ +0xFBC2,0xA4E1,0x0000, 0xFBC2,0xA4E2,0x0000, 0xFBC2,0xA4E3,0x0000, /* 124E1 */ +0xFBC2,0xA4E4,0x0000, 0xFBC2,0xA4E5,0x0000, 0xFBC2,0xA4E6,0x0000, /* 124E4 */ +0xFBC2,0xA4E7,0x0000, 0xFBC2,0xA4E8,0x0000, 0xFBC2,0xA4E9,0x0000, /* 124E7 */ +0xFBC2,0xA4EA,0x0000, 0xFBC2,0xA4EB,0x0000, 0xFBC2,0xA4EC,0x0000, /* 124EA */ +0xFBC2,0xA4ED,0x0000, 0xFBC2,0xA4EE,0x0000, 0xFBC2,0xA4EF,0x0000, /* 124ED */ +0xFBC2,0xA4F0,0x0000, 0xFBC2,0xA4F1,0x0000, 0xFBC2,0xA4F2,0x0000, /* 124F0 */ +0xFBC2,0xA4F3,0x0000, 0xFBC2,0xA4F4,0x0000, 0xFBC2,0xA4F5,0x0000, /* 124F3 */ +0xFBC2,0xA4F6,0x0000, 0xFBC2,0xA4F7,0x0000, 0xFBC2,0xA4F8,0x0000, /* 124F6 */ +0xFBC2,0xA4F9,0x0000, 0xFBC2,0xA4FA,0x0000, 0xFBC2,0xA4FB,0x0000, /* 124F9 */ +0xFBC2,0xA4FC,0x0000, 0xFBC2,0xA4FD,0x0000, 0xFBC2,0xA4FE,0x0000, /* 124FC */ +0xFBC2,0xA4FF,0x0000 }; + +static const uint16 uca520_p130[]= { /* 13000 (2 weights per char) */ +0x369C,0x0000, 0x369D,0x0000, 0x369E,0x0000, 0x369F,0x0000, /* 13000 */ +0x36A0,0x0000, 0x36A1,0x0000, 0x36A2,0x0000, 0x36A3,0x0000, /* 13004 */ +0x36A4,0x0000, 0x36A5,0x0000, 0x36A6,0x0000, 0x36A7,0x0000, /* 13008 */ +0x36A8,0x0000, 0x36A9,0x0000, 0x36AA,0x0000, 0x36AB,0x0000, /* 1300C */ +0x36AC,0x0000, 0x36AD,0x0000, 0x36AE,0x0000, 0x36AF,0x0000, /* 13010 */ +0x36B0,0x0000, 0x36B1,0x0000, 0x36B2,0x0000, 0x36B3,0x0000, /* 13014 */ +0x36B4,0x0000, 0x36B5,0x0000, 0x36B6,0x0000, 0x36B7,0x0000, /* 13018 */ +0x36B8,0x0000, 0x36B9,0x0000, 0x36BA,0x0000, 0x36BB,0x0000, /* 1301C */ +0x36BC,0x0000, 0x36BD,0x0000, 0x36BE,0x0000, 0x36BF,0x0000, /* 13020 */ +0x36C0,0x0000, 0x36C1,0x0000, 0x36C2,0x0000, 0x36C3,0x0000, /* 13024 */ +0x36C4,0x0000, 0x36C5,0x0000, 0x36C6,0x0000, 0x36C7,0x0000, /* 13028 */ +0x36C8,0x0000, 0x36C9,0x0000, 0x36CA,0x0000, 0x36CB,0x0000, /* 1302C */ +0x36CC,0x0000, 0x36CD,0x0000, 0x36CE,0x0000, 0x36CF,0x0000, /* 13030 */ +0x36D0,0x0000, 0x36D1,0x0000, 0x36D2,0x0000, 0x36D3,0x0000, /* 13034 */ +0x36D4,0x0000, 0x36D5,0x0000, 0x36D6,0x0000, 0x36D7,0x0000, /* 13038 */ +0x36D8,0x0000, 0x36D9,0x0000, 0x36DA,0x0000, 0x36DB,0x0000, /* 1303C */ +0x36DC,0x0000, 0x36DD,0x0000, 0x36DE,0x0000, 0x36DF,0x0000, /* 13040 */ +0x36E0,0x0000, 0x36E1,0x0000, 0x36E2,0x0000, 0x36E3,0x0000, /* 13044 */ +0x36E4,0x0000, 0x36E5,0x0000, 0x36E6,0x0000, 0x36E7,0x0000, /* 13048 */ +0x36E8,0x0000, 0x36E9,0x0000, 0x36EA,0x0000, 0x36EB,0x0000, /* 1304C */ +0x36EC,0x0000, 0x36ED,0x0000, 0x36EE,0x0000, 0x36EF,0x0000, /* 13050 */ +0x36F0,0x0000, 0x36F1,0x0000, 0x36F2,0x0000, 0x36F3,0x0000, /* 13054 */ +0x36F4,0x0000, 0x36F5,0x0000, 0x36F6,0x0000, 0x36F7,0x0000, /* 13058 */ +0x36F8,0x0000, 0x36F9,0x0000, 0x36FA,0x0000, 0x36FB,0x0000, /* 1305C */ +0x36FC,0x0000, 0x36FD,0x0000, 0x36FE,0x0000, 0x36FF,0x0000, /* 13060 */ +0x3700,0x0000, 0x3701,0x0000, 0x3702,0x0000, 0x3703,0x0000, /* 13064 */ +0x3704,0x0000, 0x3705,0x0000, 0x3706,0x0000, 0x3707,0x0000, /* 13068 */ +0x3708,0x0000, 0x3709,0x0000, 0x370A,0x0000, 0x370B,0x0000, /* 1306C */ +0x370C,0x0000, 0x370D,0x0000, 0x370E,0x0000, 0x370F,0x0000, /* 13070 */ +0x3710,0x0000, 0x3711,0x0000, 0x3712,0x0000, 0x3713,0x0000, /* 13074 */ +0x3714,0x0000, 0x3715,0x0000, 0x3716,0x0000, 0x3717,0x0000, /* 13078 */ +0x3718,0x0000, 0x3719,0x0000, 0x371A,0x0000, 0x371B,0x0000, /* 1307C */ +0x371C,0x0000, 0x371D,0x0000, 0x371E,0x0000, 0x371F,0x0000, /* 13080 */ +0x3720,0x0000, 0x3721,0x0000, 0x3722,0x0000, 0x3723,0x0000, /* 13084 */ +0x3724,0x0000, 0x3725,0x0000, 0x3726,0x0000, 0x3727,0x0000, /* 13088 */ +0x3728,0x0000, 0x3729,0x0000, 0x372A,0x0000, 0x372B,0x0000, /* 1308C */ +0x372C,0x0000, 0x372D,0x0000, 0x372E,0x0000, 0x372F,0x0000, /* 13090 */ +0x3730,0x0000, 0x3731,0x0000, 0x3732,0x0000, 0x3733,0x0000, /* 13094 */ +0x3734,0x0000, 0x3735,0x0000, 0x3736,0x0000, 0x3737,0x0000, /* 13098 */ +0x3738,0x0000, 0x3739,0x0000, 0x373A,0x0000, 0x373B,0x0000, /* 1309C */ +0x373C,0x0000, 0x373D,0x0000, 0x373E,0x0000, 0x373F,0x0000, /* 130A0 */ +0x3740,0x0000, 0x3741,0x0000, 0x3742,0x0000, 0x3743,0x0000, /* 130A4 */ +0x3744,0x0000, 0x3745,0x0000, 0x3746,0x0000, 0x3747,0x0000, /* 130A8 */ +0x3748,0x0000, 0x3749,0x0000, 0x374A,0x0000, 0x374B,0x0000, /* 130AC */ +0x374C,0x0000, 0x374D,0x0000, 0x374E,0x0000, 0x374F,0x0000, /* 130B0 */ +0x3750,0x0000, 0x3751,0x0000, 0x3752,0x0000, 0x3753,0x0000, /* 130B4 */ +0x3754,0x0000, 0x3755,0x0000, 0x3756,0x0000, 0x3757,0x0000, /* 130B8 */ +0x3758,0x0000, 0x3759,0x0000, 0x375A,0x0000, 0x375B,0x0000, /* 130BC */ +0x375C,0x0000, 0x375D,0x0000, 0x375E,0x0000, 0x375F,0x0000, /* 130C0 */ +0x3760,0x0000, 0x3761,0x0000, 0x3762,0x0000, 0x3763,0x0000, /* 130C4 */ +0x3764,0x0000, 0x3765,0x0000, 0x3766,0x0000, 0x3767,0x0000, /* 130C8 */ +0x3768,0x0000, 0x3769,0x0000, 0x376A,0x0000, 0x376B,0x0000, /* 130CC */ +0x376C,0x0000, 0x376D,0x0000, 0x376E,0x0000, 0x376F,0x0000, /* 130D0 */ +0x3770,0x0000, 0x3771,0x0000, 0x3772,0x0000, 0x3773,0x0000, /* 130D4 */ +0x3774,0x0000, 0x3775,0x0000, 0x3776,0x0000, 0x3777,0x0000, /* 130D8 */ +0x3778,0x0000, 0x3779,0x0000, 0x377A,0x0000, 0x377B,0x0000, /* 130DC */ +0x377C,0x0000, 0x377D,0x0000, 0x377E,0x0000, 0x377F,0x0000, /* 130E0 */ +0x3780,0x0000, 0x3781,0x0000, 0x3782,0x0000, 0x3783,0x0000, /* 130E4 */ +0x3784,0x0000, 0x3785,0x0000, 0x3786,0x0000, 0x3787,0x0000, /* 130E8 */ +0x3788,0x0000, 0x3789,0x0000, 0x378A,0x0000, 0x378B,0x0000, /* 130EC */ +0x378C,0x0000, 0x378D,0x0000, 0x378E,0x0000, 0x378F,0x0000, /* 130F0 */ +0x3790,0x0000, 0x3791,0x0000, 0x3792,0x0000, 0x3793,0x0000, /* 130F4 */ +0x3794,0x0000, 0x3795,0x0000, 0x3796,0x0000, 0x3797,0x0000, /* 130F8 */ +0x3798,0x0000, 0x3799,0x0000, 0x379A,0x0000, 0x379B,0x0000 /* 130FC */ +}; + +static const uint16 uca520_p131[]= { /* 13100 (2 weights per char) */ +0x379C,0x0000, 0x379D,0x0000, 0x379E,0x0000, 0x379F,0x0000, /* 13100 */ +0x37A0,0x0000, 0x37A1,0x0000, 0x37A2,0x0000, 0x37A3,0x0000, /* 13104 */ +0x37A4,0x0000, 0x37A5,0x0000, 0x37A6,0x0000, 0x37A7,0x0000, /* 13108 */ +0x37A8,0x0000, 0x37A9,0x0000, 0x37AA,0x0000, 0x37AB,0x0000, /* 1310C */ +0x37AC,0x0000, 0x37AD,0x0000, 0x37AE,0x0000, 0x37AF,0x0000, /* 13110 */ +0x37B0,0x0000, 0x37B1,0x0000, 0x37B2,0x0000, 0x37B3,0x0000, /* 13114 */ +0x37B4,0x0000, 0x37B5,0x0000, 0x37B6,0x0000, 0x37B7,0x0000, /* 13118 */ +0x37B8,0x0000, 0x37B9,0x0000, 0x37BA,0x0000, 0x37BB,0x0000, /* 1311C */ +0x37BC,0x0000, 0x37BD,0x0000, 0x37BE,0x0000, 0x37BF,0x0000, /* 13120 */ +0x37C0,0x0000, 0x37C1,0x0000, 0x37C2,0x0000, 0x37C3,0x0000, /* 13124 */ +0x37C4,0x0000, 0x37C5,0x0000, 0x37C6,0x0000, 0x37C7,0x0000, /* 13128 */ +0x37C8,0x0000, 0x37C9,0x0000, 0x37CA,0x0000, 0x37CB,0x0000, /* 1312C */ +0x37CC,0x0000, 0x37CD,0x0000, 0x37CE,0x0000, 0x37CF,0x0000, /* 13130 */ +0x37D0,0x0000, 0x37D1,0x0000, 0x37D2,0x0000, 0x37D3,0x0000, /* 13134 */ +0x37D4,0x0000, 0x37D5,0x0000, 0x37D6,0x0000, 0x37D7,0x0000, /* 13138 */ +0x37D8,0x0000, 0x37D9,0x0000, 0x37DA,0x0000, 0x37DB,0x0000, /* 1313C */ +0x37DC,0x0000, 0x37DD,0x0000, 0x37DE,0x0000, 0x37DF,0x0000, /* 13140 */ +0x37E0,0x0000, 0x37E1,0x0000, 0x37E2,0x0000, 0x37E3,0x0000, /* 13144 */ +0x37E4,0x0000, 0x37E5,0x0000, 0x37E6,0x0000, 0x37E7,0x0000, /* 13148 */ +0x37E8,0x0000, 0x37E9,0x0000, 0x37EA,0x0000, 0x37EB,0x0000, /* 1314C */ +0x37EC,0x0000, 0x37ED,0x0000, 0x37EE,0x0000, 0x37EF,0x0000, /* 13150 */ +0x37F0,0x0000, 0x37F1,0x0000, 0x37F2,0x0000, 0x37F3,0x0000, /* 13154 */ +0x37F4,0x0000, 0x37F5,0x0000, 0x37F6,0x0000, 0x37F7,0x0000, /* 13158 */ +0x37F8,0x0000, 0x37F9,0x0000, 0x37FA,0x0000, 0x37FB,0x0000, /* 1315C */ +0x37FC,0x0000, 0x37FD,0x0000, 0x37FE,0x0000, 0x37FF,0x0000, /* 13160 */ +0x3800,0x0000, 0x3801,0x0000, 0x3802,0x0000, 0x3803,0x0000, /* 13164 */ +0x3804,0x0000, 0x3805,0x0000, 0x3806,0x0000, 0x3807,0x0000, /* 13168 */ +0x3808,0x0000, 0x3809,0x0000, 0x380A,0x0000, 0x380B,0x0000, /* 1316C */ +0x380C,0x0000, 0x380D,0x0000, 0x380E,0x0000, 0x380F,0x0000, /* 13170 */ +0x3810,0x0000, 0x3811,0x0000, 0x3812,0x0000, 0x3813,0x0000, /* 13174 */ +0x3814,0x0000, 0x3815,0x0000, 0x3816,0x0000, 0x3817,0x0000, /* 13178 */ +0x3818,0x0000, 0x3819,0x0000, 0x381A,0x0000, 0x381B,0x0000, /* 1317C */ +0x381C,0x0000, 0x381D,0x0000, 0x381E,0x0000, 0x381F,0x0000, /* 13180 */ +0x3820,0x0000, 0x3821,0x0000, 0x3822,0x0000, 0x3823,0x0000, /* 13184 */ +0x3824,0x0000, 0x3825,0x0000, 0x3826,0x0000, 0x3827,0x0000, /* 13188 */ +0x3828,0x0000, 0x3829,0x0000, 0x382A,0x0000, 0x382B,0x0000, /* 1318C */ +0x382C,0x0000, 0x382D,0x0000, 0x382E,0x0000, 0x382F,0x0000, /* 13190 */ +0x3830,0x0000, 0x3831,0x0000, 0x3832,0x0000, 0x3833,0x0000, /* 13194 */ +0x3834,0x0000, 0x3835,0x0000, 0x3836,0x0000, 0x3837,0x0000, /* 13198 */ +0x3838,0x0000, 0x3839,0x0000, 0x383A,0x0000, 0x383B,0x0000, /* 1319C */ +0x383C,0x0000, 0x383D,0x0000, 0x383E,0x0000, 0x383F,0x0000, /* 131A0 */ +0x3840,0x0000, 0x3841,0x0000, 0x3842,0x0000, 0x3843,0x0000, /* 131A4 */ +0x3844,0x0000, 0x3845,0x0000, 0x3846,0x0000, 0x3847,0x0000, /* 131A8 */ +0x3848,0x0000, 0x3849,0x0000, 0x384A,0x0000, 0x384B,0x0000, /* 131AC */ +0x384C,0x0000, 0x384D,0x0000, 0x384E,0x0000, 0x384F,0x0000, /* 131B0 */ +0x3850,0x0000, 0x3851,0x0000, 0x3852,0x0000, 0x3853,0x0000, /* 131B4 */ +0x3854,0x0000, 0x3855,0x0000, 0x3856,0x0000, 0x3857,0x0000, /* 131B8 */ +0x3858,0x0000, 0x3859,0x0000, 0x385A,0x0000, 0x385B,0x0000, /* 131BC */ +0x385C,0x0000, 0x385D,0x0000, 0x385E,0x0000, 0x385F,0x0000, /* 131C0 */ +0x3860,0x0000, 0x3861,0x0000, 0x3862,0x0000, 0x3863,0x0000, /* 131C4 */ +0x3864,0x0000, 0x3865,0x0000, 0x3866,0x0000, 0x3867,0x0000, /* 131C8 */ +0x3868,0x0000, 0x3869,0x0000, 0x386A,0x0000, 0x386B,0x0000, /* 131CC */ +0x386C,0x0000, 0x386D,0x0000, 0x386E,0x0000, 0x386F,0x0000, /* 131D0 */ +0x3870,0x0000, 0x3871,0x0000, 0x3872,0x0000, 0x3873,0x0000, /* 131D4 */ +0x3874,0x0000, 0x3875,0x0000, 0x3876,0x0000, 0x3877,0x0000, /* 131D8 */ +0x3878,0x0000, 0x3879,0x0000, 0x387A,0x0000, 0x387B,0x0000, /* 131DC */ +0x387C,0x0000, 0x387D,0x0000, 0x387E,0x0000, 0x387F,0x0000, /* 131E0 */ +0x3880,0x0000, 0x3881,0x0000, 0x3882,0x0000, 0x3883,0x0000, /* 131E4 */ +0x3884,0x0000, 0x3885,0x0000, 0x3886,0x0000, 0x3887,0x0000, /* 131E8 */ +0x3888,0x0000, 0x3889,0x0000, 0x388A,0x0000, 0x388B,0x0000, /* 131EC */ +0x388C,0x0000, 0x388D,0x0000, 0x388E,0x0000, 0x388F,0x0000, /* 131F0 */ +0x3890,0x0000, 0x3891,0x0000, 0x3892,0x0000, 0x3893,0x0000, /* 131F4 */ +0x3894,0x0000, 0x3895,0x0000, 0x3896,0x0000, 0x3897,0x0000, /* 131F8 */ +0x3898,0x0000, 0x3899,0x0000, 0x389A,0x0000, 0x389B,0x0000 /* 131FC */ +}; + +static const uint16 uca520_p132[]= { /* 13200 (2 weights per char) */ +0x389C,0x0000, 0x389D,0x0000, 0x389E,0x0000, 0x389F,0x0000, /* 13200 */ +0x38A0,0x0000, 0x38A1,0x0000, 0x38A2,0x0000, 0x38A3,0x0000, /* 13204 */ +0x38A4,0x0000, 0x38A5,0x0000, 0x38A6,0x0000, 0x38A7,0x0000, /* 13208 */ +0x38A8,0x0000, 0x38A9,0x0000, 0x38AA,0x0000, 0x38AB,0x0000, /* 1320C */ +0x38AC,0x0000, 0x38AD,0x0000, 0x38AE,0x0000, 0x38AF,0x0000, /* 13210 */ +0x38B0,0x0000, 0x38B1,0x0000, 0x38B2,0x0000, 0x38B3,0x0000, /* 13214 */ +0x38B4,0x0000, 0x38B5,0x0000, 0x38B6,0x0000, 0x38B7,0x0000, /* 13218 */ +0x38B8,0x0000, 0x38B9,0x0000, 0x38BA,0x0000, 0x38BB,0x0000, /* 1321C */ +0x38BC,0x0000, 0x38BD,0x0000, 0x38BE,0x0000, 0x38BF,0x0000, /* 13220 */ +0x38C0,0x0000, 0x38C1,0x0000, 0x38C2,0x0000, 0x38C3,0x0000, /* 13224 */ +0x38C4,0x0000, 0x38C5,0x0000, 0x38C6,0x0000, 0x38C7,0x0000, /* 13228 */ +0x38C8,0x0000, 0x38C9,0x0000, 0x38CA,0x0000, 0x38CB,0x0000, /* 1322C */ +0x38CC,0x0000, 0x38CD,0x0000, 0x38CE,0x0000, 0x38CF,0x0000, /* 13230 */ +0x38D0,0x0000, 0x38D1,0x0000, 0x38D2,0x0000, 0x38D3,0x0000, /* 13234 */ +0x38D4,0x0000, 0x38D5,0x0000, 0x38D6,0x0000, 0x38D7,0x0000, /* 13238 */ +0x38D8,0x0000, 0x38D9,0x0000, 0x38DA,0x0000, 0x38DB,0x0000, /* 1323C */ +0x38DC,0x0000, 0x38DD,0x0000, 0x38DE,0x0000, 0x38DF,0x0000, /* 13240 */ +0x38E0,0x0000, 0x38E1,0x0000, 0x38E2,0x0000, 0x38E3,0x0000, /* 13244 */ +0x38E4,0x0000, 0x38E5,0x0000, 0x38E6,0x0000, 0x38E7,0x0000, /* 13248 */ +0x38E8,0x0000, 0x38E9,0x0000, 0x38EA,0x0000, 0x38EB,0x0000, /* 1324C */ +0x38EC,0x0000, 0x38ED,0x0000, 0x38EE,0x0000, 0x38EF,0x0000, /* 13250 */ +0x38F0,0x0000, 0x38F1,0x0000, 0x38F2,0x0000, 0x38F3,0x0000, /* 13254 */ +0x38F4,0x0000, 0x38F5,0x0000, 0x38F6,0x0000, 0x38F7,0x0000, /* 13258 */ +0x38F8,0x0000, 0x38F9,0x0000, 0x38FA,0x0000, 0x38FB,0x0000, /* 1325C */ +0x38FC,0x0000, 0x38FD,0x0000, 0x38FE,0x0000, 0x38FF,0x0000, /* 13260 */ +0x3900,0x0000, 0x3901,0x0000, 0x3902,0x0000, 0x3903,0x0000, /* 13264 */ +0x3904,0x0000, 0x3905,0x0000, 0x3906,0x0000, 0x3907,0x0000, /* 13268 */ +0x3908,0x0000, 0x3909,0x0000, 0x390A,0x0000, 0x390B,0x0000, /* 1326C */ +0x390C,0x0000, 0x390D,0x0000, 0x390E,0x0000, 0x390F,0x0000, /* 13270 */ +0x3910,0x0000, 0x3911,0x0000, 0x3912,0x0000, 0x3913,0x0000, /* 13274 */ +0x3914,0x0000, 0x3915,0x0000, 0x3916,0x0000, 0x3917,0x0000, /* 13278 */ +0x3918,0x0000, 0x3919,0x0000, 0x391A,0x0000, 0x391B,0x0000, /* 1327C */ +0x391C,0x0000, 0x391D,0x0000, 0x391E,0x0000, 0x391F,0x0000, /* 13280 */ +0x3920,0x0000, 0x3921,0x0000, 0x3922,0x0000, 0x3923,0x0000, /* 13284 */ +0x3924,0x0000, 0x3925,0x0000, 0x3926,0x0000, 0x3927,0x0000, /* 13288 */ +0x3928,0x0000, 0x3929,0x0000, 0x392A,0x0000, 0x392B,0x0000, /* 1328C */ +0x392C,0x0000, 0x392D,0x0000, 0x392E,0x0000, 0x392F,0x0000, /* 13290 */ +0x3930,0x0000, 0x3931,0x0000, 0x3932,0x0000, 0x3933,0x0000, /* 13294 */ +0x3934,0x0000, 0x3935,0x0000, 0x3936,0x0000, 0x3937,0x0000, /* 13298 */ +0x3938,0x0000, 0x3939,0x0000, 0x393A,0x0000, 0x393B,0x0000, /* 1329C */ +0x393C,0x0000, 0x393D,0x0000, 0x393E,0x0000, 0x393F,0x0000, /* 132A0 */ +0x3940,0x0000, 0x3941,0x0000, 0x3942,0x0000, 0x3943,0x0000, /* 132A4 */ +0x3944,0x0000, 0x3945,0x0000, 0x3946,0x0000, 0x3947,0x0000, /* 132A8 */ +0x3948,0x0000, 0x3949,0x0000, 0x394A,0x0000, 0x394B,0x0000, /* 132AC */ +0x394C,0x0000, 0x394D,0x0000, 0x394E,0x0000, 0x394F,0x0000, /* 132B0 */ +0x3950,0x0000, 0x3951,0x0000, 0x3952,0x0000, 0x3953,0x0000, /* 132B4 */ +0x3954,0x0000, 0x3955,0x0000, 0x3956,0x0000, 0x3957,0x0000, /* 132B8 */ +0x3958,0x0000, 0x3959,0x0000, 0x395A,0x0000, 0x395B,0x0000, /* 132BC */ +0x395C,0x0000, 0x395D,0x0000, 0x395E,0x0000, 0x395F,0x0000, /* 132C0 */ +0x3960,0x0000, 0x3961,0x0000, 0x3962,0x0000, 0x3963,0x0000, /* 132C4 */ +0x3964,0x0000, 0x3965,0x0000, 0x3966,0x0000, 0x3967,0x0000, /* 132C8 */ +0x3968,0x0000, 0x3969,0x0000, 0x396A,0x0000, 0x396B,0x0000, /* 132CC */ +0x396C,0x0000, 0x396D,0x0000, 0x396E,0x0000, 0x396F,0x0000, /* 132D0 */ +0x3970,0x0000, 0x3971,0x0000, 0x3972,0x0000, 0x3973,0x0000, /* 132D4 */ +0x3974,0x0000, 0x3975,0x0000, 0x3976,0x0000, 0x3977,0x0000, /* 132D8 */ +0x3978,0x0000, 0x3979,0x0000, 0x397A,0x0000, 0x397B,0x0000, /* 132DC */ +0x397C,0x0000, 0x397D,0x0000, 0x397E,0x0000, 0x397F,0x0000, /* 132E0 */ +0x3980,0x0000, 0x3981,0x0000, 0x3982,0x0000, 0x3983,0x0000, /* 132E4 */ +0x3984,0x0000, 0x3985,0x0000, 0x3986,0x0000, 0x3987,0x0000, /* 132E8 */ +0x3988,0x0000, 0x3989,0x0000, 0x398A,0x0000, 0x398B,0x0000, /* 132EC */ +0x398C,0x0000, 0x398D,0x0000, 0x398E,0x0000, 0x398F,0x0000, /* 132F0 */ +0x3990,0x0000, 0x3991,0x0000, 0x3992,0x0000, 0x3993,0x0000, /* 132F4 */ +0x3994,0x0000, 0x3995,0x0000, 0x3996,0x0000, 0x3997,0x0000, /* 132F8 */ +0x3998,0x0000, 0x3999,0x0000, 0x399A,0x0000, 0x399B,0x0000 /* 132FC */ +}; + +static const uint16 uca520_p133[]= { /* 13300 (2 weights per char) */ +0x399C,0x0000, 0x399D,0x0000, 0x399E,0x0000, 0x399F,0x0000, /* 13300 */ +0x39A0,0x0000, 0x39A1,0x0000, 0x39A2,0x0000, 0x39A3,0x0000, /* 13304 */ +0x39A4,0x0000, 0x39A5,0x0000, 0x39A6,0x0000, 0x39A7,0x0000, /* 13308 */ +0x39A8,0x0000, 0x39A9,0x0000, 0x39AA,0x0000, 0x39AB,0x0000, /* 1330C */ +0x39AC,0x0000, 0x39AD,0x0000, 0x39AE,0x0000, 0x39AF,0x0000, /* 13310 */ +0x39B0,0x0000, 0x39B1,0x0000, 0x39B2,0x0000, 0x39B3,0x0000, /* 13314 */ +0x39B4,0x0000, 0x39B5,0x0000, 0x39B6,0x0000, 0x39B7,0x0000, /* 13318 */ +0x39B8,0x0000, 0x39B9,0x0000, 0x39BA,0x0000, 0x39BB,0x0000, /* 1331C */ +0x39BC,0x0000, 0x39BD,0x0000, 0x39BE,0x0000, 0x39BF,0x0000, /* 13320 */ +0x39C0,0x0000, 0x39C1,0x0000, 0x39C2,0x0000, 0x39C3,0x0000, /* 13324 */ +0x39C4,0x0000, 0x39C5,0x0000, 0x39C6,0x0000, 0x39C7,0x0000, /* 13328 */ +0x39C8,0x0000, 0x39C9,0x0000, 0x39CA,0x0000, 0x39CB,0x0000, /* 1332C */ +0x39CC,0x0000, 0x39CD,0x0000, 0x39CE,0x0000, 0x39CF,0x0000, /* 13330 */ +0x39D0,0x0000, 0x39D1,0x0000, 0x39D2,0x0000, 0x39D3,0x0000, /* 13334 */ +0x39D4,0x0000, 0x39D5,0x0000, 0x39D6,0x0000, 0x39D7,0x0000, /* 13338 */ +0x39D8,0x0000, 0x39D9,0x0000, 0x39DA,0x0000, 0x39DB,0x0000, /* 1333C */ +0x39DC,0x0000, 0x39DD,0x0000, 0x39DE,0x0000, 0x39DF,0x0000, /* 13340 */ +0x39E0,0x0000, 0x39E1,0x0000, 0x39E2,0x0000, 0x39E3,0x0000, /* 13344 */ +0x39E4,0x0000, 0x39E5,0x0000, 0x39E6,0x0000, 0x39E7,0x0000, /* 13348 */ +0x39E8,0x0000, 0x39E9,0x0000, 0x39EA,0x0000, 0x39EB,0x0000, /* 1334C */ +0x39EC,0x0000, 0x39ED,0x0000, 0x39EE,0x0000, 0x39EF,0x0000, /* 13350 */ +0x39F0,0x0000, 0x39F1,0x0000, 0x39F2,0x0000, 0x39F3,0x0000, /* 13354 */ +0x39F4,0x0000, 0x39F5,0x0000, 0x39F6,0x0000, 0x39F7,0x0000, /* 13358 */ +0x39F8,0x0000, 0x39F9,0x0000, 0x39FA,0x0000, 0x39FB,0x0000, /* 1335C */ +0x39FC,0x0000, 0x39FD,0x0000, 0x39FE,0x0000, 0x39FF,0x0000, /* 13360 */ +0x3A00,0x0000, 0x3A01,0x0000, 0x3A02,0x0000, 0x3A03,0x0000, /* 13364 */ +0x3A04,0x0000, 0x3A05,0x0000, 0x3A06,0x0000, 0x3A07,0x0000, /* 13368 */ +0x3A08,0x0000, 0x3A09,0x0000, 0x3A0A,0x0000, 0x3A0B,0x0000, /* 1336C */ +0x3A0C,0x0000, 0x3A0D,0x0000, 0x3A0E,0x0000, 0x3A0F,0x0000, /* 13370 */ +0x3A10,0x0000, 0x3A11,0x0000, 0x3A12,0x0000, 0x3A13,0x0000, /* 13374 */ +0x3A14,0x0000, 0x3A15,0x0000, 0x3A16,0x0000, 0x3A17,0x0000, /* 13378 */ +0x3A18,0x0000, 0x3A19,0x0000, 0x3A1A,0x0000, 0x3A1B,0x0000, /* 1337C */ +0x3A1C,0x0000, 0x3A1D,0x0000, 0x3A1E,0x0000, 0x3A1F,0x0000, /* 13380 */ +0x3A20,0x0000, 0x3A21,0x0000, 0x3A22,0x0000, 0x3A23,0x0000, /* 13384 */ +0x3A24,0x0000, 0x3A25,0x0000, 0x3A26,0x0000, 0x3A27,0x0000, /* 13388 */ +0x3A28,0x0000, 0x3A29,0x0000, 0x3A2A,0x0000, 0x3A2B,0x0000, /* 1338C */ +0x3A2C,0x0000, 0x3A2D,0x0000, 0x3A2E,0x0000, 0x3A2F,0x0000, /* 13390 */ +0x3A30,0x0000, 0x3A31,0x0000, 0x3A32,0x0000, 0x3A33,0x0000, /* 13394 */ +0x3A34,0x0000, 0x3A35,0x0000, 0x3A36,0x0000, 0x3A37,0x0000, /* 13398 */ +0x3A38,0x0000, 0x3A39,0x0000, 0x3A3A,0x0000, 0x3A3B,0x0000, /* 1339C */ +0x3A3C,0x0000, 0x3A3D,0x0000, 0x3A3E,0x0000, 0x3A3F,0x0000, /* 133A0 */ +0x3A40,0x0000, 0x3A41,0x0000, 0x3A42,0x0000, 0x3A43,0x0000, /* 133A4 */ +0x3A44,0x0000, 0x3A45,0x0000, 0x3A46,0x0000, 0x3A47,0x0000, /* 133A8 */ +0x3A48,0x0000, 0x3A49,0x0000, 0x3A4A,0x0000, 0x3A4B,0x0000, /* 133AC */ +0x3A4C,0x0000, 0x3A4D,0x0000, 0x3A4E,0x0000, 0x3A4F,0x0000, /* 133B0 */ +0x3A50,0x0000, 0x3A51,0x0000, 0x3A52,0x0000, 0x3A53,0x0000, /* 133B4 */ +0x3A54,0x0000, 0x3A55,0x0000, 0x3A56,0x0000, 0x3A57,0x0000, /* 133B8 */ +0x3A58,0x0000, 0x3A59,0x0000, 0x3A5A,0x0000, 0x3A5B,0x0000, /* 133BC */ +0x3A5C,0x0000, 0x3A5D,0x0000, 0x3A5E,0x0000, 0x3A5F,0x0000, /* 133C0 */ +0x3A60,0x0000, 0x3A61,0x0000, 0x3A62,0x0000, 0x3A63,0x0000, /* 133C4 */ +0x3A64,0x0000, 0x3A65,0x0000, 0x3A66,0x0000, 0x3A67,0x0000, /* 133C8 */ +0x3A68,0x0000, 0x3A69,0x0000, 0x3A6A,0x0000, 0x3A6B,0x0000, /* 133CC */ +0x3A6C,0x0000, 0x3A6D,0x0000, 0x3A6E,0x0000, 0x3A6F,0x0000, /* 133D0 */ +0x3A70,0x0000, 0x3A71,0x0000, 0x3A72,0x0000, 0x3A73,0x0000, /* 133D4 */ +0x3A74,0x0000, 0x3A75,0x0000, 0x3A76,0x0000, 0x3A77,0x0000, /* 133D8 */ +0x3A78,0x0000, 0x3A79,0x0000, 0x3A7A,0x0000, 0x3A7B,0x0000, /* 133DC */ +0x3A7C,0x0000, 0x3A7D,0x0000, 0x3A7E,0x0000, 0x3A7F,0x0000, /* 133E0 */ +0x3A80,0x0000, 0x3A81,0x0000, 0x3A82,0x0000, 0x3A83,0x0000, /* 133E4 */ +0x3A84,0x0000, 0x3A85,0x0000, 0x3A86,0x0000, 0x3A87,0x0000, /* 133E8 */ +0x3A88,0x0000, 0x3A89,0x0000, 0x3A8A,0x0000, 0x3A8B,0x0000, /* 133EC */ +0x3A8C,0x0000, 0x3A8D,0x0000, 0x3A8E,0x0000, 0x3A8F,0x0000, /* 133F0 */ +0x3A90,0x0000, 0x3A91,0x0000, 0x3A92,0x0000, 0x3A93,0x0000, /* 133F4 */ +0x3A94,0x0000, 0x3A95,0x0000, 0x3A96,0x0000, 0x3A97,0x0000, /* 133F8 */ +0x3A98,0x0000, 0x3A99,0x0000, 0x3A9A,0x0000, 0x3A9B,0x0000 /* 133FC */ +}; + +static const uint16 uca520_p134[]= { /* 13400 (3 weights per char) */ +0x3A9C,0x0000,0x0000, 0x3A9D,0x0000,0x0000, 0x3A9E,0x0000,0x0000, /* 13400 */ +0x3A9F,0x0000,0x0000, 0x3AA0,0x0000,0x0000, 0x3AA1,0x0000,0x0000, /* 13403 */ +0x3AA2,0x0000,0x0000, 0x3AA3,0x0000,0x0000, 0x3AA4,0x0000,0x0000, /* 13406 */ +0x3AA5,0x0000,0x0000, 0x3AA6,0x0000,0x0000, 0x3AA7,0x0000,0x0000, /* 13409 */ +0x3AA8,0x0000,0x0000, 0x3AA9,0x0000,0x0000, 0x3AAA,0x0000,0x0000, /* 1340C */ +0x3AAB,0x0000,0x0000, 0x3AAC,0x0000,0x0000, 0x3AAD,0x0000,0x0000, /* 1340F */ +0x3AAE,0x0000,0x0000, 0x3AAF,0x0000,0x0000, 0x3AB0,0x0000,0x0000, /* 13412 */ +0x3AB1,0x0000,0x0000, 0x3AB2,0x0000,0x0000, 0x3AB3,0x0000,0x0000, /* 13415 */ +0x3AB4,0x0000,0x0000, 0x3AB5,0x0000,0x0000, 0x3AB6,0x0000,0x0000, /* 13418 */ +0x3AB7,0x0000,0x0000, 0x3AB8,0x0000,0x0000, 0x3AB9,0x0000,0x0000, /* 1341B */ +0x3ABA,0x0000,0x0000, 0x3ABB,0x0000,0x0000, 0x3ABC,0x0000,0x0000, /* 1341E */ +0x3ABD,0x0000,0x0000, 0x3ABE,0x0000,0x0000, 0x3ABF,0x0000,0x0000, /* 13421 */ +0x3AC0,0x0000,0x0000, 0x3AC1,0x0000,0x0000, 0x3AC2,0x0000,0x0000, /* 13424 */ +0x3AC3,0x0000,0x0000, 0x3AC4,0x0000,0x0000, 0x3AC5,0x0000,0x0000, /* 13427 */ +0x3AC6,0x0000,0x0000, 0x3AC7,0x0000,0x0000, 0x3AC8,0x0000,0x0000, /* 1342A */ +0x3AC9,0x0000,0x0000, 0x3ACA,0x0000,0x0000, 0xFBC2,0xB42F,0x0000, /* 1342D */ +0xFBC2,0xB430,0x0000, 0xFBC2,0xB431,0x0000, 0xFBC2,0xB432,0x0000, /* 13430 */ +0xFBC2,0xB433,0x0000, 0xFBC2,0xB434,0x0000, 0xFBC2,0xB435,0x0000, /* 13433 */ +0xFBC2,0xB436,0x0000, 0xFBC2,0xB437,0x0000, 0xFBC2,0xB438,0x0000, /* 13436 */ +0xFBC2,0xB439,0x0000, 0xFBC2,0xB43A,0x0000, 0xFBC2,0xB43B,0x0000, /* 13439 */ +0xFBC2,0xB43C,0x0000, 0xFBC2,0xB43D,0x0000, 0xFBC2,0xB43E,0x0000, /* 1343C */ +0xFBC2,0xB43F,0x0000, 0xFBC2,0xB440,0x0000, 0xFBC2,0xB441,0x0000, /* 1343F */ +0xFBC2,0xB442,0x0000, 0xFBC2,0xB443,0x0000, 0xFBC2,0xB444,0x0000, /* 13442 */ +0xFBC2,0xB445,0x0000, 0xFBC2,0xB446,0x0000, 0xFBC2,0xB447,0x0000, /* 13445 */ +0xFBC2,0xB448,0x0000, 0xFBC2,0xB449,0x0000, 0xFBC2,0xB44A,0x0000, /* 13448 */ +0xFBC2,0xB44B,0x0000, 0xFBC2,0xB44C,0x0000, 0xFBC2,0xB44D,0x0000, /* 1344B */ +0xFBC2,0xB44E,0x0000, 0xFBC2,0xB44F,0x0000, 0xFBC2,0xB450,0x0000, /* 1344E */ +0xFBC2,0xB451,0x0000, 0xFBC2,0xB452,0x0000, 0xFBC2,0xB453,0x0000, /* 13451 */ +0xFBC2,0xB454,0x0000, 0xFBC2,0xB455,0x0000, 0xFBC2,0xB456,0x0000, /* 13454 */ +0xFBC2,0xB457,0x0000, 0xFBC2,0xB458,0x0000, 0xFBC2,0xB459,0x0000, /* 13457 */ +0xFBC2,0xB45A,0x0000, 0xFBC2,0xB45B,0x0000, 0xFBC2,0xB45C,0x0000, /* 1345A */ +0xFBC2,0xB45D,0x0000, 0xFBC2,0xB45E,0x0000, 0xFBC2,0xB45F,0x0000, /* 1345D */ +0xFBC2,0xB460,0x0000, 0xFBC2,0xB461,0x0000, 0xFBC2,0xB462,0x0000, /* 13460 */ +0xFBC2,0xB463,0x0000, 0xFBC2,0xB464,0x0000, 0xFBC2,0xB465,0x0000, /* 13463 */ +0xFBC2,0xB466,0x0000, 0xFBC2,0xB467,0x0000, 0xFBC2,0xB468,0x0000, /* 13466 */ +0xFBC2,0xB469,0x0000, 0xFBC2,0xB46A,0x0000, 0xFBC2,0xB46B,0x0000, /* 13469 */ +0xFBC2,0xB46C,0x0000, 0xFBC2,0xB46D,0x0000, 0xFBC2,0xB46E,0x0000, /* 1346C */ +0xFBC2,0xB46F,0x0000, 0xFBC2,0xB470,0x0000, 0xFBC2,0xB471,0x0000, /* 1346F */ +0xFBC2,0xB472,0x0000, 0xFBC2,0xB473,0x0000, 0xFBC2,0xB474,0x0000, /* 13472 */ +0xFBC2,0xB475,0x0000, 0xFBC2,0xB476,0x0000, 0xFBC2,0xB477,0x0000, /* 13475 */ +0xFBC2,0xB478,0x0000, 0xFBC2,0xB479,0x0000, 0xFBC2,0xB47A,0x0000, /* 13478 */ +0xFBC2,0xB47B,0x0000, 0xFBC2,0xB47C,0x0000, 0xFBC2,0xB47D,0x0000, /* 1347B */ +0xFBC2,0xB47E,0x0000, 0xFBC2,0xB47F,0x0000, 0xFBC2,0xB480,0x0000, /* 1347E */ +0xFBC2,0xB481,0x0000, 0xFBC2,0xB482,0x0000, 0xFBC2,0xB483,0x0000, /* 13481 */ +0xFBC2,0xB484,0x0000, 0xFBC2,0xB485,0x0000, 0xFBC2,0xB486,0x0000, /* 13484 */ +0xFBC2,0xB487,0x0000, 0xFBC2,0xB488,0x0000, 0xFBC2,0xB489,0x0000, /* 13487 */ +0xFBC2,0xB48A,0x0000, 0xFBC2,0xB48B,0x0000, 0xFBC2,0xB48C,0x0000, /* 1348A */ +0xFBC2,0xB48D,0x0000, 0xFBC2,0xB48E,0x0000, 0xFBC2,0xB48F,0x0000, /* 1348D */ +0xFBC2,0xB490,0x0000, 0xFBC2,0xB491,0x0000, 0xFBC2,0xB492,0x0000, /* 13490 */ +0xFBC2,0xB493,0x0000, 0xFBC2,0xB494,0x0000, 0xFBC2,0xB495,0x0000, /* 13493 */ +0xFBC2,0xB496,0x0000, 0xFBC2,0xB497,0x0000, 0xFBC2,0xB498,0x0000, /* 13496 */ +0xFBC2,0xB499,0x0000, 0xFBC2,0xB49A,0x0000, 0xFBC2,0xB49B,0x0000, /* 13499 */ +0xFBC2,0xB49C,0x0000, 0xFBC2,0xB49D,0x0000, 0xFBC2,0xB49E,0x0000, /* 1349C */ +0xFBC2,0xB49F,0x0000, 0xFBC2,0xB4A0,0x0000, 0xFBC2,0xB4A1,0x0000, /* 1349F */ +0xFBC2,0xB4A2,0x0000, 0xFBC2,0xB4A3,0x0000, 0xFBC2,0xB4A4,0x0000, /* 134A2 */ +0xFBC2,0xB4A5,0x0000, 0xFBC2,0xB4A6,0x0000, 0xFBC2,0xB4A7,0x0000, /* 134A5 */ +0xFBC2,0xB4A8,0x0000, 0xFBC2,0xB4A9,0x0000, 0xFBC2,0xB4AA,0x0000, /* 134A8 */ +0xFBC2,0xB4AB,0x0000, 0xFBC2,0xB4AC,0x0000, 0xFBC2,0xB4AD,0x0000, /* 134AB */ +0xFBC2,0xB4AE,0x0000, 0xFBC2,0xB4AF,0x0000, 0xFBC2,0xB4B0,0x0000, /* 134AE */ +0xFBC2,0xB4B1,0x0000, 0xFBC2,0xB4B2,0x0000, 0xFBC2,0xB4B3,0x0000, /* 134B1 */ +0xFBC2,0xB4B4,0x0000, 0xFBC2,0xB4B5,0x0000, 0xFBC2,0xB4B6,0x0000, /* 134B4 */ +0xFBC2,0xB4B7,0x0000, 0xFBC2,0xB4B8,0x0000, 0xFBC2,0xB4B9,0x0000, /* 134B7 */ +0xFBC2,0xB4BA,0x0000, 0xFBC2,0xB4BB,0x0000, 0xFBC2,0xB4BC,0x0000, /* 134BA */ +0xFBC2,0xB4BD,0x0000, 0xFBC2,0xB4BE,0x0000, 0xFBC2,0xB4BF,0x0000, /* 134BD */ +0xFBC2,0xB4C0,0x0000, 0xFBC2,0xB4C1,0x0000, 0xFBC2,0xB4C2,0x0000, /* 134C0 */ +0xFBC2,0xB4C3,0x0000, 0xFBC2,0xB4C4,0x0000, 0xFBC2,0xB4C5,0x0000, /* 134C3 */ +0xFBC2,0xB4C6,0x0000, 0xFBC2,0xB4C7,0x0000, 0xFBC2,0xB4C8,0x0000, /* 134C6 */ +0xFBC2,0xB4C9,0x0000, 0xFBC2,0xB4CA,0x0000, 0xFBC2,0xB4CB,0x0000, /* 134C9 */ +0xFBC2,0xB4CC,0x0000, 0xFBC2,0xB4CD,0x0000, 0xFBC2,0xB4CE,0x0000, /* 134CC */ +0xFBC2,0xB4CF,0x0000, 0xFBC2,0xB4D0,0x0000, 0xFBC2,0xB4D1,0x0000, /* 134CF */ +0xFBC2,0xB4D2,0x0000, 0xFBC2,0xB4D3,0x0000, 0xFBC2,0xB4D4,0x0000, /* 134D2 */ +0xFBC2,0xB4D5,0x0000, 0xFBC2,0xB4D6,0x0000, 0xFBC2,0xB4D7,0x0000, /* 134D5 */ +0xFBC2,0xB4D8,0x0000, 0xFBC2,0xB4D9,0x0000, 0xFBC2,0xB4DA,0x0000, /* 134D8 */ +0xFBC2,0xB4DB,0x0000, 0xFBC2,0xB4DC,0x0000, 0xFBC2,0xB4DD,0x0000, /* 134DB */ +0xFBC2,0xB4DE,0x0000, 0xFBC2,0xB4DF,0x0000, 0xFBC2,0xB4E0,0x0000, /* 134DE */ +0xFBC2,0xB4E1,0x0000, 0xFBC2,0xB4E2,0x0000, 0xFBC2,0xB4E3,0x0000, /* 134E1 */ +0xFBC2,0xB4E4,0x0000, 0xFBC2,0xB4E5,0x0000, 0xFBC2,0xB4E6,0x0000, /* 134E4 */ +0xFBC2,0xB4E7,0x0000, 0xFBC2,0xB4E8,0x0000, 0xFBC2,0xB4E9,0x0000, /* 134E7 */ +0xFBC2,0xB4EA,0x0000, 0xFBC2,0xB4EB,0x0000, 0xFBC2,0xB4EC,0x0000, /* 134EA */ +0xFBC2,0xB4ED,0x0000, 0xFBC2,0xB4EE,0x0000, 0xFBC2,0xB4EF,0x0000, /* 134ED */ +0xFBC2,0xB4F0,0x0000, 0xFBC2,0xB4F1,0x0000, 0xFBC2,0xB4F2,0x0000, /* 134F0 */ +0xFBC2,0xB4F3,0x0000, 0xFBC2,0xB4F4,0x0000, 0xFBC2,0xB4F5,0x0000, /* 134F3 */ +0xFBC2,0xB4F6,0x0000, 0xFBC2,0xB4F7,0x0000, 0xFBC2,0xB4F8,0x0000, /* 134F6 */ +0xFBC2,0xB4F9,0x0000, 0xFBC2,0xB4FA,0x0000, 0xFBC2,0xB4FB,0x0000, /* 134F9 */ +0xFBC2,0xB4FC,0x0000, 0xFBC2,0xB4FD,0x0000, 0xFBC2,0xB4FE,0x0000, /* 134FC */ +0xFBC2,0xB4FF,0x0000 }; + +static const uint16 uca520_p1D0[]= { /* 1D000 (3 weights per char) */ +0x0E5F,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E61,0x0000,0x0000, /* 1D000 */ +0x0E62,0x0000,0x0000, 0x0E63,0x0000,0x0000, 0x0E64,0x0000,0x0000, /* 1D003 */ +0x0E65,0x0000,0x0000, 0x0E66,0x0000,0x0000, 0x0E67,0x0000,0x0000, /* 1D006 */ +0x0E68,0x0000,0x0000, 0x0E69,0x0000,0x0000, 0x0E6A,0x0000,0x0000, /* 1D009 */ +0x0E6B,0x0000,0x0000, 0x0E6C,0x0000,0x0000, 0x0E6D,0x0000,0x0000, /* 1D00C */ +0x0E6E,0x0000,0x0000, 0x0E6F,0x0000,0x0000, 0x0E70,0x0000,0x0000, /* 1D00F */ +0x0E71,0x0000,0x0000, 0x0E72,0x0000,0x0000, 0x0E73,0x0000,0x0000, /* 1D012 */ +0x0E74,0x0000,0x0000, 0x0E75,0x0000,0x0000, 0x0E76,0x0000,0x0000, /* 1D015 */ +0x0E77,0x0000,0x0000, 0x0E78,0x0000,0x0000, 0x0E79,0x0000,0x0000, /* 1D018 */ +0x0E7A,0x0000,0x0000, 0x0E7B,0x0000,0x0000, 0x0E7C,0x0000,0x0000, /* 1D01B */ +0x0E7D,0x0000,0x0000, 0x0E7E,0x0000,0x0000, 0x0E7F,0x0000,0x0000, /* 1D01E */ +0x0E80,0x0000,0x0000, 0x0E81,0x0000,0x0000, 0x0E82,0x0000,0x0000, /* 1D021 */ +0x0E83,0x0000,0x0000, 0x0E84,0x0000,0x0000, 0x0E85,0x0000,0x0000, /* 1D024 */ +0x0E86,0x0000,0x0000, 0x0E87,0x0000,0x0000, 0x0E88,0x0000,0x0000, /* 1D027 */ +0x0E89,0x0000,0x0000, 0x0E8A,0x0000,0x0000, 0x0E8B,0x0000,0x0000, /* 1D02A */ +0x0E8C,0x0000,0x0000, 0x0E8D,0x0000,0x0000, 0x0E8E,0x0000,0x0000, /* 1D02D */ +0x0E8F,0x0000,0x0000, 0x0E90,0x0000,0x0000, 0x0E91,0x0000,0x0000, /* 1D030 */ +0x0E92,0x0000,0x0000, 0x0E93,0x0000,0x0000, 0x0E94,0x0000,0x0000, /* 1D033 */ +0x0E95,0x0000,0x0000, 0x0E96,0x0000,0x0000, 0x0E97,0x0000,0x0000, /* 1D036 */ +0x0E98,0x0000,0x0000, 0x0E99,0x0000,0x0000, 0x0E9A,0x0000,0x0000, /* 1D039 */ +0x0E9B,0x0000,0x0000, 0x0E9C,0x0000,0x0000, 0x0E9D,0x0000,0x0000, /* 1D03C */ +0x0E9E,0x0000,0x0000, 0x0E9F,0x0000,0x0000, 0x0EA0,0x0000,0x0000, /* 1D03F */ +0x0EA1,0x0000,0x0000, 0x0EA2,0x0000,0x0000, 0x0EA3,0x0000,0x0000, /* 1D042 */ +0x0EA4,0x0000,0x0000, 0x0EA5,0x0000,0x0000, 0x0EA6,0x0000,0x0000, /* 1D045 */ +0x0EA7,0x0000,0x0000, 0x0EA8,0x0000,0x0000, 0x0EA9,0x0000,0x0000, /* 1D048 */ +0x0EAA,0x0000,0x0000, 0x0EAB,0x0000,0x0000, 0x0EAC,0x0000,0x0000, /* 1D04B */ +0x0EAD,0x0000,0x0000, 0x0EAE,0x0000,0x0000, 0x0EAF,0x0000,0x0000, /* 1D04E */ +0x0EB0,0x0000,0x0000, 0x0EB1,0x0000,0x0000, 0x0EB2,0x0000,0x0000, /* 1D051 */ +0x0EB3,0x0000,0x0000, 0x0EB4,0x0000,0x0000, 0x0EB5,0x0000,0x0000, /* 1D054 */ +0x0EB6,0x0000,0x0000, 0x0EB7,0x0000,0x0000, 0x0EB8,0x0000,0x0000, /* 1D057 */ +0x0EB9,0x0000,0x0000, 0x0EBA,0x0000,0x0000, 0x0EBB,0x0000,0x0000, /* 1D05A */ +0x0EBC,0x0000,0x0000, 0x0EBD,0x0000,0x0000, 0x0EBE,0x0000,0x0000, /* 1D05D */ +0x0EBF,0x0000,0x0000, 0x0EC0,0x0000,0x0000, 0x0EC1,0x0000,0x0000, /* 1D060 */ +0x0EC2,0x0000,0x0000, 0x0EC3,0x0000,0x0000, 0x0EC4,0x0000,0x0000, /* 1D063 */ +0x0EC5,0x0000,0x0000, 0x0EC6,0x0000,0x0000, 0x0EC7,0x0000,0x0000, /* 1D066 */ +0x0EC8,0x0000,0x0000, 0x0EC9,0x0000,0x0000, 0x0ECA,0x0000,0x0000, /* 1D069 */ +0x0ECB,0x0000,0x0000, 0x0ECC,0x0000,0x0000, 0x0ECD,0x0000,0x0000, /* 1D06C */ +0x0ECE,0x0000,0x0000, 0x0ECF,0x0000,0x0000, 0x0ED0,0x0000,0x0000, /* 1D06F */ +0x0ED1,0x0000,0x0000, 0x0ED2,0x0000,0x0000, 0x0ED3,0x0000,0x0000, /* 1D072 */ +0x0ED4,0x0000,0x0000, 0x0ED5,0x0000,0x0000, 0x0ED6,0x0000,0x0000, /* 1D075 */ +0x0ED7,0x0000,0x0000, 0x0ED8,0x0000,0x0000, 0x0ED9,0x0000,0x0000, /* 1D078 */ +0x0EDA,0x0000,0x0000, 0x0EDB,0x0000,0x0000, 0x0EDC,0x0000,0x0000, /* 1D07B */ +0x0EDD,0x0000,0x0000, 0x0EDE,0x0000,0x0000, 0x0EDF,0x0000,0x0000, /* 1D07E */ +0x0EE0,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE2,0x0000,0x0000, /* 1D081 */ +0x0EE3,0x0000,0x0000, 0x0EE4,0x0000,0x0000, 0x0EE5,0x0000,0x0000, /* 1D084 */ +0x0EE6,0x0000,0x0000, 0x0EE7,0x0000,0x0000, 0x0EE8,0x0000,0x0000, /* 1D087 */ +0x0EE9,0x0000,0x0000, 0x0EEA,0x0000,0x0000, 0x0EEB,0x0000,0x0000, /* 1D08A */ +0x0EEC,0x0000,0x0000, 0x0EED,0x0000,0x0000, 0x0EEE,0x0000,0x0000, /* 1D08D */ +0x0EEF,0x0000,0x0000, 0x0EF0,0x0000,0x0000, 0x0EF1,0x0000,0x0000, /* 1D090 */ +0x0EF2,0x0000,0x0000, 0x0EF3,0x0000,0x0000, 0x0EF4,0x0000,0x0000, /* 1D093 */ +0x0EF5,0x0000,0x0000, 0x0EF6,0x0000,0x0000, 0x0EF7,0x0000,0x0000, /* 1D096 */ +0x0EF8,0x0000,0x0000, 0x0EF9,0x0000,0x0000, 0x0EFA,0x0000,0x0000, /* 1D099 */ +0x0EFB,0x0000,0x0000, 0x0EFC,0x0000,0x0000, 0x0EFD,0x0000,0x0000, /* 1D09C */ +0x0EFE,0x0000,0x0000, 0x0EFF,0x0000,0x0000, 0x0F00,0x0000,0x0000, /* 1D09F */ +0x0F01,0x0000,0x0000, 0x0F02,0x0000,0x0000, 0x0F03,0x0000,0x0000, /* 1D0A2 */ +0x0F04,0x0000,0x0000, 0x0F05,0x0000,0x0000, 0x0F06,0x0000,0x0000, /* 1D0A5 */ +0x0F07,0x0000,0x0000, 0x0F08,0x0000,0x0000, 0x0F09,0x0000,0x0000, /* 1D0A8 */ +0x0F0A,0x0000,0x0000, 0x0F0B,0x0000,0x0000, 0x0F0C,0x0000,0x0000, /* 1D0AB */ +0x0F0D,0x0000,0x0000, 0x0F0E,0x0000,0x0000, 0x0F0F,0x0000,0x0000, /* 1D0AE */ +0x0F10,0x0000,0x0000, 0x0F11,0x0000,0x0000, 0x0F12,0x0000,0x0000, /* 1D0B1 */ +0x0F13,0x0000,0x0000, 0x0F14,0x0000,0x0000, 0x0F15,0x0000,0x0000, /* 1D0B4 */ +0x0F16,0x0000,0x0000, 0x0F17,0x0000,0x0000, 0x0F18,0x0000,0x0000, /* 1D0B7 */ +0x0F19,0x0000,0x0000, 0x0F1A,0x0000,0x0000, 0x0F1B,0x0000,0x0000, /* 1D0BA */ +0x0F1C,0x0000,0x0000, 0x0F1D,0x0000,0x0000, 0x0F1E,0x0000,0x0000, /* 1D0BD */ +0x0F1F,0x0000,0x0000, 0x0F20,0x0000,0x0000, 0x0F21,0x0000,0x0000, /* 1D0C0 */ +0x0F22,0x0000,0x0000, 0x0F23,0x0000,0x0000, 0x0F24,0x0000,0x0000, /* 1D0C3 */ +0x0F25,0x0000,0x0000, 0x0F26,0x0000,0x0000, 0x0F27,0x0000,0x0000, /* 1D0C6 */ +0x0F28,0x0000,0x0000, 0x0F29,0x0000,0x0000, 0x0F2A,0x0000,0x0000, /* 1D0C9 */ +0x0F2B,0x0000,0x0000, 0x0F2C,0x0000,0x0000, 0x0F2D,0x0000,0x0000, /* 1D0CC */ +0x0F2E,0x0000,0x0000, 0x0F2F,0x0000,0x0000, 0x0F30,0x0000,0x0000, /* 1D0CF */ +0x0F31,0x0000,0x0000, 0x0F32,0x0000,0x0000, 0x0F33,0x0000,0x0000, /* 1D0D2 */ +0x0F34,0x0000,0x0000, 0x0F35,0x0000,0x0000, 0x0F36,0x0000,0x0000, /* 1D0D5 */ +0x0F37,0x0000,0x0000, 0x0F38,0x0000,0x0000, 0x0F39,0x0000,0x0000, /* 1D0D8 */ +0x0F3A,0x0000,0x0000, 0x0F3B,0x0000,0x0000, 0x0F3C,0x0000,0x0000, /* 1D0DB */ +0x0F3D,0x0000,0x0000, 0x0F3E,0x0000,0x0000, 0x0F3F,0x0000,0x0000, /* 1D0DE */ +0x0F40,0x0000,0x0000, 0x0F41,0x0000,0x0000, 0x0F42,0x0000,0x0000, /* 1D0E1 */ +0x0F43,0x0000,0x0000, 0x0F44,0x0000,0x0000, 0x0F45,0x0000,0x0000, /* 1D0E4 */ +0x0F46,0x0000,0x0000, 0x0F47,0x0000,0x0000, 0x0F48,0x0000,0x0000, /* 1D0E7 */ +0x0F49,0x0000,0x0000, 0x0F4A,0x0000,0x0000, 0x0F4B,0x0000,0x0000, /* 1D0EA */ +0x0F4C,0x0000,0x0000, 0x0F4D,0x0000,0x0000, 0x0F4E,0x0000,0x0000, /* 1D0ED */ +0x0F4F,0x0000,0x0000, 0x0F50,0x0000,0x0000, 0x0F51,0x0000,0x0000, /* 1D0F0 */ +0x0F52,0x0000,0x0000, 0x0F53,0x0000,0x0000, 0x0F54,0x0000,0x0000, /* 1D0F3 */ +0xFBC3,0xD0F6,0x0000, 0xFBC3,0xD0F7,0x0000, 0xFBC3,0xD0F8,0x0000, /* 1D0F6 */ +0xFBC3,0xD0F9,0x0000, 0xFBC3,0xD0FA,0x0000, 0xFBC3,0xD0FB,0x0000, /* 1D0F9 */ +0xFBC3,0xD0FC,0x0000, 0xFBC3,0xD0FD,0x0000, 0xFBC3,0xD0FE,0x0000, /* 1D0FC */ +0xFBC3,0xD0FF,0x0000 }; + +static const uint16 uca520_p1D1[]= { /* 1D100 (3 weights per char) */ +0x0F55,0x0000,0x0000, 0x0F56,0x0000,0x0000, 0x0F57,0x0000,0x0000, /* 1D100 */ +0x0F58,0x0000,0x0000, 0x0F59,0x0000,0x0000, 0x0F5A,0x0000,0x0000, /* 1D103 */ +0x0F5B,0x0000,0x0000, 0x0F5C,0x0000,0x0000, 0x0F5D,0x0000,0x0000, /* 1D106 */ +0x0F5E,0x0000,0x0000, 0x0F5F,0x0000,0x0000, 0x0F60,0x0000,0x0000, /* 1D109 */ +0x0F61,0x0000,0x0000, 0x0F62,0x0000,0x0000, 0x0F63,0x0000,0x0000, /* 1D10C */ +0x0F64,0x0000,0x0000, 0x0F65,0x0000,0x0000, 0x0F66,0x0000,0x0000, /* 1D10F */ +0x0F67,0x0000,0x0000, 0x0F68,0x0000,0x0000, 0x0F69,0x0000,0x0000, /* 1D112 */ +0x0F6A,0x0000,0x0000, 0x0F6B,0x0000,0x0000, 0x0F6C,0x0000,0x0000, /* 1D115 */ +0x0F6D,0x0000,0x0000, 0x0F6E,0x0000,0x0000, 0x0F6F,0x0000,0x0000, /* 1D118 */ +0x0F70,0x0000,0x0000, 0x0F71,0x0000,0x0000, 0x0F72,0x0000,0x0000, /* 1D11B */ +0x0F73,0x0000,0x0000, 0x0F74,0x0000,0x0000, 0x0F75,0x0000,0x0000, /* 1D11E */ +0x0F76,0x0000,0x0000, 0x0F77,0x0000,0x0000, 0x0F78,0x0000,0x0000, /* 1D121 */ +0x0F79,0x0000,0x0000, 0x0F7A,0x0000,0x0000, 0x0F7B,0x0000,0x0000, /* 1D124 */ +0xFBC3,0xD127,0x0000, 0xFBC3,0xD128,0x0000, 0x0F8F,0x0000,0x0000, /* 1D127 */ +0x0F7F,0x0000,0x0000, 0x0F80,0x0000,0x0000, 0x0F81,0x0000,0x0000, /* 1D12A */ +0x0F82,0x0000,0x0000, 0x0F83,0x0000,0x0000, 0x0F84,0x0000,0x0000, /* 1D12D */ +0x0F85,0x0000,0x0000, 0x0F86,0x0000,0x0000, 0x0F87,0x0000,0x0000, /* 1D130 */ +0x0F88,0x0000,0x0000, 0x0F89,0x0000,0x0000, 0x0F8A,0x0000,0x0000, /* 1D133 */ +0x0F8B,0x0000,0x0000, 0x0F8C,0x0000,0x0000, 0x0F8D,0x0000,0x0000, /* 1D136 */ +0x0F8E,0x0000,0x0000, 0x0F90,0x0000,0x0000, 0x0F91,0x0000,0x0000, /* 1D139 */ +0x0F92,0x0000,0x0000, 0x0F93,0x0000,0x0000, 0x0F94,0x0000,0x0000, /* 1D13C */ +0x0F95,0x0000,0x0000, 0x0F96,0x0000,0x0000, 0x0F97,0x0000,0x0000, /* 1D13F */ +0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, 0x0F9A,0x0000,0x0000, /* 1D142 */ +0x0F9B,0x0000,0x0000, 0x0F9C,0x0000,0x0000, 0x0F9D,0x0000,0x0000, /* 1D145 */ +0x0F9E,0x0000,0x0000, 0x0F9F,0x0000,0x0000, 0x0FA0,0x0000,0x0000, /* 1D148 */ +0x0FA1,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA3,0x0000,0x0000, /* 1D14B */ +0x0FA4,0x0000,0x0000, 0x0FA5,0x0000,0x0000, 0x0FA6,0x0000,0x0000, /* 1D14E */ +0x0FA7,0x0000,0x0000, 0x0FA8,0x0000,0x0000, 0x0FA9,0x0000,0x0000, /* 1D151 */ +0x0FAA,0x0000,0x0000, 0x0FAB,0x0000,0x0000, 0x0FAC,0x0000,0x0000, /* 1D154 */ +0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAF,0x0000,0x0000, /* 1D157 */ +0x0FB0,0x0000,0x0000, 0x0FB1,0x0000,0x0000, 0x0FB2,0x0000,0x0000, /* 1D15A */ +0x0FB3,0x0000,0x0000, 0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D15D */ +0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D160 */ +0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D163 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D166 */ +0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000, 0x0FB5,0x0000,0x0000, /* 1D169 */ +0x0FB6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D172 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D175 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D178 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB7,0x0000,0x0000, /* 1D181 */ +0x0FB8,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D184 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D187 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB9,0x0000,0x0000, /* 1D18A */ +0x0FBA,0x0000,0x0000, 0x0FBB,0x0000,0x0000, 0x0FBC,0x0000,0x0000, /* 1D18D */ +0x0FBD,0x0000,0x0000, 0x0FBE,0x0000,0x0000, 0x0FBF,0x0000,0x0000, /* 1D190 */ +0x0FC0,0x0000,0x0000, 0x0FC1,0x0000,0x0000, 0x0FC2,0x0000,0x0000, /* 1D193 */ +0x0FC3,0x0000,0x0000, 0x0FC4,0x0000,0x0000, 0x0FC5,0x0000,0x0000, /* 1D196 */ +0x0FC6,0x0000,0x0000, 0x0FC7,0x0000,0x0000, 0x0FC8,0x0000,0x0000, /* 1D199 */ +0x0FC9,0x0000,0x0000, 0x0FCA,0x0000,0x0000, 0x0FCB,0x0000,0x0000, /* 1D19C */ +0x0FCC,0x0000,0x0000, 0x0FCD,0x0000,0x0000, 0x0FCE,0x0000,0x0000, /* 1D19F */ +0x0FCF,0x0000,0x0000, 0x0FD0,0x0000,0x0000, 0x0FD1,0x0000,0x0000, /* 1D1A2 */ +0x0FD2,0x0000,0x0000, 0x0FD3,0x0000,0x0000, 0x0FD4,0x0000,0x0000, /* 1D1A5 */ +0x0FD5,0x0000,0x0000, 0x0FD6,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1AB */ +0x0FD7,0x0000,0x0000, 0x0FD8,0x0000,0x0000, 0x0FD9,0x0000,0x0000, /* 1D1AE */ +0x0FDA,0x0000,0x0000, 0x0FDB,0x0000,0x0000, 0x0FDC,0x0000,0x0000, /* 1D1B1 */ +0x0FDD,0x0000,0x0000, 0x0FDE,0x0000,0x0000, 0x0FDF,0x0000,0x0000, /* 1D1B4 */ +0x0FE0,0x0000,0x0000, 0x0FE1,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1B7 */ +0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, /* 1D1BA */ +0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1BD */ +0x0FE3,0x0000,0x0000, 0x0FE4,0x0000,0x0000, 0x0FE5,0x0000,0x0000, /* 1D1C0 */ +0x0FE6,0x0000,0x0000, 0x0FE7,0x0000,0x0000, 0x0FE8,0x0000,0x0000, /* 1D1C3 */ +0x0FE9,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEB,0x0000,0x0000, /* 1D1C6 */ +0x0FEC,0x0000,0x0000, 0x0FED,0x0000,0x0000, 0x0FEE,0x0000,0x0000, /* 1D1C9 */ +0x0FEF,0x0000,0x0000, 0x0FF0,0x0000,0x0000, 0x0FF1,0x0000,0x0000, /* 1D1CC */ +0x0FF2,0x0000,0x0000, 0x0FF3,0x0000,0x0000, 0x0FF4,0x0000,0x0000, /* 1D1CF */ +0x0FF5,0x0000,0x0000, 0x0FF6,0x0000,0x0000, 0x0FF7,0x0000,0x0000, /* 1D1D2 */ +0x0FF8,0x0000,0x0000, 0x0FF9,0x0000,0x0000, 0x0FFA,0x0000,0x0000, /* 1D1D5 */ +0x0FFB,0x0000,0x0000, 0x0FFC,0x0000,0x0000, 0x0FFD,0x0000,0x0000, /* 1D1D8 */ +0x0FFE,0x0000,0x0000, 0x0FFF,0x0000,0x0000, 0x1000,0x0000,0x0000, /* 1D1DB */ +0xFBC3,0xD1DE,0x0000, 0xFBC3,0xD1DF,0x0000, 0xFBC3,0xD1E0,0x0000, /* 1D1DE */ +0xFBC3,0xD1E1,0x0000, 0xFBC3,0xD1E2,0x0000, 0xFBC3,0xD1E3,0x0000, /* 1D1E1 */ +0xFBC3,0xD1E4,0x0000, 0xFBC3,0xD1E5,0x0000, 0xFBC3,0xD1E6,0x0000, /* 1D1E4 */ +0xFBC3,0xD1E7,0x0000, 0xFBC3,0xD1E8,0x0000, 0xFBC3,0xD1E9,0x0000, /* 1D1E7 */ +0xFBC3,0xD1EA,0x0000, 0xFBC3,0xD1EB,0x0000, 0xFBC3,0xD1EC,0x0000, /* 1D1EA */ +0xFBC3,0xD1ED,0x0000, 0xFBC3,0xD1EE,0x0000, 0xFBC3,0xD1EF,0x0000, /* 1D1ED */ +0xFBC3,0xD1F0,0x0000, 0xFBC3,0xD1F1,0x0000, 0xFBC3,0xD1F2,0x0000, /* 1D1F0 */ +0xFBC3,0xD1F3,0x0000, 0xFBC3,0xD1F4,0x0000, 0xFBC3,0xD1F5,0x0000, /* 1D1F3 */ +0xFBC3,0xD1F6,0x0000, 0xFBC3,0xD1F7,0x0000, 0xFBC3,0xD1F8,0x0000, /* 1D1F6 */ +0xFBC3,0xD1F9,0x0000, 0xFBC3,0xD1FA,0x0000, 0xFBC3,0xD1FB,0x0000, /* 1D1F9 */ +0xFBC3,0xD1FC,0x0000, 0xFBC3,0xD1FD,0x0000, 0xFBC3,0xD1FE,0x0000, /* 1D1FC */ +0xFBC3,0xD1FF,0x0000 }; + +static const uint16 uca520_p1D2[]= { /* 1D200 (3 weights per char) */ +0x1001,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1003,0x0000,0x0000, /* 1D200 */ +0x1004,0x0000,0x0000, 0x1005,0x0000,0x0000, 0x1006,0x0000,0x0000, /* 1D203 */ +0x1007,0x0000,0x0000, 0x1008,0x0000,0x0000, 0x1009,0x0000,0x0000, /* 1D206 */ +0x100A,0x0000,0x0000, 0x100B,0x0000,0x0000, 0x100C,0x0000,0x0000, /* 1D209 */ +0x100D,0x0000,0x0000, 0x100E,0x0000,0x0000, 0x100F,0x0000,0x0000, /* 1D20C */ +0x1010,0x0000,0x0000, 0x1011,0x0000,0x0000, 0x1012,0x0000,0x0000, /* 1D20F */ +0x1013,0x0000,0x0000, 0x1014,0x0000,0x0000, 0x1015,0x0000,0x0000, /* 1D212 */ +0x1016,0x0000,0x0000, 0x1017,0x0000,0x0000, 0x1018,0x0000,0x0000, /* 1D215 */ +0x1019,0x0000,0x0000, 0x101A,0x0000,0x0000, 0x101B,0x0000,0x0000, /* 1D218 */ +0x101C,0x0000,0x0000, 0x101D,0x0000,0x0000, 0x101E,0x0000,0x0000, /* 1D21B */ +0x101F,0x0000,0x0000, 0x1020,0x0000,0x0000, 0x1021,0x0000,0x0000, /* 1D21E */ +0x1022,0x0000,0x0000, 0x1023,0x0000,0x0000, 0x1024,0x0000,0x0000, /* 1D221 */ +0x1025,0x0000,0x0000, 0x1026,0x0000,0x0000, 0x1027,0x0000,0x0000, /* 1D224 */ +0x1028,0x0000,0x0000, 0x1029,0x0000,0x0000, 0x102A,0x0000,0x0000, /* 1D227 */ +0x102B,0x0000,0x0000, 0x102C,0x0000,0x0000, 0x102D,0x0000,0x0000, /* 1D22A */ +0x102E,0x0000,0x0000, 0x102F,0x0000,0x0000, 0x1030,0x0000,0x0000, /* 1D22D */ +0x1031,0x0000,0x0000, 0x1032,0x0000,0x0000, 0x1033,0x0000,0x0000, /* 1D230 */ +0x1034,0x0000,0x0000, 0x1035,0x0000,0x0000, 0x1036,0x0000,0x0000, /* 1D233 */ +0x1037,0x0000,0x0000, 0x1038,0x0000,0x0000, 0x1039,0x0000,0x0000, /* 1D236 */ +0x103A,0x0000,0x0000, 0x103B,0x0000,0x0000, 0x103C,0x0000,0x0000, /* 1D239 */ +0x103D,0x0000,0x0000, 0x103E,0x0000,0x0000, 0x103F,0x0000,0x0000, /* 1D23C */ +0x1040,0x0000,0x0000, 0x1041,0x0000,0x0000, 0x1042,0x0000,0x0000, /* 1D23F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D242 */ +0x1043,0x0000,0x0000, 0xFBC3,0xD246,0x0000, 0xFBC3,0xD247,0x0000, /* 1D245 */ +0xFBC3,0xD248,0x0000, 0xFBC3,0xD249,0x0000, 0xFBC3,0xD24A,0x0000, /* 1D248 */ +0xFBC3,0xD24B,0x0000, 0xFBC3,0xD24C,0x0000, 0xFBC3,0xD24D,0x0000, /* 1D24B */ +0xFBC3,0xD24E,0x0000, 0xFBC3,0xD24F,0x0000, 0xFBC3,0xD250,0x0000, /* 1D24E */ +0xFBC3,0xD251,0x0000, 0xFBC3,0xD252,0x0000, 0xFBC3,0xD253,0x0000, /* 1D251 */ +0xFBC3,0xD254,0x0000, 0xFBC3,0xD255,0x0000, 0xFBC3,0xD256,0x0000, /* 1D254 */ +0xFBC3,0xD257,0x0000, 0xFBC3,0xD258,0x0000, 0xFBC3,0xD259,0x0000, /* 1D257 */ +0xFBC3,0xD25A,0x0000, 0xFBC3,0xD25B,0x0000, 0xFBC3,0xD25C,0x0000, /* 1D25A */ +0xFBC3,0xD25D,0x0000, 0xFBC3,0xD25E,0x0000, 0xFBC3,0xD25F,0x0000, /* 1D25D */ +0xFBC3,0xD260,0x0000, 0xFBC3,0xD261,0x0000, 0xFBC3,0xD262,0x0000, /* 1D260 */ +0xFBC3,0xD263,0x0000, 0xFBC3,0xD264,0x0000, 0xFBC3,0xD265,0x0000, /* 1D263 */ +0xFBC3,0xD266,0x0000, 0xFBC3,0xD267,0x0000, 0xFBC3,0xD268,0x0000, /* 1D266 */ +0xFBC3,0xD269,0x0000, 0xFBC3,0xD26A,0x0000, 0xFBC3,0xD26B,0x0000, /* 1D269 */ +0xFBC3,0xD26C,0x0000, 0xFBC3,0xD26D,0x0000, 0xFBC3,0xD26E,0x0000, /* 1D26C */ +0xFBC3,0xD26F,0x0000, 0xFBC3,0xD270,0x0000, 0xFBC3,0xD271,0x0000, /* 1D26F */ +0xFBC3,0xD272,0x0000, 0xFBC3,0xD273,0x0000, 0xFBC3,0xD274,0x0000, /* 1D272 */ +0xFBC3,0xD275,0x0000, 0xFBC3,0xD276,0x0000, 0xFBC3,0xD277,0x0000, /* 1D275 */ +0xFBC3,0xD278,0x0000, 0xFBC3,0xD279,0x0000, 0xFBC3,0xD27A,0x0000, /* 1D278 */ +0xFBC3,0xD27B,0x0000, 0xFBC3,0xD27C,0x0000, 0xFBC3,0xD27D,0x0000, /* 1D27B */ +0xFBC3,0xD27E,0x0000, 0xFBC3,0xD27F,0x0000, 0xFBC3,0xD280,0x0000, /* 1D27E */ +0xFBC3,0xD281,0x0000, 0xFBC3,0xD282,0x0000, 0xFBC3,0xD283,0x0000, /* 1D281 */ +0xFBC3,0xD284,0x0000, 0xFBC3,0xD285,0x0000, 0xFBC3,0xD286,0x0000, /* 1D284 */ +0xFBC3,0xD287,0x0000, 0xFBC3,0xD288,0x0000, 0xFBC3,0xD289,0x0000, /* 1D287 */ +0xFBC3,0xD28A,0x0000, 0xFBC3,0xD28B,0x0000, 0xFBC3,0xD28C,0x0000, /* 1D28A */ +0xFBC3,0xD28D,0x0000, 0xFBC3,0xD28E,0x0000, 0xFBC3,0xD28F,0x0000, /* 1D28D */ +0xFBC3,0xD290,0x0000, 0xFBC3,0xD291,0x0000, 0xFBC3,0xD292,0x0000, /* 1D290 */ +0xFBC3,0xD293,0x0000, 0xFBC3,0xD294,0x0000, 0xFBC3,0xD295,0x0000, /* 1D293 */ +0xFBC3,0xD296,0x0000, 0xFBC3,0xD297,0x0000, 0xFBC3,0xD298,0x0000, /* 1D296 */ +0xFBC3,0xD299,0x0000, 0xFBC3,0xD29A,0x0000, 0xFBC3,0xD29B,0x0000, /* 1D299 */ +0xFBC3,0xD29C,0x0000, 0xFBC3,0xD29D,0x0000, 0xFBC3,0xD29E,0x0000, /* 1D29C */ +0xFBC3,0xD29F,0x0000, 0xFBC3,0xD2A0,0x0000, 0xFBC3,0xD2A1,0x0000, /* 1D29F */ +0xFBC3,0xD2A2,0x0000, 0xFBC3,0xD2A3,0x0000, 0xFBC3,0xD2A4,0x0000, /* 1D2A2 */ +0xFBC3,0xD2A5,0x0000, 0xFBC3,0xD2A6,0x0000, 0xFBC3,0xD2A7,0x0000, /* 1D2A5 */ +0xFBC3,0xD2A8,0x0000, 0xFBC3,0xD2A9,0x0000, 0xFBC3,0xD2AA,0x0000, /* 1D2A8 */ +0xFBC3,0xD2AB,0x0000, 0xFBC3,0xD2AC,0x0000, 0xFBC3,0xD2AD,0x0000, /* 1D2AB */ +0xFBC3,0xD2AE,0x0000, 0xFBC3,0xD2AF,0x0000, 0xFBC3,0xD2B0,0x0000, /* 1D2AE */ +0xFBC3,0xD2B1,0x0000, 0xFBC3,0xD2B2,0x0000, 0xFBC3,0xD2B3,0x0000, /* 1D2B1 */ +0xFBC3,0xD2B4,0x0000, 0xFBC3,0xD2B5,0x0000, 0xFBC3,0xD2B6,0x0000, /* 1D2B4 */ +0xFBC3,0xD2B7,0x0000, 0xFBC3,0xD2B8,0x0000, 0xFBC3,0xD2B9,0x0000, /* 1D2B7 */ +0xFBC3,0xD2BA,0x0000, 0xFBC3,0xD2BB,0x0000, 0xFBC3,0xD2BC,0x0000, /* 1D2BA */ +0xFBC3,0xD2BD,0x0000, 0xFBC3,0xD2BE,0x0000, 0xFBC3,0xD2BF,0x0000, /* 1D2BD */ +0xFBC3,0xD2C0,0x0000, 0xFBC3,0xD2C1,0x0000, 0xFBC3,0xD2C2,0x0000, /* 1D2C0 */ +0xFBC3,0xD2C3,0x0000, 0xFBC3,0xD2C4,0x0000, 0xFBC3,0xD2C5,0x0000, /* 1D2C3 */ +0xFBC3,0xD2C6,0x0000, 0xFBC3,0xD2C7,0x0000, 0xFBC3,0xD2C8,0x0000, /* 1D2C6 */ +0xFBC3,0xD2C9,0x0000, 0xFBC3,0xD2CA,0x0000, 0xFBC3,0xD2CB,0x0000, /* 1D2C9 */ +0xFBC3,0xD2CC,0x0000, 0xFBC3,0xD2CD,0x0000, 0xFBC3,0xD2CE,0x0000, /* 1D2CC */ +0xFBC3,0xD2CF,0x0000, 0xFBC3,0xD2D0,0x0000, 0xFBC3,0xD2D1,0x0000, /* 1D2CF */ +0xFBC3,0xD2D2,0x0000, 0xFBC3,0xD2D3,0x0000, 0xFBC3,0xD2D4,0x0000, /* 1D2D2 */ +0xFBC3,0xD2D5,0x0000, 0xFBC3,0xD2D6,0x0000, 0xFBC3,0xD2D7,0x0000, /* 1D2D5 */ +0xFBC3,0xD2D8,0x0000, 0xFBC3,0xD2D9,0x0000, 0xFBC3,0xD2DA,0x0000, /* 1D2D8 */ +0xFBC3,0xD2DB,0x0000, 0xFBC3,0xD2DC,0x0000, 0xFBC3,0xD2DD,0x0000, /* 1D2DB */ +0xFBC3,0xD2DE,0x0000, 0xFBC3,0xD2DF,0x0000, 0xFBC3,0xD2E0,0x0000, /* 1D2DE */ +0xFBC3,0xD2E1,0x0000, 0xFBC3,0xD2E2,0x0000, 0xFBC3,0xD2E3,0x0000, /* 1D2E1 */ +0xFBC3,0xD2E4,0x0000, 0xFBC3,0xD2E5,0x0000, 0xFBC3,0xD2E6,0x0000, /* 1D2E4 */ +0xFBC3,0xD2E7,0x0000, 0xFBC3,0xD2E8,0x0000, 0xFBC3,0xD2E9,0x0000, /* 1D2E7 */ +0xFBC3,0xD2EA,0x0000, 0xFBC3,0xD2EB,0x0000, 0xFBC3,0xD2EC,0x0000, /* 1D2EA */ +0xFBC3,0xD2ED,0x0000, 0xFBC3,0xD2EE,0x0000, 0xFBC3,0xD2EF,0x0000, /* 1D2ED */ +0xFBC3,0xD2F0,0x0000, 0xFBC3,0xD2F1,0x0000, 0xFBC3,0xD2F2,0x0000, /* 1D2F0 */ +0xFBC3,0xD2F3,0x0000, 0xFBC3,0xD2F4,0x0000, 0xFBC3,0xD2F5,0x0000, /* 1D2F3 */ +0xFBC3,0xD2F6,0x0000, 0xFBC3,0xD2F7,0x0000, 0xFBC3,0xD2F8,0x0000, /* 1D2F6 */ +0xFBC3,0xD2F9,0x0000, 0xFBC3,0xD2FA,0x0000, 0xFBC3,0xD2FB,0x0000, /* 1D2F9 */ +0xFBC3,0xD2FC,0x0000, 0xFBC3,0xD2FD,0x0000, 0xFBC3,0xD2FE,0x0000, /* 1D2FC */ +0xFBC3,0xD2FF,0x0000 }; + +static const uint16 uca520_p1D3[]= { /* 1D300 (3 weights per char) */ +0x0D7E,0x0000,0x0000, 0x0D7F,0x0000,0x0000, 0x0D80,0x0000,0x0000, /* 1D300 */ +0x0D81,0x0000,0x0000, 0x0D82,0x0000,0x0000, 0x0D83,0x0000,0x0000, /* 1D303 */ +0x0D84,0x0000,0x0000, 0x0D85,0x0000,0x0000, 0x0D86,0x0000,0x0000, /* 1D306 */ +0x0D87,0x0000,0x0000, 0x0D88,0x0000,0x0000, 0x0D89,0x0000,0x0000, /* 1D309 */ +0x0D8A,0x0000,0x0000, 0x0D8B,0x0000,0x0000, 0x0D8C,0x0000,0x0000, /* 1D30C */ +0x0D8D,0x0000,0x0000, 0x0D8E,0x0000,0x0000, 0x0D8F,0x0000,0x0000, /* 1D30F */ +0x0D90,0x0000,0x0000, 0x0D91,0x0000,0x0000, 0x0D92,0x0000,0x0000, /* 1D312 */ +0x0D93,0x0000,0x0000, 0x0D94,0x0000,0x0000, 0x0D95,0x0000,0x0000, /* 1D315 */ +0x0D96,0x0000,0x0000, 0x0D97,0x0000,0x0000, 0x0D98,0x0000,0x0000, /* 1D318 */ +0x0D99,0x0000,0x0000, 0x0D9A,0x0000,0x0000, 0x0D9B,0x0000,0x0000, /* 1D31B */ +0x0D9C,0x0000,0x0000, 0x0D9D,0x0000,0x0000, 0x0D9E,0x0000,0x0000, /* 1D31E */ +0x0D9F,0x0000,0x0000, 0x0DA0,0x0000,0x0000, 0x0DA1,0x0000,0x0000, /* 1D321 */ +0x0DA2,0x0000,0x0000, 0x0DA3,0x0000,0x0000, 0x0DA4,0x0000,0x0000, /* 1D324 */ +0x0DA5,0x0000,0x0000, 0x0DA6,0x0000,0x0000, 0x0DA7,0x0000,0x0000, /* 1D327 */ +0x0DA8,0x0000,0x0000, 0x0DA9,0x0000,0x0000, 0x0DAA,0x0000,0x0000, /* 1D32A */ +0x0DAB,0x0000,0x0000, 0x0DAC,0x0000,0x0000, 0x0DAD,0x0000,0x0000, /* 1D32D */ +0x0DAE,0x0000,0x0000, 0x0DAF,0x0000,0x0000, 0x0DB0,0x0000,0x0000, /* 1D330 */ +0x0DB1,0x0000,0x0000, 0x0DB2,0x0000,0x0000, 0x0DB3,0x0000,0x0000, /* 1D333 */ +0x0DB4,0x0000,0x0000, 0x0DB5,0x0000,0x0000, 0x0DB6,0x0000,0x0000, /* 1D336 */ +0x0DB7,0x0000,0x0000, 0x0DB8,0x0000,0x0000, 0x0DB9,0x0000,0x0000, /* 1D339 */ +0x0DBA,0x0000,0x0000, 0x0DBB,0x0000,0x0000, 0x0DBC,0x0000,0x0000, /* 1D33C */ +0x0DBD,0x0000,0x0000, 0x0DBE,0x0000,0x0000, 0x0DBF,0x0000,0x0000, /* 1D33F */ +0x0DC0,0x0000,0x0000, 0x0DC1,0x0000,0x0000, 0x0DC2,0x0000,0x0000, /* 1D342 */ +0x0DC3,0x0000,0x0000, 0x0DC4,0x0000,0x0000, 0x0DC5,0x0000,0x0000, /* 1D345 */ +0x0DC6,0x0000,0x0000, 0x0DC7,0x0000,0x0000, 0x0DC8,0x0000,0x0000, /* 1D348 */ +0x0DC9,0x0000,0x0000, 0x0DCA,0x0000,0x0000, 0x0DCB,0x0000,0x0000, /* 1D34B */ +0x0DCC,0x0000,0x0000, 0x0DCD,0x0000,0x0000, 0x0DCE,0x0000,0x0000, /* 1D34E */ +0x0DCF,0x0000,0x0000, 0x0DD0,0x0000,0x0000, 0x0DD1,0x0000,0x0000, /* 1D351 */ +0x0DD2,0x0000,0x0000, 0x0DD3,0x0000,0x0000, 0x0DD4,0x0000,0x0000, /* 1D354 */ +0xFBC3,0xD357,0x0000, 0xFBC3,0xD358,0x0000, 0xFBC3,0xD359,0x0000, /* 1D357 */ +0xFBC3,0xD35A,0x0000, 0xFBC3,0xD35B,0x0000, 0xFBC3,0xD35C,0x0000, /* 1D35A */ +0xFBC3,0xD35D,0x0000, 0xFBC3,0xD35E,0x0000, 0xFBC3,0xD35F,0x0000, /* 1D35D */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D360 */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D363 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D366 */ +0x11C5,0x0000,0x0000, 0x11C6,0x0000,0x0000, 0x11C7,0x0000,0x0000, /* 1D369 */ +0x11C8,0x0000,0x0000, 0x11C9,0x0000,0x0000, 0x11CA,0x0000,0x0000, /* 1D36C */ +0x11CB,0x0000,0x0000, 0x11CC,0x0000,0x0000, 0x11CD,0x0000,0x0000, /* 1D36F */ +0xFBC3,0xD372,0x0000, 0xFBC3,0xD373,0x0000, 0xFBC3,0xD374,0x0000, /* 1D372 */ +0xFBC3,0xD375,0x0000, 0xFBC3,0xD376,0x0000, 0xFBC3,0xD377,0x0000, /* 1D375 */ +0xFBC3,0xD378,0x0000, 0xFBC3,0xD379,0x0000, 0xFBC3,0xD37A,0x0000, /* 1D378 */ +0xFBC3,0xD37B,0x0000, 0xFBC3,0xD37C,0x0000, 0xFBC3,0xD37D,0x0000, /* 1D37B */ +0xFBC3,0xD37E,0x0000, 0xFBC3,0xD37F,0x0000, 0xFBC3,0xD380,0x0000, /* 1D37E */ +0xFBC3,0xD381,0x0000, 0xFBC3,0xD382,0x0000, 0xFBC3,0xD383,0x0000, /* 1D381 */ +0xFBC3,0xD384,0x0000, 0xFBC3,0xD385,0x0000, 0xFBC3,0xD386,0x0000, /* 1D384 */ +0xFBC3,0xD387,0x0000, 0xFBC3,0xD388,0x0000, 0xFBC3,0xD389,0x0000, /* 1D387 */ +0xFBC3,0xD38A,0x0000, 0xFBC3,0xD38B,0x0000, 0xFBC3,0xD38C,0x0000, /* 1D38A */ +0xFBC3,0xD38D,0x0000, 0xFBC3,0xD38E,0x0000, 0xFBC3,0xD38F,0x0000, /* 1D38D */ +0xFBC3,0xD390,0x0000, 0xFBC3,0xD391,0x0000, 0xFBC3,0xD392,0x0000, /* 1D390 */ +0xFBC3,0xD393,0x0000, 0xFBC3,0xD394,0x0000, 0xFBC3,0xD395,0x0000, /* 1D393 */ +0xFBC3,0xD396,0x0000, 0xFBC3,0xD397,0x0000, 0xFBC3,0xD398,0x0000, /* 1D396 */ +0xFBC3,0xD399,0x0000, 0xFBC3,0xD39A,0x0000, 0xFBC3,0xD39B,0x0000, /* 1D399 */ +0xFBC3,0xD39C,0x0000, 0xFBC3,0xD39D,0x0000, 0xFBC3,0xD39E,0x0000, /* 1D39C */ +0xFBC3,0xD39F,0x0000, 0xFBC3,0xD3A0,0x0000, 0xFBC3,0xD3A1,0x0000, /* 1D39F */ +0xFBC3,0xD3A2,0x0000, 0xFBC3,0xD3A3,0x0000, 0xFBC3,0xD3A4,0x0000, /* 1D3A2 */ +0xFBC3,0xD3A5,0x0000, 0xFBC3,0xD3A6,0x0000, 0xFBC3,0xD3A7,0x0000, /* 1D3A5 */ +0xFBC3,0xD3A8,0x0000, 0xFBC3,0xD3A9,0x0000, 0xFBC3,0xD3AA,0x0000, /* 1D3A8 */ +0xFBC3,0xD3AB,0x0000, 0xFBC3,0xD3AC,0x0000, 0xFBC3,0xD3AD,0x0000, /* 1D3AB */ +0xFBC3,0xD3AE,0x0000, 0xFBC3,0xD3AF,0x0000, 0xFBC3,0xD3B0,0x0000, /* 1D3AE */ +0xFBC3,0xD3B1,0x0000, 0xFBC3,0xD3B2,0x0000, 0xFBC3,0xD3B3,0x0000, /* 1D3B1 */ +0xFBC3,0xD3B4,0x0000, 0xFBC3,0xD3B5,0x0000, 0xFBC3,0xD3B6,0x0000, /* 1D3B4 */ +0xFBC3,0xD3B7,0x0000, 0xFBC3,0xD3B8,0x0000, 0xFBC3,0xD3B9,0x0000, /* 1D3B7 */ +0xFBC3,0xD3BA,0x0000, 0xFBC3,0xD3BB,0x0000, 0xFBC3,0xD3BC,0x0000, /* 1D3BA */ +0xFBC3,0xD3BD,0x0000, 0xFBC3,0xD3BE,0x0000, 0xFBC3,0xD3BF,0x0000, /* 1D3BD */ +0xFBC3,0xD3C0,0x0000, 0xFBC3,0xD3C1,0x0000, 0xFBC3,0xD3C2,0x0000, /* 1D3C0 */ +0xFBC3,0xD3C3,0x0000, 0xFBC3,0xD3C4,0x0000, 0xFBC3,0xD3C5,0x0000, /* 1D3C3 */ +0xFBC3,0xD3C6,0x0000, 0xFBC3,0xD3C7,0x0000, 0xFBC3,0xD3C8,0x0000, /* 1D3C6 */ +0xFBC3,0xD3C9,0x0000, 0xFBC3,0xD3CA,0x0000, 0xFBC3,0xD3CB,0x0000, /* 1D3C9 */ +0xFBC3,0xD3CC,0x0000, 0xFBC3,0xD3CD,0x0000, 0xFBC3,0xD3CE,0x0000, /* 1D3CC */ +0xFBC3,0xD3CF,0x0000, 0xFBC3,0xD3D0,0x0000, 0xFBC3,0xD3D1,0x0000, /* 1D3CF */ +0xFBC3,0xD3D2,0x0000, 0xFBC3,0xD3D3,0x0000, 0xFBC3,0xD3D4,0x0000, /* 1D3D2 */ +0xFBC3,0xD3D5,0x0000, 0xFBC3,0xD3D6,0x0000, 0xFBC3,0xD3D7,0x0000, /* 1D3D5 */ +0xFBC3,0xD3D8,0x0000, 0xFBC3,0xD3D9,0x0000, 0xFBC3,0xD3DA,0x0000, /* 1D3D8 */ +0xFBC3,0xD3DB,0x0000, 0xFBC3,0xD3DC,0x0000, 0xFBC3,0xD3DD,0x0000, /* 1D3DB */ +0xFBC3,0xD3DE,0x0000, 0xFBC3,0xD3DF,0x0000, 0xFBC3,0xD3E0,0x0000, /* 1D3DE */ +0xFBC3,0xD3E1,0x0000, 0xFBC3,0xD3E2,0x0000, 0xFBC3,0xD3E3,0x0000, /* 1D3E1 */ +0xFBC3,0xD3E4,0x0000, 0xFBC3,0xD3E5,0x0000, 0xFBC3,0xD3E6,0x0000, /* 1D3E4 */ +0xFBC3,0xD3E7,0x0000, 0xFBC3,0xD3E8,0x0000, 0xFBC3,0xD3E9,0x0000, /* 1D3E7 */ +0xFBC3,0xD3EA,0x0000, 0xFBC3,0xD3EB,0x0000, 0xFBC3,0xD3EC,0x0000, /* 1D3EA */ +0xFBC3,0xD3ED,0x0000, 0xFBC3,0xD3EE,0x0000, 0xFBC3,0xD3EF,0x0000, /* 1D3ED */ +0xFBC3,0xD3F0,0x0000, 0xFBC3,0xD3F1,0x0000, 0xFBC3,0xD3F2,0x0000, /* 1D3F0 */ +0xFBC3,0xD3F3,0x0000, 0xFBC3,0xD3F4,0x0000, 0xFBC3,0xD3F5,0x0000, /* 1D3F3 */ +0xFBC3,0xD3F6,0x0000, 0xFBC3,0xD3F7,0x0000, 0xFBC3,0xD3F8,0x0000, /* 1D3F6 */ +0xFBC3,0xD3F9,0x0000, 0xFBC3,0xD3FA,0x0000, 0xFBC3,0xD3FB,0x0000, /* 1D3F9 */ +0xFBC3,0xD3FC,0x0000, 0xFBC3,0xD3FD,0x0000, 0xFBC3,0xD3FE,0x0000, /* 1D3FC */ +0xFBC3,0xD3FF,0x0000 }; + +static const uint16 uca520_p1D4[]= { /* 1D400 (3 weights per char) */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D400 */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D403 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D406 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D409 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D40C */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D40F */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D412 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D415 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D418 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D41B */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D41E */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D421 */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D424 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D427 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D42A */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D42D */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D430 */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D433 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D436 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D439 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D43C */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D43F */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D442 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D445 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D448 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D44B */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D44E */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D451 */ +0x12B0,0x0000,0x0000, 0xFBC3,0xD455,0x0000, 0x12EC,0x0000,0x0000, /* 1D454 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D457 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D45A */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D45D */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D460 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D463 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D466 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D469 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D46C */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D46F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D472 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D475 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D478 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D47B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D47E */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D481 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D484 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D487 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D48A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D48D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D490 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D493 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D496 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D499 */ +0x120F,0x0000,0x0000, 0xFBC3,0xD49D,0x0000, 0x123D,0x0000,0x0000, /* 1D49C */ +0x1250,0x0000,0x0000, 0xFBC3,0xD4A0,0x0000, 0xFBC3,0xD4A1,0x0000, /* 1D49F */ +0x12B0,0x0000,0x0000, 0xFBC3,0xD4A3,0x0000, 0xFBC3,0xD4A4,0x0000, /* 1D4A2 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0xFBC3,0xD4A7,0x0000, /* 1D4A5 */ +0xFBC3,0xD4A8,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4A8 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0xFBC3,0xD4AD,0x0000, /* 1D4AB */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4AE */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D4B1 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D4B4 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D4B7 */ +0xFBC3,0xD4BA,0x0000, 0x12A3,0x0000,0x0000, 0xFBC3,0xD4BC,0x0000, /* 1D4BA */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D4BD */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4C0 */ +0x136D,0x0000,0x0000, 0xFBC3,0xD4C4,0x0000, 0x13B3,0x0000,0x0000, /* 1D4C3 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D4C6 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D4C9 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D4CC */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D4CF */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D4D2 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D4D5 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D4D8 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D4DB */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D4DE */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D4E1 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D4E4 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D4E7 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D4EA */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D4ED */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D4F0 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D4F3 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4F6 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D4F9 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4FC */ +0x147B,0x0000,0x0000 }; + +static const uint16 uca520_p1D5[]= { /* 1D500 (3 weights per char) */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D500 */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D503 */ +0xFBC3,0xD506,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D506 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0xFBC3,0xD50B,0x0000, /* 1D509 */ +0xFBC3,0xD50C,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D50C */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D50F */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D512 */ +0xFBC3,0xD515,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D515 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D518 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0xFBC3,0xD51D,0x0000, /* 1D51B */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D51E */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D521 */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D524 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D527 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D52A */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D52D */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D530 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D533 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D536 */ +0x1225,0x0000,0x0000, 0xFBC3,0xD53A,0x0000, 0x1250,0x0000,0x0000, /* 1D539 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D53C */ +0xFBC3,0xD53F,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D53F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D542 */ +0xFBC3,0xD545,0x0000, 0x138E,0x0000,0x0000, 0xFBC3,0xD547,0x0000, /* 1D545 */ +0xFBC3,0xD548,0x0000, 0xFBC3,0xD549,0x0000, 0x1410,0x0000,0x0000, /* 1D548 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D54B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D54E */ +0xFBC3,0xD551,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D551 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D554 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D557 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D55A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D55D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D560 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D563 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D566 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D569 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D56C */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D56F */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D572 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D575 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D578 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D57B */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D57E */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D581 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D584 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D587 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D58A */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D58D */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D590 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D593 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D596 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D599 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D59C */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D59F */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5A2 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5A5 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5A8 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5AB */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5AE */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D5B1 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D5B4 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D5B7 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D5BA */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D5BD */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D5C0 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D5C3 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D5C6 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D5C9 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D5CC */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D5CF */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D5D2 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D5D5 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D5D8 */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D5DB */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D5DE */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D5E1 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D5E4 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D5E7 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D5EA */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D5ED */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5F0 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5F3 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5F6 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5F9 */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5FC */ +0x13DA,0x0000,0x0000 }; + +static const uint16 uca520_p1D6[]= { /* 1D600 (3 weights per char) */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D600 */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D603 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D606 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D609 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D60C */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D60F */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D612 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D615 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D618 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D61B */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D61E */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D621 */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D624 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D627 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D62A */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D62D */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D630 */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D633 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D636 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D639 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D63C */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D63F */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D642 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D645 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D648 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D64B */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D64E */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D651 */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D654 */ +0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D657 */ +0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D65A */ +0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D65D */ +0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D660 */ +0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D663 */ +0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D666 */ +0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D669 */ +0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D66C */ +0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D66F */ +0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D672 */ +0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D675 */ +0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D678 */ +0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D67B */ +0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D67E */ +0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D681 */ +0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D684 */ +0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D687 */ +0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D68A */ +0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D68D */ +0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D690 */ +0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D693 */ +0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D696 */ +0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D699 */ +0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D69C */ +0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D69F */ +0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x12F0,0x0000,0x0000, /* 1D6A2 */ +0x1309,0x0000,0x0000, 0xFBC3,0xD6A6,0x0000, 0xFBC3,0xD6A7,0x0000, /* 1D6A5 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6A8 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D6AB */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D6AE */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D6B1 */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D6B4 */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6B7 */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D6BA */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D6BD */ +0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D6C0 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D6C3 */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D6C6 */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D6C9 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D6CC */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D6CF */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D6D2 */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D6D5 */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D6D8 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6DB */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6DE */ +0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D6E1 */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D6E4 */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6E7 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D6EA */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D6ED */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6F0 */ +0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D6F3 */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D6F6 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D6F9 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6FC */ +0x1549,0x0000,0x0000 }; + +static const uint16 uca520_p1D7[]= { /* 1D700 (3 weights per char) */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D700 */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D703 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D706 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D709 */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D70C */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D70F */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D712 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D715 */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D718 */ +0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D71B */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D71E */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D721 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D724 */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D727 */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D72A */ +0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D72D */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D730 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D733 */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D736 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D739 */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D73C */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D73F */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D742 */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D745 */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D748 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D74B */ +0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D74E */ +0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D751 */ +0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D754 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D757 */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D75A */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D75D */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D760 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D763 */ +0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D766 */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D769 */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D76C */ +0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D76F */ +0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D772 */ +0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D775 */ +0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D778 */ +0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D77B */ +0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D77E */ +0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D781 */ +0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D784 */ +0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, /* 1D787 */ +0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D78A */ +0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D78D */ +0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D790 */ +0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D793 */ +0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D796 */ +0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D799 */ +0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D79C */ +0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D79F */ +0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D7A2 */ +0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D7A5 */ +0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D7A8 */ +0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D7AB */ +0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D7AE */ +0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D7B1 */ +0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D7B4 */ +0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D7B7 */ +0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D7BA */ +0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D7BD */ +0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D7C0 */ +0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D7C3 */ +0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D7C6 */ +0x155B,0x0000,0x0000, 0x154B,0x0000,0x0000, 0x154B,0x0000,0x0000, /* 1D7C9 */ +0xFBC3,0xD7CC,0x0000, 0xFBC3,0xD7CD,0x0000, 0x1205,0x0000,0x0000, /* 1D7CC */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7CF */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7D2 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7D5 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7D8 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7DB */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7DE */ +0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1D7E1 */ +0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1D7E4 */ +0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1D7E7 */ +0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1D7EA */ +0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7ED */ +0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7F0 */ +0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7F3 */ +0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7F6 */ +0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7F9 */ +0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7FC */ +0x120E,0x0000,0x0000 }; + +static const uint16 uca520_p1F0[]= { /* 1F000 (3 weights per char) */ +0x1044,0x0000,0x0000, 0x1045,0x0000,0x0000, 0x1046,0x0000,0x0000, /* 1F000 */ +0x1047,0x0000,0x0000, 0x1048,0x0000,0x0000, 0x1049,0x0000,0x0000, /* 1F003 */ +0x104A,0x0000,0x0000, 0x104B,0x0000,0x0000, 0x104C,0x0000,0x0000, /* 1F006 */ +0x104D,0x0000,0x0000, 0x104E,0x0000,0x0000, 0x104F,0x0000,0x0000, /* 1F009 */ +0x1050,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1052,0x0000,0x0000, /* 1F00C */ +0x1053,0x0000,0x0000, 0x1054,0x0000,0x0000, 0x1055,0x0000,0x0000, /* 1F00F */ +0x1056,0x0000,0x0000, 0x1057,0x0000,0x0000, 0x1058,0x0000,0x0000, /* 1F012 */ +0x1059,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105B,0x0000,0x0000, /* 1F015 */ +0x105C,0x0000,0x0000, 0x105D,0x0000,0x0000, 0x105E,0x0000,0x0000, /* 1F018 */ +0x105F,0x0000,0x0000, 0x1060,0x0000,0x0000, 0x1061,0x0000,0x0000, /* 1F01B */ +0x1062,0x0000,0x0000, 0x1063,0x0000,0x0000, 0x1064,0x0000,0x0000, /* 1F01E */ +0x1065,0x0000,0x0000, 0x1066,0x0000,0x0000, 0x1067,0x0000,0x0000, /* 1F021 */ +0x1068,0x0000,0x0000, 0x1069,0x0000,0x0000, 0x106A,0x0000,0x0000, /* 1F024 */ +0x106B,0x0000,0x0000, 0x106C,0x0000,0x0000, 0x106D,0x0000,0x0000, /* 1F027 */ +0x106E,0x0000,0x0000, 0x106F,0x0000,0x0000, 0xFBC3,0xF02C,0x0000, /* 1F02A */ +0xFBC3,0xF02D,0x0000, 0xFBC3,0xF02E,0x0000, 0xFBC3,0xF02F,0x0000, /* 1F02D */ +0x1070,0x0000,0x0000, 0x1071,0x0000,0x0000, 0x1072,0x0000,0x0000, /* 1F030 */ +0x1073,0x0000,0x0000, 0x1074,0x0000,0x0000, 0x1075,0x0000,0x0000, /* 1F033 */ +0x1076,0x0000,0x0000, 0x1077,0x0000,0x0000, 0x1078,0x0000,0x0000, /* 1F036 */ +0x1079,0x0000,0x0000, 0x107A,0x0000,0x0000, 0x107B,0x0000,0x0000, /* 1F039 */ +0x107C,0x0000,0x0000, 0x107D,0x0000,0x0000, 0x107E,0x0000,0x0000, /* 1F03C */ +0x107F,0x0000,0x0000, 0x1080,0x0000,0x0000, 0x1081,0x0000,0x0000, /* 1F03F */ +0x1082,0x0000,0x0000, 0x1083,0x0000,0x0000, 0x1084,0x0000,0x0000, /* 1F042 */ +0x1085,0x0000,0x0000, 0x1086,0x0000,0x0000, 0x1087,0x0000,0x0000, /* 1F045 */ +0x1088,0x0000,0x0000, 0x1089,0x0000,0x0000, 0x108A,0x0000,0x0000, /* 1F048 */ +0x108B,0x0000,0x0000, 0x108C,0x0000,0x0000, 0x108D,0x0000,0x0000, /* 1F04B */ +0x108E,0x0000,0x0000, 0x108F,0x0000,0x0000, 0x1090,0x0000,0x0000, /* 1F04E */ +0x1091,0x0000,0x0000, 0x1092,0x0000,0x0000, 0x1093,0x0000,0x0000, /* 1F051 */ +0x1094,0x0000,0x0000, 0x1095,0x0000,0x0000, 0x1096,0x0000,0x0000, /* 1F054 */ +0x1097,0x0000,0x0000, 0x1098,0x0000,0x0000, 0x1099,0x0000,0x0000, /* 1F057 */ +0x109A,0x0000,0x0000, 0x109B,0x0000,0x0000, 0x109C,0x0000,0x0000, /* 1F05A */ +0x109D,0x0000,0x0000, 0x109E,0x0000,0x0000, 0x109F,0x0000,0x0000, /* 1F05D */ +0x10A0,0x0000,0x0000, 0x10A1,0x0000,0x0000, 0x10A2,0x0000,0x0000, /* 1F060 */ +0x10A3,0x0000,0x0000, 0x10A4,0x0000,0x0000, 0x10A5,0x0000,0x0000, /* 1F063 */ +0x10A6,0x0000,0x0000, 0x10A7,0x0000,0x0000, 0x10A8,0x0000,0x0000, /* 1F066 */ +0x10A9,0x0000,0x0000, 0x10AA,0x0000,0x0000, 0x10AB,0x0000,0x0000, /* 1F069 */ +0x10AC,0x0000,0x0000, 0x10AD,0x0000,0x0000, 0x10AE,0x0000,0x0000, /* 1F06C */ +0x10AF,0x0000,0x0000, 0x10B0,0x0000,0x0000, 0x10B1,0x0000,0x0000, /* 1F06F */ +0x10B2,0x0000,0x0000, 0x10B3,0x0000,0x0000, 0x10B4,0x0000,0x0000, /* 1F072 */ +0x10B5,0x0000,0x0000, 0x10B6,0x0000,0x0000, 0x10B7,0x0000,0x0000, /* 1F075 */ +0x10B8,0x0000,0x0000, 0x10B9,0x0000,0x0000, 0x10BA,0x0000,0x0000, /* 1F078 */ +0x10BB,0x0000,0x0000, 0x10BC,0x0000,0x0000, 0x10BD,0x0000,0x0000, /* 1F07B */ +0x10BE,0x0000,0x0000, 0x10BF,0x0000,0x0000, 0x10C0,0x0000,0x0000, /* 1F07E */ +0x10C1,0x0000,0x0000, 0x10C2,0x0000,0x0000, 0x10C3,0x0000,0x0000, /* 1F081 */ +0x10C4,0x0000,0x0000, 0x10C5,0x0000,0x0000, 0x10C6,0x0000,0x0000, /* 1F084 */ +0x10C7,0x0000,0x0000, 0x10C8,0x0000,0x0000, 0x10C9,0x0000,0x0000, /* 1F087 */ +0x10CA,0x0000,0x0000, 0x10CB,0x0000,0x0000, 0x10CC,0x0000,0x0000, /* 1F08A */ +0x10CD,0x0000,0x0000, 0x10CE,0x0000,0x0000, 0x10CF,0x0000,0x0000, /* 1F08D */ +0x10D0,0x0000,0x0000, 0x10D1,0x0000,0x0000, 0x10D2,0x0000,0x0000, /* 1F090 */ +0x10D3,0x0000,0x0000, 0xFBC3,0xF094,0x0000, 0xFBC3,0xF095,0x0000, /* 1F093 */ +0xFBC3,0xF096,0x0000, 0xFBC3,0xF097,0x0000, 0xFBC3,0xF098,0x0000, /* 1F096 */ +0xFBC3,0xF099,0x0000, 0xFBC3,0xF09A,0x0000, 0xFBC3,0xF09B,0x0000, /* 1F099 */ +0xFBC3,0xF09C,0x0000, 0xFBC3,0xF09D,0x0000, 0xFBC3,0xF09E,0x0000, /* 1F09C */ +0xFBC3,0xF09F,0x0000, 0xFBC3,0xF0A0,0x0000, 0xFBC3,0xF0A1,0x0000, /* 1F09F */ +0xFBC3,0xF0A2,0x0000, 0xFBC3,0xF0A3,0x0000, 0xFBC3,0xF0A4,0x0000, /* 1F0A2 */ +0xFBC3,0xF0A5,0x0000, 0xFBC3,0xF0A6,0x0000, 0xFBC3,0xF0A7,0x0000, /* 1F0A5 */ +0xFBC3,0xF0A8,0x0000, 0xFBC3,0xF0A9,0x0000, 0xFBC3,0xF0AA,0x0000, /* 1F0A8 */ +0xFBC3,0xF0AB,0x0000, 0xFBC3,0xF0AC,0x0000, 0xFBC3,0xF0AD,0x0000, /* 1F0AB */ +0xFBC3,0xF0AE,0x0000, 0xFBC3,0xF0AF,0x0000, 0xFBC3,0xF0B0,0x0000, /* 1F0AE */ +0xFBC3,0xF0B1,0x0000, 0xFBC3,0xF0B2,0x0000, 0xFBC3,0xF0B3,0x0000, /* 1F0B1 */ +0xFBC3,0xF0B4,0x0000, 0xFBC3,0xF0B5,0x0000, 0xFBC3,0xF0B6,0x0000, /* 1F0B4 */ +0xFBC3,0xF0B7,0x0000, 0xFBC3,0xF0B8,0x0000, 0xFBC3,0xF0B9,0x0000, /* 1F0B7 */ +0xFBC3,0xF0BA,0x0000, 0xFBC3,0xF0BB,0x0000, 0xFBC3,0xF0BC,0x0000, /* 1F0BA */ +0xFBC3,0xF0BD,0x0000, 0xFBC3,0xF0BE,0x0000, 0xFBC3,0xF0BF,0x0000, /* 1F0BD */ +0xFBC3,0xF0C0,0x0000, 0xFBC3,0xF0C1,0x0000, 0xFBC3,0xF0C2,0x0000, /* 1F0C0 */ +0xFBC3,0xF0C3,0x0000, 0xFBC3,0xF0C4,0x0000, 0xFBC3,0xF0C5,0x0000, /* 1F0C3 */ +0xFBC3,0xF0C6,0x0000, 0xFBC3,0xF0C7,0x0000, 0xFBC3,0xF0C8,0x0000, /* 1F0C6 */ +0xFBC3,0xF0C9,0x0000, 0xFBC3,0xF0CA,0x0000, 0xFBC3,0xF0CB,0x0000, /* 1F0C9 */ +0xFBC3,0xF0CC,0x0000, 0xFBC3,0xF0CD,0x0000, 0xFBC3,0xF0CE,0x0000, /* 1F0CC */ +0xFBC3,0xF0CF,0x0000, 0xFBC3,0xF0D0,0x0000, 0xFBC3,0xF0D1,0x0000, /* 1F0CF */ +0xFBC3,0xF0D2,0x0000, 0xFBC3,0xF0D3,0x0000, 0xFBC3,0xF0D4,0x0000, /* 1F0D2 */ +0xFBC3,0xF0D5,0x0000, 0xFBC3,0xF0D6,0x0000, 0xFBC3,0xF0D7,0x0000, /* 1F0D5 */ +0xFBC3,0xF0D8,0x0000, 0xFBC3,0xF0D9,0x0000, 0xFBC3,0xF0DA,0x0000, /* 1F0D8 */ +0xFBC3,0xF0DB,0x0000, 0xFBC3,0xF0DC,0x0000, 0xFBC3,0xF0DD,0x0000, /* 1F0DB */ +0xFBC3,0xF0DE,0x0000, 0xFBC3,0xF0DF,0x0000, 0xFBC3,0xF0E0,0x0000, /* 1F0DE */ +0xFBC3,0xF0E1,0x0000, 0xFBC3,0xF0E2,0x0000, 0xFBC3,0xF0E3,0x0000, /* 1F0E1 */ +0xFBC3,0xF0E4,0x0000, 0xFBC3,0xF0E5,0x0000, 0xFBC3,0xF0E6,0x0000, /* 1F0E4 */ +0xFBC3,0xF0E7,0x0000, 0xFBC3,0xF0E8,0x0000, 0xFBC3,0xF0E9,0x0000, /* 1F0E7 */ +0xFBC3,0xF0EA,0x0000, 0xFBC3,0xF0EB,0x0000, 0xFBC3,0xF0EC,0x0000, /* 1F0EA */ +0xFBC3,0xF0ED,0x0000, 0xFBC3,0xF0EE,0x0000, 0xFBC3,0xF0EF,0x0000, /* 1F0ED */ +0xFBC3,0xF0F0,0x0000, 0xFBC3,0xF0F1,0x0000, 0xFBC3,0xF0F2,0x0000, /* 1F0F0 */ +0xFBC3,0xF0F3,0x0000, 0xFBC3,0xF0F4,0x0000, 0xFBC3,0xF0F5,0x0000, /* 1F0F3 */ +0xFBC3,0xF0F6,0x0000, 0xFBC3,0xF0F7,0x0000, 0xFBC3,0xF0F8,0x0000, /* 1F0F6 */ +0xFBC3,0xF0F9,0x0000, 0xFBC3,0xF0FA,0x0000, 0xFBC3,0xF0FB,0x0000, /* 1F0F9 */ +0xFBC3,0xF0FC,0x0000, 0xFBC3,0xF0FD,0x0000, 0xFBC3,0xF0FE,0x0000, /* 1F0FC */ +0xFBC3,0xF0FF,0x0000 }; + +static const uint16 uca520_p1F1[]= { /* 1F100 (4 weights per char) */ +0x1205,0x0281,0x0000,0x0000, 0x1205,0x0234,0x0000,0x0000, /* 1F100 */ +0x1206,0x0234,0x0000,0x0000, 0x1207,0x0234,0x0000,0x0000, /* 1F102 */ +0x1208,0x0234,0x0000,0x0000, 0x1209,0x0234,0x0000,0x0000, /* 1F104 */ +0x120A,0x0234,0x0000,0x0000, 0x120B,0x0234,0x0000,0x0000, /* 1F106 */ +0x120C,0x0234,0x0000,0x0000, 0x120D,0x0234,0x0000,0x0000, /* 1F108 */ +0x120E,0x0234,0x0000,0x0000, 0xFBC3,0xF10B,0x0000,0x0000, /* 1F10A */ +0xFBC3,0xF10C,0x0000,0x0000, 0xFBC3,0xF10D,0x0000,0x0000, /* 1F10C */ +0xFBC3,0xF10E,0x0000,0x0000, 0xFBC3,0xF10F,0x0000,0x0000, /* 1F10E */ +0x02FF,0x120F,0x0300,0x0000, 0x02FF,0x1225,0x0300,0x0000, /* 1F110 */ +0x02FF,0x123D,0x0300,0x0000, 0x02FF,0x1250,0x0300,0x0000, /* 1F112 */ +0x02FF,0x126B,0x0300,0x0000, 0x02FF,0x12A3,0x0300,0x0000, /* 1F114 */ +0x02FF,0x12B0,0x0300,0x0000, 0x02FF,0x12D3,0x0300,0x0000, /* 1F116 */ +0x02FF,0x12EC,0x0300,0x0000, 0x02FF,0x1305,0x0300,0x0000, /* 1F118 */ +0x02FF,0x131E,0x0300,0x0000, 0x02FF,0x1330,0x0300,0x0000, /* 1F11A */ +0x02FF,0x135F,0x0300,0x0000, 0x02FF,0x136D,0x0300,0x0000, /* 1F11C */ +0x02FF,0x138E,0x0300,0x0000, 0x02FF,0x13B3,0x0300,0x0000, /* 1F11E */ +0x02FF,0x13C8,0x0300,0x0000, 0x02FF,0x13DA,0x0300,0x0000, /* 1F120 */ +0x02FF,0x1410,0x0300,0x0000, 0x02FF,0x1433,0x0300,0x0000, /* 1F122 */ +0x02FF,0x1453,0x0300,0x0000, 0x02FF,0x147B,0x0300,0x0000, /* 1F124 */ +0x02FF,0x148D,0x0300,0x0000, 0x02FF,0x1497,0x0300,0x0000, /* 1F126 */ +0x02FF,0x149C,0x0300,0x0000, 0x02FF,0x14AD,0x0300,0x0000, /* 1F128 */ +0x0347,0x1410,0x0348,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 1F12A */ +0x13DA,0x0000,0x0000,0x0000, 0x123D,0x1250,0x0000,0x0000, /* 1F12C */ +0x148D,0x14AD,0x0000,0x0000, 0xFBC3,0xF12F,0x0000,0x0000, /* 1F12E */ +0xFBC3,0xF130,0x0000,0x0000, 0x1225,0x0000,0x0000,0x0000, /* 1F130 */ +0xFBC3,0xF132,0x0000,0x0000, 0xFBC3,0xF133,0x0000,0x0000, /* 1F132 */ +0xFBC3,0xF134,0x0000,0x0000, 0xFBC3,0xF135,0x0000,0x0000, /* 1F134 */ +0xFBC3,0xF136,0x0000,0x0000, 0xFBC3,0xF137,0x0000,0x0000, /* 1F136 */ +0xFBC3,0xF138,0x0000,0x0000, 0xFBC3,0xF139,0x0000,0x0000, /* 1F138 */ +0xFBC3,0xF13A,0x0000,0x0000, 0xFBC3,0xF13B,0x0000,0x0000, /* 1F13A */ +0xFBC3,0xF13C,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 1F13C */ +0xFBC3,0xF13E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F13E */ +0xFBC3,0xF140,0x0000,0x0000, 0xFBC3,0xF141,0x0000,0x0000, /* 1F140 */ +0x1410,0x0000,0x0000,0x0000, 0xFBC3,0xF143,0x0000,0x0000, /* 1F142 */ +0xFBC3,0xF144,0x0000,0x0000, 0xFBC3,0xF145,0x0000,0x0000, /* 1F144 */ +0x148D,0x0000,0x0000,0x0000, 0xFBC3,0xF147,0x0000,0x0000, /* 1F146 */ +0xFBC3,0xF148,0x0000,0x0000, 0xFBC3,0xF149,0x0000,0x0000, /* 1F148 */ +0x12D3,0x147B,0x0000,0x0000, 0x135F,0x147B,0x0000,0x0000, /* 1F14A */ +0x1410,0x1250,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 1F14C */ +0x13B3,0x13B3,0x147B,0x0000, 0xFBC3,0xF14F,0x0000,0x0000, /* 1F14E */ +0xFBC3,0xF150,0x0000,0x0000, 0xFBC3,0xF151,0x0000,0x0000, /* 1F150 */ +0xFBC3,0xF152,0x0000,0x0000, 0xFBC3,0xF153,0x0000,0x0000, /* 1F152 */ +0xFBC3,0xF154,0x0000,0x0000, 0xFBC3,0xF155,0x0000,0x0000, /* 1F154 */ +0xFBC3,0xF156,0x0000,0x0000, 0x12D3,0x0000,0x0000,0x0000, /* 1F156 */ +0xFBC3,0xF158,0x0000,0x0000, 0xFBC3,0xF159,0x0000,0x0000, /* 1F158 */ +0xFBC3,0xF15A,0x0000,0x0000, 0xFBC3,0xF15B,0x0000,0x0000, /* 1F15A */ +0xFBC3,0xF15C,0x0000,0x0000, 0xFBC3,0xF15D,0x0000,0x0000, /* 1F15C */ +0xFBC3,0xF15E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F15E */ +0xFBC3,0xF160,0x0000,0x0000, 0xFBC3,0xF161,0x0000,0x0000, /* 1F160 */ +0xFBC3,0xF162,0x0000,0x0000, 0xFBC3,0xF163,0x0000,0x0000, /* 1F162 */ +0xFBC3,0xF164,0x0000,0x0000, 0xFBC3,0xF165,0x0000,0x0000, /* 1F164 */ +0xFBC3,0xF166,0x0000,0x0000, 0xFBC3,0xF167,0x0000,0x0000, /* 1F166 */ +0xFBC3,0xF168,0x0000,0x0000, 0xFBC3,0xF169,0x0000,0x0000, /* 1F168 */ +0xFBC3,0xF16A,0x0000,0x0000, 0xFBC3,0xF16B,0x0000,0x0000, /* 1F16A */ +0xFBC3,0xF16C,0x0000,0x0000, 0xFBC3,0xF16D,0x0000,0x0000, /* 1F16C */ +0xFBC3,0xF16E,0x0000,0x0000, 0xFBC3,0xF16F,0x0000,0x0000, /* 1F16E */ +0xFBC3,0xF170,0x0000,0x0000, 0xFBC3,0xF171,0x0000,0x0000, /* 1F170 */ +0xFBC3,0xF172,0x0000,0x0000, 0xFBC3,0xF173,0x0000,0x0000, /* 1F172 */ +0xFBC3,0xF174,0x0000,0x0000, 0xFBC3,0xF175,0x0000,0x0000, /* 1F174 */ +0xFBC3,0xF176,0x0000,0x0000, 0xFBC3,0xF177,0x0000,0x0000, /* 1F176 */ +0xFBC3,0xF178,0x0000,0x0000, 0x1305,0x0000,0x0000,0x0000, /* 1F178 */ +0xFBC3,0xF17A,0x0000,0x0000, 0x1330,0x0000,0x0000,0x0000, /* 1F17A */ +0x135F,0x0000,0x0000,0x0000, 0xFBC3,0xF17D,0x0000,0x0000, /* 1F17C */ +0xFBC3,0xF17E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F17E */ +0xFBC3,0xF180,0x0000,0x0000, 0xFBC3,0xF181,0x0000,0x0000, /* 1F180 */ +0xFBC3,0xF182,0x0000,0x0000, 0xFBC3,0xF183,0x0000,0x0000, /* 1F182 */ +0xFBC3,0xF184,0x0000,0x0000, 0xFBC3,0xF185,0x0000,0x0000, /* 1F184 */ +0xFBC3,0xF186,0x0000,0x0000, 0xFBC3,0xF187,0x0000,0x0000, /* 1F186 */ +0xFBC3,0xF188,0x0000,0x0000, 0xFBC3,0xF189,0x0000,0x0000, /* 1F188 */ +0x13B3,0x0000,0x0000,0x0000, 0x12EC,0x123D,0x0000,0x0000, /* 1F18A */ +0x13B3,0x120F,0x0000,0x0000, 0x1410,0x120F,0x0000,0x0000, /* 1F18C */ +0xFBC3,0xF18E,0x0000,0x0000, 0xFBC3,0xF18F,0x0000,0x0000, /* 1F18E */ +0x1250,0x1305,0x0000,0x0000, 0xFBC3,0xF191,0x0000,0x0000, /* 1F190 */ +0xFBC3,0xF192,0x0000,0x0000, 0xFBC3,0xF193,0x0000,0x0000, /* 1F192 */ +0xFBC3,0xF194,0x0000,0x0000, 0xFBC3,0xF195,0x0000,0x0000, /* 1F194 */ +0xFBC3,0xF196,0x0000,0x0000, 0xFBC3,0xF197,0x0000,0x0000, /* 1F196 */ +0xFBC3,0xF198,0x0000,0x0000, 0xFBC3,0xF199,0x0000,0x0000, /* 1F198 */ +0xFBC3,0xF19A,0x0000,0x0000, 0xFBC3,0xF19B,0x0000,0x0000, /* 1F19A */ +0xFBC3,0xF19C,0x0000,0x0000, 0xFBC3,0xF19D,0x0000,0x0000, /* 1F19C */ +0xFBC3,0xF19E,0x0000,0x0000, 0xFBC3,0xF19F,0x0000,0x0000, /* 1F19E */ +0xFBC3,0xF1A0,0x0000,0x0000, 0xFBC3,0xF1A1,0x0000,0x0000, /* 1F1A0 */ +0xFBC3,0xF1A2,0x0000,0x0000, 0xFBC3,0xF1A3,0x0000,0x0000, /* 1F1A2 */ +0xFBC3,0xF1A4,0x0000,0x0000, 0xFBC3,0xF1A5,0x0000,0x0000, /* 1F1A4 */ +0xFBC3,0xF1A6,0x0000,0x0000, 0xFBC3,0xF1A7,0x0000,0x0000, /* 1F1A6 */ +0xFBC3,0xF1A8,0x0000,0x0000, 0xFBC3,0xF1A9,0x0000,0x0000, /* 1F1A8 */ +0xFBC3,0xF1AA,0x0000,0x0000, 0xFBC3,0xF1AB,0x0000,0x0000, /* 1F1AA */ +0xFBC3,0xF1AC,0x0000,0x0000, 0xFBC3,0xF1AD,0x0000,0x0000, /* 1F1AC */ +0xFBC3,0xF1AE,0x0000,0x0000, 0xFBC3,0xF1AF,0x0000,0x0000, /* 1F1AE */ +0xFBC3,0xF1B0,0x0000,0x0000, 0xFBC3,0xF1B1,0x0000,0x0000, /* 1F1B0 */ +0xFBC3,0xF1B2,0x0000,0x0000, 0xFBC3,0xF1B3,0x0000,0x0000, /* 1F1B2 */ +0xFBC3,0xF1B4,0x0000,0x0000, 0xFBC3,0xF1B5,0x0000,0x0000, /* 1F1B4 */ +0xFBC3,0xF1B6,0x0000,0x0000, 0xFBC3,0xF1B7,0x0000,0x0000, /* 1F1B6 */ +0xFBC3,0xF1B8,0x0000,0x0000, 0xFBC3,0xF1B9,0x0000,0x0000, /* 1F1B8 */ +0xFBC3,0xF1BA,0x0000,0x0000, 0xFBC3,0xF1BB,0x0000,0x0000, /* 1F1BA */ +0xFBC3,0xF1BC,0x0000,0x0000, 0xFBC3,0xF1BD,0x0000,0x0000, /* 1F1BC */ +0xFBC3,0xF1BE,0x0000,0x0000, 0xFBC3,0xF1BF,0x0000,0x0000, /* 1F1BE */ +0xFBC3,0xF1C0,0x0000,0x0000, 0xFBC3,0xF1C1,0x0000,0x0000, /* 1F1C0 */ +0xFBC3,0xF1C2,0x0000,0x0000, 0xFBC3,0xF1C3,0x0000,0x0000, /* 1F1C2 */ +0xFBC3,0xF1C4,0x0000,0x0000, 0xFBC3,0xF1C5,0x0000,0x0000, /* 1F1C4 */ +0xFBC3,0xF1C6,0x0000,0x0000, 0xFBC3,0xF1C7,0x0000,0x0000, /* 1F1C6 */ +0xFBC3,0xF1C8,0x0000,0x0000, 0xFBC3,0xF1C9,0x0000,0x0000, /* 1F1C8 */ +0xFBC3,0xF1CA,0x0000,0x0000, 0xFBC3,0xF1CB,0x0000,0x0000, /* 1F1CA */ +0xFBC3,0xF1CC,0x0000,0x0000, 0xFBC3,0xF1CD,0x0000,0x0000, /* 1F1CC */ +0xFBC3,0xF1CE,0x0000,0x0000, 0xFBC3,0xF1CF,0x0000,0x0000, /* 1F1CE */ +0xFBC3,0xF1D0,0x0000,0x0000, 0xFBC3,0xF1D1,0x0000,0x0000, /* 1F1D0 */ +0xFBC3,0xF1D2,0x0000,0x0000, 0xFBC3,0xF1D3,0x0000,0x0000, /* 1F1D2 */ +0xFBC3,0xF1D4,0x0000,0x0000, 0xFBC3,0xF1D5,0x0000,0x0000, /* 1F1D4 */ +0xFBC3,0xF1D6,0x0000,0x0000, 0xFBC3,0xF1D7,0x0000,0x0000, /* 1F1D6 */ +0xFBC3,0xF1D8,0x0000,0x0000, 0xFBC3,0xF1D9,0x0000,0x0000, /* 1F1D8 */ +0xFBC3,0xF1DA,0x0000,0x0000, 0xFBC3,0xF1DB,0x0000,0x0000, /* 1F1DA */ +0xFBC3,0xF1DC,0x0000,0x0000, 0xFBC3,0xF1DD,0x0000,0x0000, /* 1F1DC */ +0xFBC3,0xF1DE,0x0000,0x0000, 0xFBC3,0xF1DF,0x0000,0x0000, /* 1F1DE */ +0xFBC3,0xF1E0,0x0000,0x0000, 0xFBC3,0xF1E1,0x0000,0x0000, /* 1F1E0 */ +0xFBC3,0xF1E2,0x0000,0x0000, 0xFBC3,0xF1E3,0x0000,0x0000, /* 1F1E2 */ +0xFBC3,0xF1E4,0x0000,0x0000, 0xFBC3,0xF1E5,0x0000,0x0000, /* 1F1E4 */ +0xFBC3,0xF1E6,0x0000,0x0000, 0xFBC3,0xF1E7,0x0000,0x0000, /* 1F1E6 */ +0xFBC3,0xF1E8,0x0000,0x0000, 0xFBC3,0xF1E9,0x0000,0x0000, /* 1F1E8 */ +0xFBC3,0xF1EA,0x0000,0x0000, 0xFBC3,0xF1EB,0x0000,0x0000, /* 1F1EA */ +0xFBC3,0xF1EC,0x0000,0x0000, 0xFBC3,0xF1ED,0x0000,0x0000, /* 1F1EC */ +0xFBC3,0xF1EE,0x0000,0x0000, 0xFBC3,0xF1EF,0x0000,0x0000, /* 1F1EE */ +0xFBC3,0xF1F0,0x0000,0x0000, 0xFBC3,0xF1F1,0x0000,0x0000, /* 1F1F0 */ +0xFBC3,0xF1F2,0x0000,0x0000, 0xFBC3,0xF1F3,0x0000,0x0000, /* 1F1F2 */ +0xFBC3,0xF1F4,0x0000,0x0000, 0xFBC3,0xF1F5,0x0000,0x0000, /* 1F1F4 */ +0xFBC3,0xF1F6,0x0000,0x0000, 0xFBC3,0xF1F7,0x0000,0x0000, /* 1F1F6 */ +0xFBC3,0xF1F8,0x0000,0x0000, 0xFBC3,0xF1F9,0x0000,0x0000, /* 1F1F8 */ +0xFBC3,0xF1FA,0x0000,0x0000, 0xFBC3,0xF1FB,0x0000,0x0000, /* 1F1FA */ +0xFBC3,0xF1FC,0x0000,0x0000, 0xFBC3,0xF1FD,0x0000,0x0000, /* 1F1FC */ +0xFBC3,0xF1FE,0x0000,0x0000, 0xFBC3,0xF1FF,0x0000,0x0000 /* 1F1FE */ +}; + +static const uint16 uca520_p1F2[]= { /* 1F200 (5 weights per char) */ +0x2B32,0x2B1A,0x0000,0x0000,0x0000, /* 1F200 */ +0xFBC3,0xF201,0x0000,0x0000,0x0000, /* 1F201 */ +0xFBC3,0xF202,0x0000,0x0000,0x0000, /* 1F202 */ +0xFBC3,0xF203,0x0000,0x0000,0x0000, /* 1F203 */ +0xFBC3,0xF204,0x0000,0x0000,0x0000, /* 1F204 */ +0xFBC3,0xF205,0x0000,0x0000,0x0000, /* 1F205 */ +0xFBC3,0xF206,0x0000,0x0000,0x0000, /* 1F206 */ +0xFBC3,0xF207,0x0000,0x0000,0x0000, /* 1F207 */ +0xFBC3,0xF208,0x0000,0x0000,0x0000, /* 1F208 */ +0xFBC3,0xF209,0x0000,0x0000,0x0000, /* 1F209 */ +0xFBC3,0xF20A,0x0000,0x0000,0x0000, /* 1F20A */ +0xFBC3,0xF20B,0x0000,0x0000,0x0000, /* 1F20B */ +0xFBC3,0xF20C,0x0000,0x0000,0x0000, /* 1F20C */ +0xFBC3,0xF20D,0x0000,0x0000,0x0000, /* 1F20D */ +0xFBC3,0xF20E,0x0000,0x0000,0x0000, /* 1F20E */ +0xFBC3,0xF20F,0x0000,0x0000,0x0000, /* 1F20F */ +0xFB40,0xE24B,0x0000,0x0000,0x0000, /* 1F210 */ +0xFB40,0xDB57,0x0000,0x0000,0x0000, /* 1F211 */ +0xFB40,0xD3CC,0x0000,0x0000,0x0000, /* 1F212 */ +0x2B27,0x0000,0x0000,0x0000,0x0000, /* 1F213 */ +0xFB40,0xCE8C,0x0000,0x0000,0x0000, /* 1F214 */ +0xFB40,0xD91A,0x0000,0x0000,0x0000, /* 1F215 */ +0xFB41,0x89E3,0x0000,0x0000,0x0000, /* 1F216 */ +0xFB40,0xD929,0x0000,0x0000,0x0000, /* 1F217 */ +0xFB40,0xCEA4,0x0000,0x0000,0x0000, /* 1F218 */ +0xFB40,0xE620,0x0000,0x0000,0x0000, /* 1F219 */ +0xFB40,0xF121,0x0000,0x0000,0x0000, /* 1F21A */ +0xFB40,0xE599,0x0000,0x0000,0x0000, /* 1F21B */ +0xFB40,0xD24D,0x0000,0x0000,0x0000, /* 1F21C */ +0xFB40,0xDF8C,0x0000,0x0000,0x0000, /* 1F21D */ +0xFB40,0xD18D,0x0000,0x0000,0x0000, /* 1F21E */ +0xFB40,0xE5B0,0x0000,0x0000,0x0000, /* 1F21F */ +0xFB40,0xD21D,0x0000,0x0000,0x0000, /* 1F220 */ +0xFB40,0xFD42,0x0000,0x0000,0x0000, /* 1F221 */ +0xFB40,0xF51F,0x0000,0x0000,0x0000, /* 1F222 */ +0xFB41,0x8CA9,0x0000,0x0000,0x0000, /* 1F223 */ +0xFB40,0xD8F0,0x0000,0x0000,0x0000, /* 1F224 */ +0xFB40,0xD439,0x0000,0x0000,0x0000, /* 1F225 */ +0xFB40,0xEF14,0x0000,0x0000,0x0000, /* 1F226 */ +0xFB40,0xE295,0x0000,0x0000,0x0000, /* 1F227 */ +0xFB40,0xE355,0x0000,0x0000,0x0000, /* 1F228 */ +0xFB40,0xCE00,0x0000,0x0000,0x0000, /* 1F229 */ +0xFB40,0xCE09,0x0000,0x0000,0x0000, /* 1F22A */ +0xFB41,0x904A,0x0000,0x0000,0x0000, /* 1F22B */ +0xFB40,0xDDE6,0x0000,0x0000,0x0000, /* 1F22C */ +0xFB40,0xCE2D,0x0000,0x0000,0x0000, /* 1F22D */ +0xFB40,0xD3F3,0x0000,0x0000,0x0000, /* 1F22E */ +0xFB40,0xE307,0x0000,0x0000,0x0000, /* 1F22F */ +0xFB41,0x8D70,0x0000,0x0000,0x0000, /* 1F230 */ +0xFB40,0xE253,0x0000,0x0000,0x0000, /* 1F231 */ +0xFBC3,0xF232,0x0000,0x0000,0x0000, /* 1F232 */ +0xFBC3,0xF233,0x0000,0x0000,0x0000, /* 1F233 */ +0xFBC3,0xF234,0x0000,0x0000,0x0000, /* 1F234 */ +0xFBC3,0xF235,0x0000,0x0000,0x0000, /* 1F235 */ +0xFBC3,0xF236,0x0000,0x0000,0x0000, /* 1F236 */ +0xFBC3,0xF237,0x0000,0x0000,0x0000, /* 1F237 */ +0xFBC3,0xF238,0x0000,0x0000,0x0000, /* 1F238 */ +0xFBC3,0xF239,0x0000,0x0000,0x0000, /* 1F239 */ +0xFBC3,0xF23A,0x0000,0x0000,0x0000, /* 1F23A */ +0xFBC3,0xF23B,0x0000,0x0000,0x0000, /* 1F23B */ +0xFBC3,0xF23C,0x0000,0x0000,0x0000, /* 1F23C */ +0xFBC3,0xF23D,0x0000,0x0000,0x0000, /* 1F23D */ +0xFBC3,0xF23E,0x0000,0x0000,0x0000, /* 1F23E */ +0xFBC3,0xF23F,0x0000,0x0000,0x0000, /* 1F23F */ +0x0347,0xFB40,0xE72C,0x0348,0x0000, /* 1F240 */ +0x0347,0xFB40,0xCE09,0x0348,0x0000, /* 1F241 */ +0x0347,0xFB40,0xCE8C,0x0348,0x0000, /* 1F242 */ +0x0347,0xFB40,0xDB89,0x0348,0x0000, /* 1F243 */ +0x0347,0xFB40,0xF0B9,0x0348,0x0000, /* 1F244 */ +0x0347,0xFB40,0xE253,0x0348,0x0000, /* 1F245 */ +0x0347,0xFB40,0xF6D7,0x0348,0x0000, /* 1F246 */ +0x0347,0xFB40,0xD2DD,0x0348,0x0000, /* 1F247 */ +0x0347,0xFB40,0xE557,0x0348,0x0000, /* 1F248 */ +0xFBC3,0xF249,0x0000,0x0000,0x0000, /* 1F249 */ +0xFBC3,0xF24A,0x0000,0x0000,0x0000, /* 1F24A */ +0xFBC3,0xF24B,0x0000,0x0000,0x0000, /* 1F24B */ +0xFBC3,0xF24C,0x0000,0x0000,0x0000, /* 1F24C */ +0xFBC3,0xF24D,0x0000,0x0000,0x0000, /* 1F24D */ +0xFBC3,0xF24E,0x0000,0x0000,0x0000, /* 1F24E */ +0xFBC3,0xF24F,0x0000,0x0000,0x0000, /* 1F24F */ +0xFBC3,0xF250,0x0000,0x0000,0x0000, /* 1F250 */ +0xFBC3,0xF251,0x0000,0x0000,0x0000, /* 1F251 */ +0xFBC3,0xF252,0x0000,0x0000,0x0000, /* 1F252 */ +0xFBC3,0xF253,0x0000,0x0000,0x0000, /* 1F253 */ +0xFBC3,0xF254,0x0000,0x0000,0x0000, /* 1F254 */ +0xFBC3,0xF255,0x0000,0x0000,0x0000, /* 1F255 */ +0xFBC3,0xF256,0x0000,0x0000,0x0000, /* 1F256 */ +0xFBC3,0xF257,0x0000,0x0000,0x0000, /* 1F257 */ +0xFBC3,0xF258,0x0000,0x0000,0x0000, /* 1F258 */ +0xFBC3,0xF259,0x0000,0x0000,0x0000, /* 1F259 */ +0xFBC3,0xF25A,0x0000,0x0000,0x0000, /* 1F25A */ +0xFBC3,0xF25B,0x0000,0x0000,0x0000, /* 1F25B */ +0xFBC3,0xF25C,0x0000,0x0000,0x0000, /* 1F25C */ +0xFBC3,0xF25D,0x0000,0x0000,0x0000, /* 1F25D */ +0xFBC3,0xF25E,0x0000,0x0000,0x0000, /* 1F25E */ +0xFBC3,0xF25F,0x0000,0x0000,0x0000, /* 1F25F */ +0xFBC3,0xF260,0x0000,0x0000,0x0000, /* 1F260 */ +0xFBC3,0xF261,0x0000,0x0000,0x0000, /* 1F261 */ +0xFBC3,0xF262,0x0000,0x0000,0x0000, /* 1F262 */ +0xFBC3,0xF263,0x0000,0x0000,0x0000, /* 1F263 */ +0xFBC3,0xF264,0x0000,0x0000,0x0000, /* 1F264 */ +0xFBC3,0xF265,0x0000,0x0000,0x0000, /* 1F265 */ +0xFBC3,0xF266,0x0000,0x0000,0x0000, /* 1F266 */ +0xFBC3,0xF267,0x0000,0x0000,0x0000, /* 1F267 */ +0xFBC3,0xF268,0x0000,0x0000,0x0000, /* 1F268 */ +0xFBC3,0xF269,0x0000,0x0000,0x0000, /* 1F269 */ +0xFBC3,0xF26A,0x0000,0x0000,0x0000, /* 1F26A */ +0xFBC3,0xF26B,0x0000,0x0000,0x0000, /* 1F26B */ +0xFBC3,0xF26C,0x0000,0x0000,0x0000, /* 1F26C */ +0xFBC3,0xF26D,0x0000,0x0000,0x0000, /* 1F26D */ +0xFBC3,0xF26E,0x0000,0x0000,0x0000, /* 1F26E */ +0xFBC3,0xF26F,0x0000,0x0000,0x0000, /* 1F26F */ +0xFBC3,0xF270,0x0000,0x0000,0x0000, /* 1F270 */ +0xFBC3,0xF271,0x0000,0x0000,0x0000, /* 1F271 */ +0xFBC3,0xF272,0x0000,0x0000,0x0000, /* 1F272 */ +0xFBC3,0xF273,0x0000,0x0000,0x0000, /* 1F273 */ +0xFBC3,0xF274,0x0000,0x0000,0x0000, /* 1F274 */ +0xFBC3,0xF275,0x0000,0x0000,0x0000, /* 1F275 */ +0xFBC3,0xF276,0x0000,0x0000,0x0000, /* 1F276 */ +0xFBC3,0xF277,0x0000,0x0000,0x0000, /* 1F277 */ +0xFBC3,0xF278,0x0000,0x0000,0x0000, /* 1F278 */ +0xFBC3,0xF279,0x0000,0x0000,0x0000, /* 1F279 */ +0xFBC3,0xF27A,0x0000,0x0000,0x0000, /* 1F27A */ +0xFBC3,0xF27B,0x0000,0x0000,0x0000, /* 1F27B */ +0xFBC3,0xF27C,0x0000,0x0000,0x0000, /* 1F27C */ +0xFBC3,0xF27D,0x0000,0x0000,0x0000, /* 1F27D */ +0xFBC3,0xF27E,0x0000,0x0000,0x0000, /* 1F27E */ +0xFBC3,0xF27F,0x0000,0x0000,0x0000, /* 1F27F */ +0xFBC3,0xF280,0x0000,0x0000,0x0000, /* 1F280 */ +0xFBC3,0xF281,0x0000,0x0000,0x0000, /* 1F281 */ +0xFBC3,0xF282,0x0000,0x0000,0x0000, /* 1F282 */ +0xFBC3,0xF283,0x0000,0x0000,0x0000, /* 1F283 */ +0xFBC3,0xF284,0x0000,0x0000,0x0000, /* 1F284 */ +0xFBC3,0xF285,0x0000,0x0000,0x0000, /* 1F285 */ +0xFBC3,0xF286,0x0000,0x0000,0x0000, /* 1F286 */ +0xFBC3,0xF287,0x0000,0x0000,0x0000, /* 1F287 */ +0xFBC3,0xF288,0x0000,0x0000,0x0000, /* 1F288 */ +0xFBC3,0xF289,0x0000,0x0000,0x0000, /* 1F289 */ +0xFBC3,0xF28A,0x0000,0x0000,0x0000, /* 1F28A */ +0xFBC3,0xF28B,0x0000,0x0000,0x0000, /* 1F28B */ +0xFBC3,0xF28C,0x0000,0x0000,0x0000, /* 1F28C */ +0xFBC3,0xF28D,0x0000,0x0000,0x0000, /* 1F28D */ +0xFBC3,0xF28E,0x0000,0x0000,0x0000, /* 1F28E */ +0xFBC3,0xF28F,0x0000,0x0000,0x0000, /* 1F28F */ +0xFBC3,0xF290,0x0000,0x0000,0x0000, /* 1F290 */ +0xFBC3,0xF291,0x0000,0x0000,0x0000, /* 1F291 */ +0xFBC3,0xF292,0x0000,0x0000,0x0000, /* 1F292 */ +0xFBC3,0xF293,0x0000,0x0000,0x0000, /* 1F293 */ +0xFBC3,0xF294,0x0000,0x0000,0x0000, /* 1F294 */ +0xFBC3,0xF295,0x0000,0x0000,0x0000, /* 1F295 */ +0xFBC3,0xF296,0x0000,0x0000,0x0000, /* 1F296 */ +0xFBC3,0xF297,0x0000,0x0000,0x0000, /* 1F297 */ +0xFBC3,0xF298,0x0000,0x0000,0x0000, /* 1F298 */ +0xFBC3,0xF299,0x0000,0x0000,0x0000, /* 1F299 */ +0xFBC3,0xF29A,0x0000,0x0000,0x0000, /* 1F29A */ +0xFBC3,0xF29B,0x0000,0x0000,0x0000, /* 1F29B */ +0xFBC3,0xF29C,0x0000,0x0000,0x0000, /* 1F29C */ +0xFBC3,0xF29D,0x0000,0x0000,0x0000, /* 1F29D */ +0xFBC3,0xF29E,0x0000,0x0000,0x0000, /* 1F29E */ +0xFBC3,0xF29F,0x0000,0x0000,0x0000, /* 1F29F */ +0xFBC3,0xF2A0,0x0000,0x0000,0x0000, /* 1F2A0 */ +0xFBC3,0xF2A1,0x0000,0x0000,0x0000, /* 1F2A1 */ +0xFBC3,0xF2A2,0x0000,0x0000,0x0000, /* 1F2A2 */ +0xFBC3,0xF2A3,0x0000,0x0000,0x0000, /* 1F2A3 */ +0xFBC3,0xF2A4,0x0000,0x0000,0x0000, /* 1F2A4 */ +0xFBC3,0xF2A5,0x0000,0x0000,0x0000, /* 1F2A5 */ +0xFBC3,0xF2A6,0x0000,0x0000,0x0000, /* 1F2A6 */ +0xFBC3,0xF2A7,0x0000,0x0000,0x0000, /* 1F2A7 */ +0xFBC3,0xF2A8,0x0000,0x0000,0x0000, /* 1F2A8 */ +0xFBC3,0xF2A9,0x0000,0x0000,0x0000, /* 1F2A9 */ +0xFBC3,0xF2AA,0x0000,0x0000,0x0000, /* 1F2AA */ +0xFBC3,0xF2AB,0x0000,0x0000,0x0000, /* 1F2AB */ +0xFBC3,0xF2AC,0x0000,0x0000,0x0000, /* 1F2AC */ +0xFBC3,0xF2AD,0x0000,0x0000,0x0000, /* 1F2AD */ +0xFBC3,0xF2AE,0x0000,0x0000,0x0000, /* 1F2AE */ +0xFBC3,0xF2AF,0x0000,0x0000,0x0000, /* 1F2AF */ +0xFBC3,0xF2B0,0x0000,0x0000,0x0000, /* 1F2B0 */ +0xFBC3,0xF2B1,0x0000,0x0000,0x0000, /* 1F2B1 */ +0xFBC3,0xF2B2,0x0000,0x0000,0x0000, /* 1F2B2 */ +0xFBC3,0xF2B3,0x0000,0x0000,0x0000, /* 1F2B3 */ +0xFBC3,0xF2B4,0x0000,0x0000,0x0000, /* 1F2B4 */ +0xFBC3,0xF2B5,0x0000,0x0000,0x0000, /* 1F2B5 */ +0xFBC3,0xF2B6,0x0000,0x0000,0x0000, /* 1F2B6 */ +0xFBC3,0xF2B7,0x0000,0x0000,0x0000, /* 1F2B7 */ +0xFBC3,0xF2B8,0x0000,0x0000,0x0000, /* 1F2B8 */ +0xFBC3,0xF2B9,0x0000,0x0000,0x0000, /* 1F2B9 */ +0xFBC3,0xF2BA,0x0000,0x0000,0x0000, /* 1F2BA */ +0xFBC3,0xF2BB,0x0000,0x0000,0x0000, /* 1F2BB */ +0xFBC3,0xF2BC,0x0000,0x0000,0x0000, /* 1F2BC */ +0xFBC3,0xF2BD,0x0000,0x0000,0x0000, /* 1F2BD */ +0xFBC3,0xF2BE,0x0000,0x0000,0x0000, /* 1F2BE */ +0xFBC3,0xF2BF,0x0000,0x0000,0x0000, /* 1F2BF */ +0xFBC3,0xF2C0,0x0000,0x0000,0x0000, /* 1F2C0 */ +0xFBC3,0xF2C1,0x0000,0x0000,0x0000, /* 1F2C1 */ +0xFBC3,0xF2C2,0x0000,0x0000,0x0000, /* 1F2C2 */ +0xFBC3,0xF2C3,0x0000,0x0000,0x0000, /* 1F2C3 */ +0xFBC3,0xF2C4,0x0000,0x0000,0x0000, /* 1F2C4 */ +0xFBC3,0xF2C5,0x0000,0x0000,0x0000, /* 1F2C5 */ +0xFBC3,0xF2C6,0x0000,0x0000,0x0000, /* 1F2C6 */ +0xFBC3,0xF2C7,0x0000,0x0000,0x0000, /* 1F2C7 */ +0xFBC3,0xF2C8,0x0000,0x0000,0x0000, /* 1F2C8 */ +0xFBC3,0xF2C9,0x0000,0x0000,0x0000, /* 1F2C9 */ +0xFBC3,0xF2CA,0x0000,0x0000,0x0000, /* 1F2CA */ +0xFBC3,0xF2CB,0x0000,0x0000,0x0000, /* 1F2CB */ +0xFBC3,0xF2CC,0x0000,0x0000,0x0000, /* 1F2CC */ +0xFBC3,0xF2CD,0x0000,0x0000,0x0000, /* 1F2CD */ +0xFBC3,0xF2CE,0x0000,0x0000,0x0000, /* 1F2CE */ +0xFBC3,0xF2CF,0x0000,0x0000,0x0000, /* 1F2CF */ +0xFBC3,0xF2D0,0x0000,0x0000,0x0000, /* 1F2D0 */ +0xFBC3,0xF2D1,0x0000,0x0000,0x0000, /* 1F2D1 */ +0xFBC3,0xF2D2,0x0000,0x0000,0x0000, /* 1F2D2 */ +0xFBC3,0xF2D3,0x0000,0x0000,0x0000, /* 1F2D3 */ +0xFBC3,0xF2D4,0x0000,0x0000,0x0000, /* 1F2D4 */ +0xFBC3,0xF2D5,0x0000,0x0000,0x0000, /* 1F2D5 */ +0xFBC3,0xF2D6,0x0000,0x0000,0x0000, /* 1F2D6 */ +0xFBC3,0xF2D7,0x0000,0x0000,0x0000, /* 1F2D7 */ +0xFBC3,0xF2D8,0x0000,0x0000,0x0000, /* 1F2D8 */ +0xFBC3,0xF2D9,0x0000,0x0000,0x0000, /* 1F2D9 */ +0xFBC3,0xF2DA,0x0000,0x0000,0x0000, /* 1F2DA */ +0xFBC3,0xF2DB,0x0000,0x0000,0x0000, /* 1F2DB */ +0xFBC3,0xF2DC,0x0000,0x0000,0x0000, /* 1F2DC */ +0xFBC3,0xF2DD,0x0000,0x0000,0x0000, /* 1F2DD */ +0xFBC3,0xF2DE,0x0000,0x0000,0x0000, /* 1F2DE */ +0xFBC3,0xF2DF,0x0000,0x0000,0x0000, /* 1F2DF */ +0xFBC3,0xF2E0,0x0000,0x0000,0x0000, /* 1F2E0 */ +0xFBC3,0xF2E1,0x0000,0x0000,0x0000, /* 1F2E1 */ +0xFBC3,0xF2E2,0x0000,0x0000,0x0000, /* 1F2E2 */ +0xFBC3,0xF2E3,0x0000,0x0000,0x0000, /* 1F2E3 */ +0xFBC3,0xF2E4,0x0000,0x0000,0x0000, /* 1F2E4 */ +0xFBC3,0xF2E5,0x0000,0x0000,0x0000, /* 1F2E5 */ +0xFBC3,0xF2E6,0x0000,0x0000,0x0000, /* 1F2E6 */ +0xFBC3,0xF2E7,0x0000,0x0000,0x0000, /* 1F2E7 */ +0xFBC3,0xF2E8,0x0000,0x0000,0x0000, /* 1F2E8 */ +0xFBC3,0xF2E9,0x0000,0x0000,0x0000, /* 1F2E9 */ +0xFBC3,0xF2EA,0x0000,0x0000,0x0000, /* 1F2EA */ +0xFBC3,0xF2EB,0x0000,0x0000,0x0000, /* 1F2EB */ +0xFBC3,0xF2EC,0x0000,0x0000,0x0000, /* 1F2EC */ +0xFBC3,0xF2ED,0x0000,0x0000,0x0000, /* 1F2ED */ +0xFBC3,0xF2EE,0x0000,0x0000,0x0000, /* 1F2EE */ +0xFBC3,0xF2EF,0x0000,0x0000,0x0000, /* 1F2EF */ +0xFBC3,0xF2F0,0x0000,0x0000,0x0000, /* 1F2F0 */ +0xFBC3,0xF2F1,0x0000,0x0000,0x0000, /* 1F2F1 */ +0xFBC3,0xF2F2,0x0000,0x0000,0x0000, /* 1F2F2 */ +0xFBC3,0xF2F3,0x0000,0x0000,0x0000, /* 1F2F3 */ +0xFBC3,0xF2F4,0x0000,0x0000,0x0000, /* 1F2F4 */ +0xFBC3,0xF2F5,0x0000,0x0000,0x0000, /* 1F2F5 */ +0xFBC3,0xF2F6,0x0000,0x0000,0x0000, /* 1F2F6 */ +0xFBC3,0xF2F7,0x0000,0x0000,0x0000, /* 1F2F7 */ +0xFBC3,0xF2F8,0x0000,0x0000,0x0000, /* 1F2F8 */ +0xFBC3,0xF2F9,0x0000,0x0000,0x0000, /* 1F2F9 */ +0xFBC3,0xF2FA,0x0000,0x0000,0x0000, /* 1F2FA */ +0xFBC3,0xF2FB,0x0000,0x0000,0x0000, /* 1F2FB */ +0xFBC3,0xF2FC,0x0000,0x0000,0x0000, /* 1F2FC */ +0xFBC3,0xF2FD,0x0000,0x0000,0x0000, /* 1F2FD */ +0xFBC3,0xF2FE,0x0000,0x0000,0x0000, /* 1F2FE */ +0xFBC3,0xF2FF,0x0000,0x0000,0x0000 /* 1F2FF */ +}; + +static const uint16 uca520_p2F8[]= { /* 2F800 (3 weights per char) */ +0xFB40,0xCE3D,0x0000, 0xFB40,0xCE38,0x0000, 0xFB40,0xCE41,0x0000, /* 2F800 */ +0xFB84,0x8122,0x0000, 0xFB40,0xCF60,0x0000, 0xFB40,0xCFAE,0x0000, /* 2F803 */ +0xFB40,0xCFBB,0x0000, 0xFB40,0xD002,0x0000, 0xFB40,0xD07A,0x0000, /* 2F806 */ +0xFB40,0xD099,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD0CF,0x0000, /* 2F809 */ +0xFB80,0xB49E,0x0000, 0xFB84,0x863A,0x0000, 0xFB40,0xD14D,0x0000, /* 2F80C */ +0xFB40,0xD154,0x0000, 0xFB40,0xD164,0x0000, 0xFB40,0xD177,0x0000, /* 2F80F */ +0xFB84,0x851C,0x0000, 0xFB80,0xB4B9,0x0000, 0xFB40,0xD167,0x0000, /* 2F812 */ +0xFB40,0xD18D,0x0000, 0xFB84,0x854B,0x0000, 0xFB40,0xD197,0x0000, /* 2F815 */ +0xFB40,0xD1A4,0x0000, 0xFB40,0xCECC,0x0000, 0xFB40,0xD1AC,0x0000, /* 2F818 */ +0xFB40,0xD1B5,0x0000, 0xFB85,0x91DF,0x0000, 0xFB40,0xD1F5,0x0000, /* 2F81B */ +0xFB40,0xD203,0x0000, 0xFB80,0xB4DF,0x0000, 0xFB40,0xD23B,0x0000, /* 2F81E */ +0xFB40,0xD246,0x0000, 0xFB40,0xD272,0x0000, 0xFB40,0xD277,0x0000, /* 2F821 */ +0xFB80,0xB515,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2C9,0x0000, /* 2F824 */ +0xFB40,0xD2E4,0x0000, 0xFB40,0xD2FA,0x0000, 0xFB40,0xD305,0x0000, /* 2F827 */ +0xFB40,0xD306,0x0000, 0xFB40,0xD317,0x0000, 0xFB40,0xD349,0x0000, /* 2F82A */ +0xFB40,0xD351,0x0000, 0xFB40,0xD35A,0x0000, 0xFB40,0xD373,0x0000, /* 2F82D */ +0xFB40,0xD37D,0x0000, 0xFB40,0xD37F,0x0000, 0xFB40,0xD37F,0x0000, /* 2F830 */ +0xFB40,0xD37F,0x0000, 0xFB84,0x8A2C,0x0000, 0xFB40,0xF070,0x0000, /* 2F833 */ +0xFB40,0xD3CA,0x0000, 0xFB40,0xD3DF,0x0000, 0xFB84,0x8B63,0x0000, /* 2F836 */ +0xFB40,0xD3EB,0x0000, 0xFB40,0xD3F1,0x0000, 0xFB40,0xD406,0x0000, /* 2F839 */ +0xFB40,0xD49E,0x0000, 0xFB40,0xD438,0x0000, 0xFB40,0xD448,0x0000, /* 2F83C */ +0xFB40,0xD468,0x0000, 0xFB40,0xD4A2,0x0000, 0xFB40,0xD4F6,0x0000, /* 2F83F */ +0xFB40,0xD510,0x0000, 0xFB40,0xD553,0x0000, 0xFB40,0xD563,0x0000, /* 2F842 */ +0xFB40,0xD584,0x0000, 0xFB40,0xD584,0x0000, 0xFB40,0xD599,0x0000, /* 2F845 */ +0xFB40,0xD5AB,0x0000, 0xFB40,0xD5B3,0x0000, 0xFB40,0xD5C2,0x0000, /* 2F848 */ +0xFB40,0xD716,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD717,0x0000, /* 2F84B */ +0xFB40,0xD651,0x0000, 0xFB40,0xD674,0x0000, 0xFB40,0xD207,0x0000, /* 2F84E */ +0xFB40,0xD8EE,0x0000, 0xFB40,0xD7CE,0x0000, 0xFB40,0xD7F4,0x0000, /* 2F851 */ +0xFB40,0xD80D,0x0000, 0xFB40,0xD78B,0x0000, 0xFB40,0xD832,0x0000, /* 2F854 */ +0xFB40,0xD831,0x0000, 0xFB40,0xD8AC,0x0000, 0xFB84,0x94E4,0x0000, /* 2F857 */ +0xFB40,0xD8F2,0x0000, 0xFB40,0xD8F7,0x0000, 0xFB40,0xD906,0x0000, /* 2F85A */ +0xFB40,0xD91A,0x0000, 0xFB40,0xD922,0x0000, 0xFB40,0xD962,0x0000, /* 2F85D */ +0xFB84,0x96A8,0x0000, 0xFB84,0x96EA,0x0000, 0xFB40,0xD9EC,0x0000, /* 2F860 */ +0xFB40,0xDA1B,0x0000, 0xFB40,0xDA27,0x0000, 0xFB40,0xD9D8,0x0000, /* 2F863 */ +0xFB40,0xDA66,0x0000, 0xFB80,0xB6EE,0x0000, 0xFB80,0xB6FC,0x0000, /* 2F866 */ +0xFB40,0xDB08,0x0000, 0xFB40,0xDB3E,0x0000, 0xFB40,0xDB3E,0x0000, /* 2F869 */ +0xFB84,0x99C8,0x0000, 0xFB40,0xDBC3,0x0000, 0xFB40,0xDBD8,0x0000, /* 2F86C */ +0xFB40,0xDBE7,0x0000, 0xFB40,0xDBF3,0x0000, 0xFB84,0x9B18,0x0000, /* 2F86F */ +0xFB40,0xDBFF,0x0000, 0xFB40,0xDC06,0x0000, 0xFB40,0xDF53,0x0000, /* 2F872 */ +0xFB40,0xDC22,0x0000, 0xFB80,0xB781,0x0000, 0xFB40,0xDC60,0x0000, /* 2F875 */ +0xFB40,0xDC6E,0x0000, 0xFB40,0xDCC0,0x0000, 0xFB40,0xDC8D,0x0000, /* 2F878 */ +0xFB84,0x9DE4,0x0000, 0xFB40,0xDD43,0x0000, 0xFB84,0x9DE6,0x0000, /* 2F87B */ +0xFB40,0xDD6E,0x0000, 0xFB40,0xDD6B,0x0000, 0xFB40,0xDD7C,0x0000, /* 2F87E */ +0xFB40,0xDDE1,0x0000, 0xFB40,0xDDE2,0x0000, 0xFB80,0xB82F,0x0000, /* 2F881 */ +0xFB40,0xDDFD,0x0000, 0xFB40,0xDE28,0x0000, 0xFB40,0xDE3D,0x0000, /* 2F884 */ +0xFB40,0xDE69,0x0000, 0xFB80,0xB862,0x0000, 0xFB84,0xA183,0x0000, /* 2F887 */ +0xFB80,0xB87C,0x0000, 0xFB40,0xDEB0,0x0000, 0xFB40,0xDEB3,0x0000, /* 2F88A */ +0xFB40,0xDEB6,0x0000, 0xFB40,0xDECA,0x0000, 0xFB85,0xA392,0x0000, /* 2F88D */ +0xFB40,0xDEFE,0x0000, 0xFB84,0xA331,0x0000, 0xFB84,0xA331,0x0000, /* 2F890 */ +0xFB41,0x8201,0x0000, 0xFB40,0xDF22,0x0000, 0xFB40,0xDF22,0x0000, /* 2F893 */ +0xFB80,0xB8C7,0x0000, 0xFB84,0xB2B8,0x0000, 0xFB84,0xE1DA,0x0000, /* 2F896 */ +0xFB40,0xDF62,0x0000, 0xFB40,0xDF6B,0x0000, 0xFB80,0xB8E3,0x0000, /* 2F899 */ +0xFB40,0xDF9A,0x0000, 0xFB40,0xDFCD,0x0000, 0xFB40,0xDFD7,0x0000, /* 2F89C */ +0xFB40,0xDFF9,0x0000, 0xFB40,0xE081,0x0000, 0xFB80,0xB93A,0x0000, /* 2F89F */ +0xFB80,0xB91C,0x0000, 0xFB40,0xE094,0x0000, 0xFB84,0xA6D4,0x0000, /* 2F8A2 */ +0xFB40,0xE0C7,0x0000, 0xFB40,0xE148,0x0000, 0xFB40,0xE14C,0x0000, /* 2F8A5 */ +0xFB40,0xE14E,0x0000, 0xFB40,0xE14C,0x0000, 0xFB40,0xE17A,0x0000, /* 2F8A8 */ +0xFB40,0xE18E,0x0000, 0xFB40,0xE1B2,0x0000, 0xFB40,0xE1A4,0x0000, /* 2F8AB */ +0xFB40,0xE1AF,0x0000, 0xFB40,0xE1DE,0x0000, 0xFB40,0xE1F2,0x0000, /* 2F8AE */ +0xFB40,0xE1F6,0x0000, 0xFB40,0xE210,0x0000, 0xFB40,0xE21B,0x0000, /* 2F8B1 */ +0xFB40,0xE25D,0x0000, 0xFB40,0xE2B1,0x0000, 0xFB40,0xE2D4,0x0000, /* 2F8B4 */ +0xFB40,0xE350,0x0000, 0xFB84,0xAB0C,0x0000, 0xFB40,0xE33D,0x0000, /* 2F8B7 */ +0xFB40,0xE2FC,0x0000, 0xFB40,0xE368,0x0000, 0xFB40,0xE383,0x0000, /* 2F8BA */ +0xFB40,0xE3E4,0x0000, 0xFB84,0xABF1,0x0000, 0xFB40,0xE422,0x0000, /* 2F8BD */ +0xFB40,0xE3C5,0x0000, 0xFB40,0xE3A9,0x0000, 0xFB80,0xBA2E,0x0000, /* 2F8C0 */ +0xFB40,0xE469,0x0000, 0xFB40,0xE47E,0x0000, 0xFB40,0xE49D,0x0000, /* 2F8C3 */ +0xFB40,0xE477,0x0000, 0xFB80,0xBA6C,0x0000, 0xFB40,0xE54F,0x0000, /* 2F8C6 */ +0xFB40,0xE56C,0x0000, 0xFB84,0xB00A,0x0000, 0xFB40,0xE5E3,0x0000, /* 2F8C9 */ +0xFB40,0xE6F8,0x0000, 0xFB40,0xE649,0x0000, 0xFB80,0xBB19,0x0000, /* 2F8CC */ +0xFB40,0xE691,0x0000, 0xFB80,0xBB08,0x0000, 0xFB80,0xBAE4,0x0000, /* 2F8CF */ +0xFB40,0xD192,0x0000, 0xFB40,0xD195,0x0000, 0xFB40,0xE700,0x0000, /* 2F8D2 */ +0xFB40,0xE69C,0x0000, 0xFB41,0x80AD,0x0000, 0xFB80,0xC3D9,0x0000, /* 2F8D5 */ +0xFB40,0xE717,0x0000, 0xFB40,0xE71B,0x0000, 0xFB40,0xE721,0x0000, /* 2F8D8 */ +0xFB40,0xE75E,0x0000, 0xFB40,0xE753,0x0000, 0xFB84,0xB3C3,0x0000, /* 2F8DB */ +0xFB80,0xBB49,0x0000, 0xFB40,0xE7FA,0x0000, 0xFB40,0xE785,0x0000, /* 2F8DE */ +0xFB40,0xE852,0x0000, 0xFB40,0xE885,0x0000, 0xFB84,0xB46D,0x0000, /* 2F8E1 */ +0xFB40,0xE88E,0x0000, 0xFB40,0xE81F,0x0000, 0xFB40,0xE914,0x0000, /* 2F8E4 */ +0xFB80,0xBB9D,0x0000, 0xFB40,0xE942,0x0000, 0xFB40,0xE9A3,0x0000, /* 2F8E7 */ +0xFB40,0xE9EA,0x0000, 0xFB40,0xEAA8,0x0000, 0xFB84,0xB6A3,0x0000, /* 2F8EA */ +0xFB40,0xEADB,0x0000, 0xFB80,0xBC18,0x0000, 0xFB40,0xEB21,0x0000, /* 2F8ED */ +0xFB84,0xB8A7,0x0000, 0xFB40,0xEB54,0x0000, 0xFB80,0xBC4E,0x0000, /* 2F8F0 */ +0xFB40,0xEB72,0x0000, 0xFB40,0xEB9F,0x0000, 0xFB40,0xEBBA,0x0000, /* 2F8F3 */ +0xFB40,0xEBBB,0x0000, 0xFB84,0xBA8D,0x0000, 0xFB84,0x9D0B,0x0000, /* 2F8F6 */ +0xFB84,0xBAFA,0x0000, 0xFB40,0xEC4E,0x0000, 0xFB84,0xBCBC,0x0000, /* 2F8F9 */ +0xFB40,0xECBF,0x0000, 0xFB40,0xECCD,0x0000, 0xFB40,0xEC67,0x0000, /* 2F8FC */ +0xFB40,0xED16,0x0000 }; + +static const uint16 uca520_p2F9[]= { /* 2F900 (3 weights per char) */ +0xFB40,0xED3E,0x0000, 0xFB40,0xED77,0x0000, 0xFB40,0xED41,0x0000, /* 2F900 */ +0xFB40,0xED69,0x0000, 0xFB40,0xED78,0x0000, 0xFB40,0xED85,0x0000, /* 2F903 */ +0xFB84,0xBD1E,0x0000, 0xFB40,0xED34,0x0000, 0xFB40,0xEE2F,0x0000, /* 2F906 */ +0xFB40,0xEE6E,0x0000, 0xFB80,0xBD33,0x0000, 0xFB40,0xEECB,0x0000, /* 2F909 */ +0xFB40,0xEEC7,0x0000, 0xFB84,0xBED1,0x0000, 0xFB40,0xEDF9,0x0000, /* 2F90C */ +0xFB40,0xEF6E,0x0000, 0xFB84,0xBF5E,0x0000, 0xFB84,0xBF8E,0x0000, /* 2F90F */ +0xFB40,0xEFC6,0x0000, 0xFB40,0xF039,0x0000, 0xFB40,0xF01E,0x0000, /* 2F912 */ +0xFB40,0xF01B,0x0000, 0xFB80,0xBD96,0x0000, 0xFB40,0xF04A,0x0000, /* 2F915 */ +0xFB40,0xF07D,0x0000, 0xFB40,0xF077,0x0000, 0xFB40,0xF0AD,0x0000, /* 2F918 */ +0xFB84,0x8525,0x0000, 0xFB40,0xF145,0x0000, 0xFB84,0xC263,0x0000, /* 2F91B */ +0xFB40,0xF19C,0x0000, 0xFB84,0xC3AB,0x0000, 0xFB40,0xF228,0x0000, /* 2F91E */ +0xFB40,0xF235,0x0000, 0xFB40,0xF250,0x0000, 0xFB84,0xC608,0x0000, /* 2F921 */ +0xFB40,0xF280,0x0000, 0xFB40,0xF295,0x0000, 0xFB84,0xC735,0x0000, /* 2F924 */ +0xFB84,0xC814,0x0000, 0xFB40,0xF37A,0x0000, 0xFB40,0xF38B,0x0000, /* 2F927 */ +0xFB80,0xBEAC,0x0000, 0xFB40,0xF3A5,0x0000, 0xFB80,0xBEB8,0x0000, /* 2F92A */ +0xFB80,0xBEB8,0x0000, 0xFB40,0xF447,0x0000, 0xFB40,0xF45C,0x0000, /* 2F92D */ +0xFB40,0xF471,0x0000, 0xFB40,0xF485,0x0000, 0xFB40,0xF4CA,0x0000, /* 2F930 */ +0xFB80,0xBF1B,0x0000, 0xFB40,0xF524,0x0000, 0xFB84,0xCC36,0x0000, /* 2F933 */ +0xFB40,0xF53E,0x0000, 0xFB84,0xCC92,0x0000, 0xFB40,0xF570,0x0000, /* 2F936 */ +0xFB84,0xA19F,0x0000, 0xFB40,0xF610,0x0000, 0xFB84,0xCFA1,0x0000, /* 2F939 */ +0xFB84,0xCFB8,0x0000, 0xFB84,0xD044,0x0000, 0xFB80,0xBFFC,0x0000, /* 2F93C */ +0xFB80,0xC008,0x0000, 0xFB40,0xF6F4,0x0000, 0xFB84,0xD0F3,0x0000, /* 2F93F */ +0xFB84,0xD0F2,0x0000, 0xFB84,0xD119,0x0000, 0xFB84,0xD133,0x0000, /* 2F942 */ +0xFB40,0xF71E,0x0000, 0xFB40,0xF71F,0x0000, 0xFB40,0xF71F,0x0000, /* 2F945 */ +0xFB40,0xF74A,0x0000, 0xFB80,0xC039,0x0000, 0xFB40,0xF78B,0x0000, /* 2F948 */ +0xFB80,0xC046,0x0000, 0xFB80,0xC096,0x0000, 0xFB84,0xD41D,0x0000, /* 2F94B */ +0xFB40,0xF84E,0x0000, 0xFB40,0xF88C,0x0000, 0xFB40,0xF8CC,0x0000, /* 2F94E */ +0xFB80,0xC0E3,0x0000, 0xFB84,0xD626,0x0000, 0xFB40,0xF956,0x0000, /* 2F951 */ +0xFB84,0xD69A,0x0000, 0xFB84,0xD6C5,0x0000, 0xFB40,0xF98F,0x0000, /* 2F954 */ +0xFB40,0xF9EB,0x0000, 0xFB80,0xC12F,0x0000, 0xFB40,0xFA40,0x0000, /* 2F957 */ +0xFB40,0xFA4A,0x0000, 0xFB40,0xFA4F,0x0000, 0xFB84,0xD97C,0x0000, /* 2F95A */ +0xFB84,0xDAA7,0x0000, 0xFB84,0xDAA7,0x0000, 0xFB40,0xFAEE,0x0000, /* 2F95D */ +0xFB80,0xC202,0x0000, 0xFB84,0xDBAB,0x0000, 0xFB40,0xFBC6,0x0000, /* 2F960 */ +0xFB40,0xFBC9,0x0000, 0xFB80,0xC227,0x0000, 0xFB84,0xDC80,0x0000, /* 2F963 */ +0xFB40,0xFCD2,0x0000, 0xFB80,0xC2A0,0x0000, 0xFB40,0xFCE8,0x0000, /* 2F966 */ +0xFB40,0xFCE3,0x0000, 0xFB40,0xFD00,0x0000, 0xFB84,0xDF86,0x0000, /* 2F969 */ +0xFB40,0xFD63,0x0000, 0xFB80,0xC301,0x0000, 0xFB40,0xFDC7,0x0000, /* 2F96C */ +0xFB40,0xFE02,0x0000, 0xFB40,0xFE45,0x0000, 0xFB80,0xC334,0x0000, /* 2F96F */ +0xFB84,0xE228,0x0000, 0xFB84,0xE247,0x0000, 0xFB80,0xC359,0x0000, /* 2F972 */ +0xFB84,0xE2D9,0x0000, 0xFB40,0xFF7A,0x0000, 0xFB84,0xE33E,0x0000, /* 2F975 */ +0xFB40,0xFF95,0x0000, 0xFB40,0xFFFA,0x0000, 0xFB41,0x8005,0x0000, /* 2F978 */ +0xFB84,0xE4DA,0x0000, 0xFB84,0xE523,0x0000, 0xFB41,0x8060,0x0000, /* 2F97B */ +0xFB84,0xE5A8,0x0000, 0xFB41,0x8070,0x0000, 0xFB84,0xB35F,0x0000, /* 2F97E */ +0xFB80,0xC3D5,0x0000, 0xFB41,0x80B2,0x0000, 0xFB41,0x8103,0x0000, /* 2F981 */ +0xFB80,0xC40B,0x0000, 0xFB41,0x813E,0x0000, 0xFB40,0xDAB5,0x0000, /* 2F984 */ +0xFB84,0xE7A7,0x0000, 0xFB84,0xE7B5,0x0000, 0xFB84,0xB393,0x0000, /* 2F987 */ +0xFB84,0xB39C,0x0000, 0xFB41,0x8201,0x0000, 0xFB41,0x8204,0x0000, /* 2F98A */ +0xFB41,0x8F9E,0x0000, 0xFB80,0xC46B,0x0000, 0xFB41,0x8291,0x0000, /* 2F98D */ +0xFB41,0x828B,0x0000, 0xFB41,0x829D,0x0000, 0xFB40,0xD2B3,0x0000, /* 2F990 */ +0xFB41,0x82B1,0x0000, 0xFB41,0x82B3,0x0000, 0xFB41,0x82BD,0x0000, /* 2F993 */ +0xFB41,0x82E6,0x0000, 0xFB84,0xEB3C,0x0000, 0xFB41,0x82E5,0x0000, /* 2F996 */ +0xFB41,0x831D,0x0000, 0xFB41,0x8363,0x0000, 0xFB41,0x83AD,0x0000, /* 2F999 */ +0xFB41,0x8323,0x0000, 0xFB41,0x83BD,0x0000, 0xFB41,0x83E7,0x0000, /* 2F99C */ +0xFB41,0x8457,0x0000, 0xFB41,0x8353,0x0000, 0xFB41,0x83CA,0x0000, /* 2F99F */ +0xFB41,0x83CC,0x0000, 0xFB41,0x83DC,0x0000, 0xFB84,0xEC36,0x0000, /* 2F9A2 */ +0xFB84,0xED6B,0x0000, 0xFB84,0xECD5,0x0000, 0xFB80,0xC52B,0x0000, /* 2F9A5 */ +0xFB41,0x84F1,0x0000, 0xFB41,0x84F3,0x0000, 0xFB41,0x8516,0x0000, /* 2F9A8 */ +0xFB84,0xF3CA,0x0000, 0xFB41,0x8564,0x0000, 0xFB84,0xEF2C,0x0000, /* 2F9AB */ +0xFB80,0xC55D,0x0000, 0xFB80,0xC561,0x0000, 0xFB84,0xEFB1,0x0000, /* 2F9AE */ +0xFB84,0xF0D2,0x0000, 0xFB80,0xC56B,0x0000, 0xFB41,0x8650,0x0000, /* 2F9B1 */ +0xFB41,0x865C,0x0000, 0xFB41,0x8667,0x0000, 0xFB41,0x8669,0x0000, /* 2F9B4 */ +0xFB41,0x86A9,0x0000, 0xFB41,0x8688,0x0000, 0xFB41,0x870E,0x0000, /* 2F9B7 */ +0xFB41,0x86E2,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8728,0x0000, /* 2F9BA */ +0xFB41,0x876B,0x0000, 0xFB41,0x8786,0x0000, 0xFB80,0xC5D7,0x0000, /* 2F9BD */ +0xFB41,0x87E1,0x0000, 0xFB41,0x8801,0x0000, 0xFB80,0xC5F9,0x0000, /* 2F9C0 */ +0xFB41,0x8860,0x0000, 0xFB41,0x8863,0x0000, 0xFB84,0xF667,0x0000, /* 2F9C3 */ +0xFB41,0x88D7,0x0000, 0xFB41,0x88DE,0x0000, 0xFB80,0xC635,0x0000, /* 2F9C6 */ +0xFB41,0x88FA,0x0000, 0xFB80,0xB4BB,0x0000, 0xFB84,0xF8AE,0x0000, /* 2F9C9 */ +0xFB84,0xF966,0x0000, 0xFB80,0xC6BE,0x0000, 0xFB80,0xC6C7,0x0000, /* 2F9CC */ +0xFB41,0x8AA0,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B8A,0x0000, /* 2F9CF */ +0xFB41,0x8C55,0x0000, 0xFB84,0xFCA8,0x0000, 0xFB41,0x8CAB,0x0000, /* 2F9D2 */ +0xFB41,0x8CC1,0x0000, 0xFB41,0x8D1B,0x0000, 0xFB41,0x8D77,0x0000, /* 2F9D5 */ +0xFB84,0xFF2F,0x0000, 0xFB84,0x8804,0x0000, 0xFB41,0x8DCB,0x0000, /* 2F9D8 */ +0xFB41,0x8DBC,0x0000, 0xFB41,0x8DF0,0x0000, 0xFB84,0x88DE,0x0000, /* 2F9DB */ +0xFB41,0x8ED4,0x0000, 0xFB41,0x8F38,0x0000, 0xFB85,0x85D2,0x0000, /* 2F9DE */ +0xFB85,0x85ED,0x0000, 0xFB41,0x9094,0x0000, 0xFB41,0x90F1,0x0000, /* 2F9E1 */ +0xFB41,0x9111,0x0000, 0xFB85,0x872E,0x0000, 0xFB41,0x911B,0x0000, /* 2F9E4 */ +0xFB41,0x9238,0x0000, 0xFB41,0x92D7,0x0000, 0xFB41,0x92D8,0x0000, /* 2F9E7 */ +0xFB41,0x927C,0x0000, 0xFB41,0x93F9,0x0000, 0xFB41,0x9415,0x0000, /* 2F9EA */ +0xFB85,0x8BFA,0x0000, 0xFB41,0x958B,0x0000, 0xFB80,0xC995,0x0000, /* 2F9ED */ +0xFB41,0x95B7,0x0000, 0xFB85,0x8D77,0x0000, 0xFB80,0xC9E6,0x0000, /* 2F9F0 */ +0xFB41,0x96C3,0x0000, 0xFB40,0xDDB2,0x0000, 0xFB41,0x9723,0x0000, /* 2F9F3 */ +0xFB85,0x9145,0x0000, 0xFB85,0x921A,0x0000, 0xFB80,0xCA6E,0x0000, /* 2F9F6 */ +0xFB80,0xCA76,0x0000, 0xFB41,0x97E0,0x0000, 0xFB85,0x940A,0x0000, /* 2F9F9 */ +0xFB80,0xCAB2,0x0000, 0xFB85,0x9496,0x0000, 0xFB41,0x980B,0x0000, /* 2F9FC */ +0xFB41,0x980B,0x0000 }; + +static const uint16 uca520_p2FA[]= { /* 2FA00 (3 weights per char) */ +0xFB41,0x9829,0x0000, 0xFB85,0x95B6,0x0000, 0xFB41,0x98E2,0x0000, /* 2FA00 */ +0xFB80,0xCB33,0x0000, 0xFB41,0x9929,0x0000, 0xFB41,0x99A7,0x0000, /* 2FA03 */ +0xFB41,0x99C2,0x0000, 0xFB41,0x99FE,0x0000, 0xFB80,0xCBCE,0x0000, /* 2FA06 */ +0xFB85,0x9B30,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9C40,0x0000, /* 2FA09 */ +0xFB41,0x9CFD,0x0000, 0xFB80,0xCCCE,0x0000, 0xFB80,0xCCED,0x0000, /* 2FA0C */ +0xFB41,0x9D67,0x0000, 0xFB85,0xA0CE,0x0000, 0xFB80,0xCCF8,0x0000, /* 2FA0F */ +0xFB85,0xA105,0x0000, 0xFB85,0xA20E,0x0000, 0xFB85,0xA291,0x0000, /* 2FA12 */ +0xFB41,0x9EBB,0x0000, 0xFB80,0xCD56,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FA15 */ +0xFB41,0x9EFE,0x0000, 0xFB41,0x9F05,0x0000, 0xFB41,0x9F0F,0x0000, /* 2FA18 */ +0xFB41,0x9F16,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB85,0xA600,0x0000, /* 2FA1B */ +0xFBC5,0xFA1E,0x0000, 0xFBC5,0xFA1F,0x0000, 0xFBC5,0xFA20,0x0000, /* 2FA1E */ +0xFBC5,0xFA21,0x0000, 0xFBC5,0xFA22,0x0000, 0xFBC5,0xFA23,0x0000, /* 2FA21 */ +0xFBC5,0xFA24,0x0000, 0xFBC5,0xFA25,0x0000, 0xFBC5,0xFA26,0x0000, /* 2FA24 */ +0xFBC5,0xFA27,0x0000, 0xFBC5,0xFA28,0x0000, 0xFBC5,0xFA29,0x0000, /* 2FA27 */ +0xFBC5,0xFA2A,0x0000, 0xFBC5,0xFA2B,0x0000, 0xFBC5,0xFA2C,0x0000, /* 2FA2A */ +0xFBC5,0xFA2D,0x0000, 0xFBC5,0xFA2E,0x0000, 0xFBC5,0xFA2F,0x0000, /* 2FA2D */ +0xFBC5,0xFA30,0x0000, 0xFBC5,0xFA31,0x0000, 0xFBC5,0xFA32,0x0000, /* 2FA30 */ +0xFBC5,0xFA33,0x0000, 0xFBC5,0xFA34,0x0000, 0xFBC5,0xFA35,0x0000, /* 2FA33 */ +0xFBC5,0xFA36,0x0000, 0xFBC5,0xFA37,0x0000, 0xFBC5,0xFA38,0x0000, /* 2FA36 */ +0xFBC5,0xFA39,0x0000, 0xFBC5,0xFA3A,0x0000, 0xFBC5,0xFA3B,0x0000, /* 2FA39 */ +0xFBC5,0xFA3C,0x0000, 0xFBC5,0xFA3D,0x0000, 0xFBC5,0xFA3E,0x0000, /* 2FA3C */ +0xFBC5,0xFA3F,0x0000, 0xFBC5,0xFA40,0x0000, 0xFBC5,0xFA41,0x0000, /* 2FA3F */ +0xFBC5,0xFA42,0x0000, 0xFBC5,0xFA43,0x0000, 0xFBC5,0xFA44,0x0000, /* 2FA42 */ +0xFBC5,0xFA45,0x0000, 0xFBC5,0xFA46,0x0000, 0xFBC5,0xFA47,0x0000, /* 2FA45 */ +0xFBC5,0xFA48,0x0000, 0xFBC5,0xFA49,0x0000, 0xFBC5,0xFA4A,0x0000, /* 2FA48 */ +0xFBC5,0xFA4B,0x0000, 0xFBC5,0xFA4C,0x0000, 0xFBC5,0xFA4D,0x0000, /* 2FA4B */ +0xFBC5,0xFA4E,0x0000, 0xFBC5,0xFA4F,0x0000, 0xFBC5,0xFA50,0x0000, /* 2FA4E */ +0xFBC5,0xFA51,0x0000, 0xFBC5,0xFA52,0x0000, 0xFBC5,0xFA53,0x0000, /* 2FA51 */ +0xFBC5,0xFA54,0x0000, 0xFBC5,0xFA55,0x0000, 0xFBC5,0xFA56,0x0000, /* 2FA54 */ +0xFBC5,0xFA57,0x0000, 0xFBC5,0xFA58,0x0000, 0xFBC5,0xFA59,0x0000, /* 2FA57 */ +0xFBC5,0xFA5A,0x0000, 0xFBC5,0xFA5B,0x0000, 0xFBC5,0xFA5C,0x0000, /* 2FA5A */ +0xFBC5,0xFA5D,0x0000, 0xFBC5,0xFA5E,0x0000, 0xFBC5,0xFA5F,0x0000, /* 2FA5D */ +0xFBC5,0xFA60,0x0000, 0xFBC5,0xFA61,0x0000, 0xFBC5,0xFA62,0x0000, /* 2FA60 */ +0xFBC5,0xFA63,0x0000, 0xFBC5,0xFA64,0x0000, 0xFBC5,0xFA65,0x0000, /* 2FA63 */ +0xFBC5,0xFA66,0x0000, 0xFBC5,0xFA67,0x0000, 0xFBC5,0xFA68,0x0000, /* 2FA66 */ +0xFBC5,0xFA69,0x0000, 0xFBC5,0xFA6A,0x0000, 0xFBC5,0xFA6B,0x0000, /* 2FA69 */ +0xFBC5,0xFA6C,0x0000, 0xFBC5,0xFA6D,0x0000, 0xFBC5,0xFA6E,0x0000, /* 2FA6C */ +0xFBC5,0xFA6F,0x0000, 0xFBC5,0xFA70,0x0000, 0xFBC5,0xFA71,0x0000, /* 2FA6F */ +0xFBC5,0xFA72,0x0000, 0xFBC5,0xFA73,0x0000, 0xFBC5,0xFA74,0x0000, /* 2FA72 */ +0xFBC5,0xFA75,0x0000, 0xFBC5,0xFA76,0x0000, 0xFBC5,0xFA77,0x0000, /* 2FA75 */ +0xFBC5,0xFA78,0x0000, 0xFBC5,0xFA79,0x0000, 0xFBC5,0xFA7A,0x0000, /* 2FA78 */ +0xFBC5,0xFA7B,0x0000, 0xFBC5,0xFA7C,0x0000, 0xFBC5,0xFA7D,0x0000, /* 2FA7B */ +0xFBC5,0xFA7E,0x0000, 0xFBC5,0xFA7F,0x0000, 0xFBC5,0xFA80,0x0000, /* 2FA7E */ +0xFBC5,0xFA81,0x0000, 0xFBC5,0xFA82,0x0000, 0xFBC5,0xFA83,0x0000, /* 2FA81 */ +0xFBC5,0xFA84,0x0000, 0xFBC5,0xFA85,0x0000, 0xFBC5,0xFA86,0x0000, /* 2FA84 */ +0xFBC5,0xFA87,0x0000, 0xFBC5,0xFA88,0x0000, 0xFBC5,0xFA89,0x0000, /* 2FA87 */ +0xFBC5,0xFA8A,0x0000, 0xFBC5,0xFA8B,0x0000, 0xFBC5,0xFA8C,0x0000, /* 2FA8A */ +0xFBC5,0xFA8D,0x0000, 0xFBC5,0xFA8E,0x0000, 0xFBC5,0xFA8F,0x0000, /* 2FA8D */ +0xFBC5,0xFA90,0x0000, 0xFBC5,0xFA91,0x0000, 0xFBC5,0xFA92,0x0000, /* 2FA90 */ +0xFBC5,0xFA93,0x0000, 0xFBC5,0xFA94,0x0000, 0xFBC5,0xFA95,0x0000, /* 2FA93 */ +0xFBC5,0xFA96,0x0000, 0xFBC5,0xFA97,0x0000, 0xFBC5,0xFA98,0x0000, /* 2FA96 */ +0xFBC5,0xFA99,0x0000, 0xFBC5,0xFA9A,0x0000, 0xFBC5,0xFA9B,0x0000, /* 2FA99 */ +0xFBC5,0xFA9C,0x0000, 0xFBC5,0xFA9D,0x0000, 0xFBC5,0xFA9E,0x0000, /* 2FA9C */ +0xFBC5,0xFA9F,0x0000, 0xFBC5,0xFAA0,0x0000, 0xFBC5,0xFAA1,0x0000, /* 2FA9F */ +0xFBC5,0xFAA2,0x0000, 0xFBC5,0xFAA3,0x0000, 0xFBC5,0xFAA4,0x0000, /* 2FAA2 */ +0xFBC5,0xFAA5,0x0000, 0xFBC5,0xFAA6,0x0000, 0xFBC5,0xFAA7,0x0000, /* 2FAA5 */ +0xFBC5,0xFAA8,0x0000, 0xFBC5,0xFAA9,0x0000, 0xFBC5,0xFAAA,0x0000, /* 2FAA8 */ +0xFBC5,0xFAAB,0x0000, 0xFBC5,0xFAAC,0x0000, 0xFBC5,0xFAAD,0x0000, /* 2FAAB */ +0xFBC5,0xFAAE,0x0000, 0xFBC5,0xFAAF,0x0000, 0xFBC5,0xFAB0,0x0000, /* 2FAAE */ +0xFBC5,0xFAB1,0x0000, 0xFBC5,0xFAB2,0x0000, 0xFBC5,0xFAB3,0x0000, /* 2FAB1 */ +0xFBC5,0xFAB4,0x0000, 0xFBC5,0xFAB5,0x0000, 0xFBC5,0xFAB6,0x0000, /* 2FAB4 */ +0xFBC5,0xFAB7,0x0000, 0xFBC5,0xFAB8,0x0000, 0xFBC5,0xFAB9,0x0000, /* 2FAB7 */ +0xFBC5,0xFABA,0x0000, 0xFBC5,0xFABB,0x0000, 0xFBC5,0xFABC,0x0000, /* 2FABA */ +0xFBC5,0xFABD,0x0000, 0xFBC5,0xFABE,0x0000, 0xFBC5,0xFABF,0x0000, /* 2FABD */ +0xFBC5,0xFAC0,0x0000, 0xFBC5,0xFAC1,0x0000, 0xFBC5,0xFAC2,0x0000, /* 2FAC0 */ +0xFBC5,0xFAC3,0x0000, 0xFBC5,0xFAC4,0x0000, 0xFBC5,0xFAC5,0x0000, /* 2FAC3 */ +0xFBC5,0xFAC6,0x0000, 0xFBC5,0xFAC7,0x0000, 0xFBC5,0xFAC8,0x0000, /* 2FAC6 */ +0xFBC5,0xFAC9,0x0000, 0xFBC5,0xFACA,0x0000, 0xFBC5,0xFACB,0x0000, /* 2FAC9 */ +0xFBC5,0xFACC,0x0000, 0xFBC5,0xFACD,0x0000, 0xFBC5,0xFACE,0x0000, /* 2FACC */ +0xFBC5,0xFACF,0x0000, 0xFBC5,0xFAD0,0x0000, 0xFBC5,0xFAD1,0x0000, /* 2FACF */ +0xFBC5,0xFAD2,0x0000, 0xFBC5,0xFAD3,0x0000, 0xFBC5,0xFAD4,0x0000, /* 2FAD2 */ +0xFBC5,0xFAD5,0x0000, 0xFBC5,0xFAD6,0x0000, 0xFBC5,0xFAD7,0x0000, /* 2FAD5 */ +0xFBC5,0xFAD8,0x0000, 0xFBC5,0xFAD9,0x0000, 0xFBC5,0xFADA,0x0000, /* 2FAD8 */ +0xFBC5,0xFADB,0x0000, 0xFBC5,0xFADC,0x0000, 0xFBC5,0xFADD,0x0000, /* 2FADB */ +0xFBC5,0xFADE,0x0000, 0xFBC5,0xFADF,0x0000, 0xFBC5,0xFAE0,0x0000, /* 2FADE */ +0xFBC5,0xFAE1,0x0000, 0xFBC5,0xFAE2,0x0000, 0xFBC5,0xFAE3,0x0000, /* 2FAE1 */ +0xFBC5,0xFAE4,0x0000, 0xFBC5,0xFAE5,0x0000, 0xFBC5,0xFAE6,0x0000, /* 2FAE4 */ +0xFBC5,0xFAE7,0x0000, 0xFBC5,0xFAE8,0x0000, 0xFBC5,0xFAE9,0x0000, /* 2FAE7 */ +0xFBC5,0xFAEA,0x0000, 0xFBC5,0xFAEB,0x0000, 0xFBC5,0xFAEC,0x0000, /* 2FAEA */ +0xFBC5,0xFAED,0x0000, 0xFBC5,0xFAEE,0x0000, 0xFBC5,0xFAEF,0x0000, /* 2FAED */ +0xFBC5,0xFAF0,0x0000, 0xFBC5,0xFAF1,0x0000, 0xFBC5,0xFAF2,0x0000, /* 2FAF0 */ +0xFBC5,0xFAF3,0x0000, 0xFBC5,0xFAF4,0x0000, 0xFBC5,0xFAF5,0x0000, /* 2FAF3 */ +0xFBC5,0xFAF6,0x0000, 0xFBC5,0xFAF7,0x0000, 0xFBC5,0xFAF8,0x0000, /* 2FAF6 */ +0xFBC5,0xFAF9,0x0000, 0xFBC5,0xFAFA,0x0000, 0xFBC5,0xFAFB,0x0000, /* 2FAF9 */ +0xFBC5,0xFAFC,0x0000, 0xFBC5,0xFAFD,0x0000, 0xFBC5,0xFAFE,0x0000, /* 2FAFC */ +0xFBC5,0xFAFF,0x0000 }; + +static const uint16 uca520_pE00[]= { /* E0000 (3 weights per char) */ +0xFBDC,0x8000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8002,0x0000, /* E0000 */ +0xFBDC,0x8003,0x0000, 0xFBDC,0x8004,0x0000, 0xFBDC,0x8005,0x0000, /* E0003 */ +0xFBDC,0x8006,0x0000, 0xFBDC,0x8007,0x0000, 0xFBDC,0x8008,0x0000, /* E0006 */ +0xFBDC,0x8009,0x0000, 0xFBDC,0x800A,0x0000, 0xFBDC,0x800B,0x0000, /* E0009 */ +0xFBDC,0x800C,0x0000, 0xFBDC,0x800D,0x0000, 0xFBDC,0x800E,0x0000, /* E000C */ +0xFBDC,0x800F,0x0000, 0xFBDC,0x8010,0x0000, 0xFBDC,0x8011,0x0000, /* E000F */ +0xFBDC,0x8012,0x0000, 0xFBDC,0x8013,0x0000, 0xFBDC,0x8014,0x0000, /* E0012 */ +0xFBDC,0x8015,0x0000, 0xFBDC,0x8016,0x0000, 0xFBDC,0x8017,0x0000, /* E0015 */ +0xFBDC,0x8018,0x0000, 0xFBDC,0x8019,0x0000, 0xFBDC,0x801A,0x0000, /* E0018 */ +0xFBDC,0x801B,0x0000, 0xFBDC,0x801C,0x0000, 0xFBDC,0x801D,0x0000, /* E001B */ +0xFBDC,0x801E,0x0000, 0xFBDC,0x801F,0x0000, 0x0000,0x0000,0x0000, /* E001E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0021 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0024 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0027 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0030 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0033 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0036 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0039 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0042 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0045 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0048 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0051 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0054 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0057 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0060 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0063 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0066 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0069 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0072 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0075 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0078 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E007B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8080,0x0000, /* E007E */ +0xFBDC,0x8081,0x0000, 0xFBDC,0x8082,0x0000, 0xFBDC,0x8083,0x0000, /* E0081 */ +0xFBDC,0x8084,0x0000, 0xFBDC,0x8085,0x0000, 0xFBDC,0x8086,0x0000, /* E0084 */ +0xFBDC,0x8087,0x0000, 0xFBDC,0x8088,0x0000, 0xFBDC,0x8089,0x0000, /* E0087 */ +0xFBDC,0x808A,0x0000, 0xFBDC,0x808B,0x0000, 0xFBDC,0x808C,0x0000, /* E008A */ +0xFBDC,0x808D,0x0000, 0xFBDC,0x808E,0x0000, 0xFBDC,0x808F,0x0000, /* E008D */ +0xFBDC,0x8090,0x0000, 0xFBDC,0x8091,0x0000, 0xFBDC,0x8092,0x0000, /* E0090 */ +0xFBDC,0x8093,0x0000, 0xFBDC,0x8094,0x0000, 0xFBDC,0x8095,0x0000, /* E0093 */ +0xFBDC,0x8096,0x0000, 0xFBDC,0x8097,0x0000, 0xFBDC,0x8098,0x0000, /* E0096 */ +0xFBDC,0x8099,0x0000, 0xFBDC,0x809A,0x0000, 0xFBDC,0x809B,0x0000, /* E0099 */ +0xFBDC,0x809C,0x0000, 0xFBDC,0x809D,0x0000, 0xFBDC,0x809E,0x0000, /* E009C */ +0xFBDC,0x809F,0x0000, 0xFBDC,0x80A0,0x0000, 0xFBDC,0x80A1,0x0000, /* E009F */ +0xFBDC,0x80A2,0x0000, 0xFBDC,0x80A3,0x0000, 0xFBDC,0x80A4,0x0000, /* E00A2 */ +0xFBDC,0x80A5,0x0000, 0xFBDC,0x80A6,0x0000, 0xFBDC,0x80A7,0x0000, /* E00A5 */ +0xFBDC,0x80A8,0x0000, 0xFBDC,0x80A9,0x0000, 0xFBDC,0x80AA,0x0000, /* E00A8 */ +0xFBDC,0x80AB,0x0000, 0xFBDC,0x80AC,0x0000, 0xFBDC,0x80AD,0x0000, /* E00AB */ +0xFBDC,0x80AE,0x0000, 0xFBDC,0x80AF,0x0000, 0xFBDC,0x80B0,0x0000, /* E00AE */ +0xFBDC,0x80B1,0x0000, 0xFBDC,0x80B2,0x0000, 0xFBDC,0x80B3,0x0000, /* E00B1 */ +0xFBDC,0x80B4,0x0000, 0xFBDC,0x80B5,0x0000, 0xFBDC,0x80B6,0x0000, /* E00B4 */ +0xFBDC,0x80B7,0x0000, 0xFBDC,0x80B8,0x0000, 0xFBDC,0x80B9,0x0000, /* E00B7 */ +0xFBDC,0x80BA,0x0000, 0xFBDC,0x80BB,0x0000, 0xFBDC,0x80BC,0x0000, /* E00BA */ +0xFBDC,0x80BD,0x0000, 0xFBDC,0x80BE,0x0000, 0xFBDC,0x80BF,0x0000, /* E00BD */ +0xFBDC,0x80C0,0x0000, 0xFBDC,0x80C1,0x0000, 0xFBDC,0x80C2,0x0000, /* E00C0 */ +0xFBDC,0x80C3,0x0000, 0xFBDC,0x80C4,0x0000, 0xFBDC,0x80C5,0x0000, /* E00C3 */ +0xFBDC,0x80C6,0x0000, 0xFBDC,0x80C7,0x0000, 0xFBDC,0x80C8,0x0000, /* E00C6 */ +0xFBDC,0x80C9,0x0000, 0xFBDC,0x80CA,0x0000, 0xFBDC,0x80CB,0x0000, /* E00C9 */ +0xFBDC,0x80CC,0x0000, 0xFBDC,0x80CD,0x0000, 0xFBDC,0x80CE,0x0000, /* E00CC */ +0xFBDC,0x80CF,0x0000, 0xFBDC,0x80D0,0x0000, 0xFBDC,0x80D1,0x0000, /* E00CF */ +0xFBDC,0x80D2,0x0000, 0xFBDC,0x80D3,0x0000, 0xFBDC,0x80D4,0x0000, /* E00D2 */ +0xFBDC,0x80D5,0x0000, 0xFBDC,0x80D6,0x0000, 0xFBDC,0x80D7,0x0000, /* E00D5 */ +0xFBDC,0x80D8,0x0000, 0xFBDC,0x80D9,0x0000, 0xFBDC,0x80DA,0x0000, /* E00D8 */ +0xFBDC,0x80DB,0x0000, 0xFBDC,0x80DC,0x0000, 0xFBDC,0x80DD,0x0000, /* E00DB */ +0xFBDC,0x80DE,0x0000, 0xFBDC,0x80DF,0x0000, 0xFBDC,0x80E0,0x0000, /* E00DE */ +0xFBDC,0x80E1,0x0000, 0xFBDC,0x80E2,0x0000, 0xFBDC,0x80E3,0x0000, /* E00E1 */ +0xFBDC,0x80E4,0x0000, 0xFBDC,0x80E5,0x0000, 0xFBDC,0x80E6,0x0000, /* E00E4 */ +0xFBDC,0x80E7,0x0000, 0xFBDC,0x80E8,0x0000, 0xFBDC,0x80E9,0x0000, /* E00E7 */ +0xFBDC,0x80EA,0x0000, 0xFBDC,0x80EB,0x0000, 0xFBDC,0x80EC,0x0000, /* E00EA */ +0xFBDC,0x80ED,0x0000, 0xFBDC,0x80EE,0x0000, 0xFBDC,0x80EF,0x0000, /* E00ED */ +0xFBDC,0x80F0,0x0000, 0xFBDC,0x80F1,0x0000, 0xFBDC,0x80F2,0x0000, /* E00F0 */ +0xFBDC,0x80F3,0x0000, 0xFBDC,0x80F4,0x0000, 0xFBDC,0x80F5,0x0000, /* E00F3 */ +0xFBDC,0x80F6,0x0000, 0xFBDC,0x80F7,0x0000, 0xFBDC,0x80F8,0x0000, /* E00F6 */ +0xFBDC,0x80F9,0x0000, 0xFBDC,0x80FA,0x0000, 0xFBDC,0x80FB,0x0000, /* E00F9 */ +0xFBDC,0x80FC,0x0000, 0xFBDC,0x80FD,0x0000, 0xFBDC,0x80FE,0x0000, /* E00FC */ +0xFBDC,0x80FF,0x0000 }; + +static const uint16 uca520_pE01[]= { /* E0100 (3 weights per char) */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0100 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0103 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0106 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0109 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0112 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0115 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0118 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0121 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0124 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0127 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0130 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0133 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0136 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0139 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0142 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0145 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0148 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0151 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0154 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0157 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0160 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0163 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0166 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0169 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0172 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0175 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0178 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017B */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017E */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0181 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0184 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0187 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018A */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018D */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0190 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0193 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0196 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0199 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019C */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019F */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BD */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C0 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C3 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C6 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C9 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CC */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CF */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D2 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D5 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D8 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DB */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DE */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E1 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E4 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E7 */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01EA */ +0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01ED */ +0xFBDC,0x81F0,0x0000, 0xFBDC,0x81F1,0x0000, 0xFBDC,0x81F2,0x0000, /* E01F0 */ +0xFBDC,0x81F3,0x0000, 0xFBDC,0x81F4,0x0000, 0xFBDC,0x81F5,0x0000, /* E01F3 */ +0xFBDC,0x81F6,0x0000, 0xFBDC,0x81F7,0x0000, 0xFBDC,0x81F8,0x0000, /* E01F6 */ +0xFBDC,0x81F9,0x0000, 0xFBDC,0x81FA,0x0000, 0xFBDC,0x81FB,0x0000, /* E01F9 */ +0xFBDC,0x81FC,0x0000, 0xFBDC,0x81FD,0x0000, 0xFBDC,0x81FE,0x0000, /* E01FC */ +0xFBDC,0x81FF,0x0000 }; + +const uchar uca520_length[4352]={ +4,3,3,4,2,3,3,3,3,3,3,3,3,3,3,3, +4,2,3,3,2,2,3,3,3,4,4,3,3,3,3,3, +5,5,4,3,5,2,3,3,2,2,5,3,4,3,3,3, +3,3,8,9,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,3,2,3,3,3,3,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,3,4,3,9,4,3, +3,3,3,3,3,0,0,0,3,3,3,3,3,0,3,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; +static const uint16 *uca520_weight[4352]={ +uca520_p000,uca520_p001,uca520_p002,uca520_p003, +uca520_p004,uca520_p005,uca520_p006,uca520_p007, +uca520_p008,uca520_p009,uca520_p00A,uca520_p00B, +uca520_p00C,uca520_p00D,uca520_p00E,uca520_p00F, +uca520_p010,uca520_p011,uca520_p012,uca520_p013, +uca520_p014,uca520_p015,uca520_p016,uca520_p017, +uca520_p018,uca520_p019,uca520_p01A,uca520_p01B, +uca520_p01C,uca520_p01D,uca520_p01E,uca520_p01F, +uca520_p020,uca520_p021,uca520_p022,uca520_p023, +uca520_p024,uca520_p025,uca520_p026,uca520_p027, +uca520_p028,uca520_p029,uca520_p02A,uca520_p02B, +uca520_p02C,uca520_p02D,uca520_p02E,uca520_p02F, +uca520_p030,uca520_p031,uca520_p032,uca520_p033, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,uca520_p04D,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p0A0,uca520_p0A1,uca520_p0A2,uca520_p0A3, +uca520_p0A4,uca520_p0A5,uca520_p0A6,uca520_p0A7, +uca520_p0A8,uca520_p0A9,uca520_p0AA,uca520_p0AB, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,uca520_p0D7, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,uca520_p0F9,uca520_p0FA,uca520_p0FB, +uca520_p0FC,uca520_p0FD,uca520_p0FE,uca520_p0FF, +uca520_p100,uca520_p101,uca520_p102,uca520_p103, +uca520_p104,NULL ,NULL ,NULL , +uca520_p108,uca520_p109,uca520_p10A,uca520_p10B, +uca520_p10C,NULL ,uca520_p10E,NULL , +uca520_p110,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p120,uca520_p121,uca520_p122,uca520_p123, +uca520_p124,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p130,uca520_p131,uca520_p132,uca520_p133, +uca520_p134,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p1D0,uca520_p1D1,uca520_p1D2,uca520_p1D3, +uca520_p1D4,uca520_p1D5,uca520_p1D6,uca520_p1D7, +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p1F0,uca520_p1F1,uca520_p1F2,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_p2F8,uca520_p2F9,uca520_p2FA,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +uca520_pE00,uca520_pE01,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL , +NULL ,NULL ,NULL ,NULL +}; + + +MY_UCA_INFO my_uca_v520= +{ + { + { + 0x10FFFF, /* maxchar */ + (uchar *) uca520_length, + (uint16 **) uca520_weight, + { /* Contractions: */ + 0, /* nitems */ + NULL, /* item */ + NULL /* flags */ + } + }, + }, + + 0x0009, /* first_non_ignorable p != ignore */ + 0x1342E, /* last_non_ignorable Not a CJK and not UASSIGNED */ + + 0x0332, /* first_primary_ignorable p == ignore */ + 0x101FD, /* last_primary_ignorable */ + + 0x0000, /* first_secondary_ignorable p,s= ignore */ + 0xFE73, /* last_secondary_ignorable */ + + 0x0000, /* first_tertiary_ignorable p,s,t == ignore */ + 0xFE73, /* last_tertiary_ignorable */ + + 0x0000, /* first_trailing */ + 0x0000, /* last_trailing */ + + 0x0009, /* first_variable if alt=non-ignorable: p != ignore */ + 0x1D371, /* last_variable if alt=shifter: p,s,t == ignore */ +}; + + +/******************************************************/ + +/* + German Phonebook +*/ +static const char german2[]= + "&AE << \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 " + "&OE << \\u0153 <<< \\u0152 << \\u00F6 <<< \\u00D6 " + "&UE << \\u00FC <<< \\u00DC "; + + /* Some sources treat LETTER A WITH DIARESIS (00E4,00C4) secondary greater than LETTER AE (00E6,00C6). @@ -6686,7 +19308,13 @@ static const char persian[]= "& \\u0642 < \\u06A9 < \\u0643" "& \\u0648 < \\u0647 < \\u0629 < \\u06C0 < \\u06CC < \\u0649 < \\u064A" "& \\uFE80 < \\uFE81 < \\uFE82 < \\uFE8D < \\uFE8E < \\uFB50 < \\uFB51" - " < \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85" + " < \\uFE80 " + /* + FE80 appears both in reset and shift. + We need to break the rule here and reset to *new* FE80 again, + so weight for FE83 is calculated as P[FE80]+1, not as P[FE80]+8. + */ + " & \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85" " < \\uFE86 < \\u0689 < \\u068A" "& \\uFEAE < \\uFDFC" "& \\uFED8 < \\uFB8E < \\uFB8F < \\uFB90 < \\uFB91 < \\uFED9 < \\uFEDA" @@ -6717,6 +19345,17 @@ static const char hungarian[]= "&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150" "&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170"; + +static const char croatian_mysql561[]= + "&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106" + "&D < d\\u017E = \\u01C6 <<< d\\u017D <<< D\\u017E = \\u01C5 <<< D\\u017D = \\u01C4" + " < \\u0111 <<< \\u0110" + "&L < lj = \\u01C9 <<< lJ <<< Lj = \\u01C8 <<< LJ = \\u01C7" + "&N < nj = \\u01CC <<< nJ <<< Nj = \\u01CB <<< NJ = \\u01CA" + "&S < \\u0161 <<< \\u0160" + "&Z < \\u017E <<< \\u017D"; + + /* SCCII Part 1 : Collation Sequence (SLS1134) 2006/11/24 @@ -6746,8 +19385,22 @@ static const char sinhala[]= #endif -static const char croatian[]= - +/* + Croatian that was added into MariaDB-5.3 uses + slightly different rules comparing to the MySQL-5.6 version. + The difference is in the following combinations of + a small letter followed by a capital letter: + - U+0064 U+017D (LATIN SMALL LETTER D + LATIN CAPITAL LETTER Z WITH CARON) + - U+006C U+004A (LATIN SMALL LETTER L + LATIN CAPITAL LETTER J) + - U+006E U+004A (LATIN SMALL LETTER N + LATIN CAPITAL LETTER J) + MySQL consider these pairs as contractions and sorts near their + "CAPITAL + SMALL" and "SMALL + SMALL" counterparts. + MariaDB consider these pairs as individual characters. + Note, the MariaDB version is closer to CLDR: + http://unicode.org/cldr/trac/browser/trunk/common/collation/hr.xml?rev=9244 + (the latest hr.xml revision as of 2013-11-06). +*/ +static const char croatian_mariadb[]= "&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106 " "&D < d\\u017E <<< \\u01C6 <<< D\\u017E <<< \\u01C5 <<< D\\u017D <<< \\u01C4 " " < \\u0111 <<< \\u0110 " @@ -6756,6 +19409,695 @@ static const char croatian[]= "&S < \\u0161 <<< \\u0160 " "&Z < \\u017E <<< \\u017D"; + +static const char vietnamese[]= +" &A << \\u00E0 <<< \\u00C0" /* A */ + " << \\u1EA3 <<< \\u1EA2" + " << \\u00E3 <<< \\u00C3" + " << \\u00E1 <<< \\u00C1" + " << \\u1EA1 <<< \\u1EA0" + " < \\u0103 <<< \\u0102" /* A WITH BREVE */ + " << \\u1EB1 <<< \\u1EB0" + " << \\u1EB3 <<< \\u1EB2" + " << \\u1EB5 <<< \\u1EB4" + " << \\u1EAF <<< \\u1EAE" + " << \\u1EB7 <<< \\u1EB6" + " < \\u00E2 <<< \\u00C2" /* A WITH CIRCUMFLEX */ + " << \\u1EA7 <<< \\u1EA6" + " << \\u1EA9 <<< \\u1EA8" + " << \\u1EAB <<< \\u1EAA" + " << \\u1EA5 <<< \\u1EA4" + " << \\u1EAD <<< \\u1EAC" +" &D < \\u0111 <<< \\u0110" /* D WITH STROKE */ +" &E << \\u00E8 <<< \\u00C8" /* E */ + " << \\u1EBB <<< \\u1EBA" + " << \\u1EBD <<< \\u1EBC" + " << \\u00E9 <<< \\u00C9" + " << \\u1EB9 <<< \\u1EB8" + " < \\u00EA <<< \\u00CA" /* E WITH CIRCUMFLEX */ + " << \\u1EC1 <<< \\u1EC0" + " << \\u1EC3 <<< \\u1EC2" + " << \\u1EC5 <<< \\u1EC4" + " << \\u1EBF <<< \\u1EBE" + " << \\u1EC7 <<< \\u1EC6" +" &I << \\u00EC <<< \\u00CC" /* I */ + " << \\u1EC9 <<< \\u1EC8" + " << \\u0129 <<< \\u0128" + " << \\u00ED <<< \\u00CD" + " << \\u1ECB <<< \\u1ECA" +" &O << \\u00F2 <<< \\u00D2" /* O */ + " << \\u1ECF <<< \\u1ECE" + " << \\u00F5 <<< \\u00D5" + " << \\u00F3 <<< \\u00D3" + " << \\u1ECD <<< \\u1ECC" + " < \\u00F4 <<< \\u00D4" /* O WITH CIRCUMFLEX */ + " << \\u1ED3 <<< \\u1ED2" + " << \\u1ED5 <<< \\u1ED4" + " << \\u1ED7 <<< \\u1ED6" + " << \\u1ED1 <<< \\u1ED0" + " << \\u1ED9 <<< \\u1ED8" + " < \\u01A1 <<< \\u01A0" /* O WITH HORN */ + " << \\u1EDD <<< \\u1EDC" + " << \\u1EDF <<< \\u1EDE" + " << \\u1EE1 <<< \\u1EE0" + " << \\u1EDB <<< \\u1EDA" + " << \\u1EE3 <<< \\u1EE2" +" &U << \\u00F9 <<< \\u00D9" /* U */ + " << \\u1EE7 <<< \\u1EE6" + " << \\u0169 <<< \\u0168" + " << \\u00FA <<< \\u00DA" + " << \\u1EE5 <<< \\u1EE4" + " < \\u01B0 <<< \\u01AF" /* U WITH HORN */ + " << \\u1EEB <<< \\u1EEA" + " << \\u1EED <<< \\u1EEC" + " << \\u1EEF <<< \\u1EEE" + " << \\u1EE9 <<< \\u1EE8" + " << \\u1EF1 <<< \\u1EF0" +" &Y << \\u1EF3 <<< \\u1EF2" /* Y */ + " << \\u1EF7 <<< \\u1EF6" + " << \\u1EF9 <<< \\u1EF8" + " << \\u00FD <<< \\u00DD" + " << \\u1EF5 <<< \\u1EF4"; + + +/* + Myanmar, according to CLDR Revision 8900. + http://unicode.org/cldr/trac/browser/trunk/common/collation/my.xml +*/ +static const char myanmar[]= "[shift-after-method expand][version 5.2.0]" +/* Tones */ +"&\\u108C" +"<\\u1037" +"<\\u1038" +"<\\u1037\\u1038" +/* Vowels */ +"&\\u102C<<\\u102B" +"&\\u1032" +"<\\u1031\\u102C<<\\u1031\\u102B" +"<\\u1031\\u102C\\u103A<<\\u1031\\u102B\\u103A" +"&\\u1034" +"<\\u1036" +"<\\u102D\\u102F" +/* Vowels with finals */ +"<\\u1000\\u1039<<\\u1000\\u103A" +"<\\u102C\\u1000\\u1039<<\\u102C\\u1000\\u103A<<\\u102B\\u1000\\u1039<<\\u102B\\u1000\\u103A" +"<\\u102D\\u1000\\u1039<<\\u102D\\u1000\\u103A" +"<\\u102F\\u1000\\u1039<<\\u102F\\u1000\\u103A" +"<\\u1031\\u1000\\u1039<<\\u1031\\u1000\\u103A" +"<\\u1031\\u102C\\u1000\\u1039<<\\u1031\\u102C\\u1000\\u103A<<\\u1031\\u102B\\u1000\\u1039<<\\u1031\\u102B\\u1000\\u103A" +"<\\u102D\\u102F\\u1000\\u1039<<\\u102D\\u102F\\u1000\\u103A" +"<\\u1001\\u1039<<\\u1001\\u103A" +"<\\u102C\\u1001\\u1039<<\\u102C\\u1001\\u103A<<\\u102B\\u1001\\u1039<<\\u102B\\u1001\\u103A" +"<\\u102D\\u1001\\u1039<<\\u102D\\u1001\\u103A" +"<\\u102F\\u1001\\u1039<<\\u102F\\u1001\\u103A" +"<\\u1031\\u1001\\u1039<<\\u1031\\u1001\\u103A" +"<\\u1031\\u102C\\u1001\\u1039<<\\u1031\\u102C\\u1001\\u103A<<\\u1031\\u102B\\u1001\\u1039<<\\u1031\\u102B\\u1001\\u103A" +"<\\u102D\\u102F\\u1001\\u1039<<\\u102D\\u102F\\u1001\\u103A" +"<\\u1002\\u1039<<\\u1002\\u103A" +"<\\u102C\\u1002\\u1039<<\\u102C\\u1002\\u103A<<\\u102B\\u1002\\u1039<<\\u102B\\u1002\\u103A" +"<\\u102D\\u1002\\u1039<<\\u102D\\u1002\\u103A" +"<\\u102F\\u1002\\u1039<<\\u102F\\u1002\\u103A" +"<\\u1031\\u1002\\u1039<<\\u1031\\u1002\\u103A" +"<\\u1031\\u102C\\u1002\\u1039<<\\u1031\\u102C\\u1002\\u103A<<\\u1031\\u102B\\u1002\\u1039<<\\u1031\\u102B\\u1002\\u103A" +"<\\u102D\\u102F\\u1002\\u1039<<\\u102D\\u102F\\u1002\\u103A" +"<\\u1003\\u1039<<\\u1003\\u103A" +"<\\u102C\\u1003\\u1039<<\\u102C\\u1003\\u103A<<\\u102B\\u1003\\u1039<<\\u102B\\u1003\\u103A" +"<\\u102D\\u1003\\u1039<<\\u102D\\u1003\\u103A" +"<\\u102F\\u1003\\u1039<<\\u102F\\u1003\\u103A" +"<\\u1031\\u1003\\u1039<<\\u1031\\u1003\\u103A" +"<\\u1031\\u102C\\u1003\\u1039<<\\u1031\\u102C\\u1003\\u103A<<\\u1031\\u102B\\u1003\\u1039<<\\u1031\\u102B\\u1003\\u103A" +"<\\u102D\\u102F\\u1003\\u1039<<\\u102D\\u102F\\u1003\\u103A" +"<\\u1004\\u103A\\u1039<<\\u1004\\u103A" +"<\\u102C\\u1004\\u103A\\u1039<<\\u102C\\u1004\\u103A<<\\u102B\\u1004\\u103A\\u1039<<\\u102B\\u1004\\u103A" +"<\\u102D\\u1004\\u103A\\u1039<<\\u102D\\u1004\\u103A" +"<\\u102F\\u1004\\u103A\\u1039<<\\u102F\\u1004\\u103A" +"<\\u1031\\u1004\\u103A\\u1039<<\\u1031\\u1004\\u103A" +"<\\u1031\\u102C\\u1004\\u103A\\u1039<<\\u1031\\u102C\\u1004\\u103A<<\\u1031\\u102B\\u1004\\u103A\\u1039<<\\u1031\\u102B\\u1004\\u103A" +"<\\u102D\\u102F\\u1004\\u103A\\u1039<<\\u102D\\u102F\\u1004\\u103A" +"<\\u1005\\u1039<<\\u1005\\u103A" +"<\\u102C\\u1005\\u1039<<\\u102C\\u1005\\u103A<<\\u102B\\u1005\\u1039<<\\u102B\\u1005\\u103A" +"<\\u102D\\u1005\\u1039<<\\u102D\\u1005\\u103A" +"<\\u102F\\u1005\\u1039<<\\u102F\\u1005\\u103A" +"<\\u1031\\u1005\\u1039<<\\u1031\\u1005\\u103A" +"<\\u1031\\u102C\\u1005\\u1039<<\\u1031\\u102C\\u1005\\u103A<<\\u1031\\u102B\\u1005\\u1039<<\\u1031\\u102B\\u1005\\u103A" +"<\\u102D\\u102F\\u1005\\u1039<<\\u102D\\u102F\\u1005\\u103A" +"<\\u1006\\u1039<<\\u1006\\u103A" +"<\\u102C\\u1006\\u1039<<\\u102C\\u1006\\u103A<<\\u102B\\u1006\\u1039<<\\u102B\\u1006\\u103A" +"<\\u102D\\u1006\\u1039<<\\u102D\\u1006\\u103A" +"<\\u102F\\u1006\\u1039<<\\u102F\\u1006\\u103A" +"<\\u1031\\u1006\\u1039<<\\u1031\\u1006\\u103A" +"<\\u1031\\u102C\\u1006\\u1039<<\\u1031\\u102C\\u1006\\u103A<<\\u1031\\u102B\\u1006\\u1039<<\\u1031\\u102B\\u1006\\u103A" +"<\\u102D\\u102F\\u1006\\u1039<<\\u102D\\u102F\\u1006\\u103A" +"<\\u1007\\u1039<<\\u1007\\u103A" +"<\\u102C\\u1007\\u1039<<\\u102C\\u1007\\u103A<<\\u102B\\u1007\\u1039<<\\u102B\\u1007\\u103A" +"<\\u102D\\u1007\\u1039<<\\u102D\\u1007\\u103A" +"<\\u102F\\u1007\\u1039<<\\u102F\\u1007\\u103A" +"<\\u1031\\u1007\\u1039<<\\u1031\\u1007\\u103A" +"<\\u1031\\u102C\\u1007\\u1039<<\\u1031\\u102C\\u1007\\u103A<<\\u1031\\u102B\\u1007\\u1039<<\\u1031\\u102B\\u1007\\u103A" +"<\\u102D\\u102F\\u1007\\u1039<<\\u102D\\u102F\\u1007\\u103A" +"<\\u1008\\u103A" +"<\\u102C\\u1008\\u103A<<\\u102B\\u1008\\u103A" +"<\\u102D\\u1008\\u103A" +"<\\u102F\\u1008\\u103A" +"<\\u1031\\u1008\\u103A" +"<\\u1031\\u102C\\u1008\\u103A<<\\u1031\\u102B\\u1008\\u103A" +"<\\u102D\\u102F\\u1008\\u103A" +"<\\u1009\\u1039<<\\u1009\\u103A" +"<\\u102C\\u1009\\u1039<<\\u102C\\u1009\\u103A<<\\u102B\\u1009\\u1039<<\\u102B\\u1009\\u103A" +"<\\u102D\\u1009\\u1039<<\\u102D\\u1009\\u103A" +"<\\u102F\\u1009\\u1039<<\\u102F\\u1009\\u103A" +"<\\u1031\\u1009\\u1039<<\\u1031\\u1009\\u103A" +"<\\u1031\\u102C\\u1009\\u1039<<\\u1031\\u102C\\u1009\\u103A<<\\u1031\\u102B\\u1009\\u1039<<\\u1031\\u102B\\u1009\\u103A" +"<\\u102D\\u102F\\u1009\\u1039<<\\u102D\\u102F\\u1009\\u103A" +"<\\u100A\\u1039<<\\u100A\\u103A" +"<\\u102C\\u100A\\u1039<<\\u102C\\u100A\\u103A<<\\u102B\\u100A\\u1039<<\\u102B\\u100A\\u103A" +"<\\u102D\\u100A\\u1039<<\\u102D\\u100A\\u103A" +"<\\u102F\\u100A\\u1039<<\\u102F\\u100A\\u103A" +"<\\u1031\\u100A\\u1039<<\\u1031\\u100A\\u103A" +"<\\u1031\\u102C\\u100A\\u1039<<\\u1031\\u102C\\u100A\\u103A<<\\u1031\\u102B\\u100A\\u1039<<\\u1031\\u102B\\u100A\\u103A" +"<\\u102D\\u102F\\u100A\\u1039<<\\u102D\\u102F\\u100A\\u103A" +"<\\u100B\\u1039<<\\u100B\\u103A" +"<\\u102C\\u100B\\u1039<<\\u102C\\u100B\\u103A<<\\u102B\\u100B\\u1039<<\\u102B\\u100B\\u103A" +"<\\u102D\\u100B\\u1039<<\\u102D\\u100B\\u103A" +"<\\u102F\\u100B\\u1039<<\\u102F\\u100B\\u103A" +"<\\u1031\\u100B\\u1039<<\\u1031\\u100B\\u103A" +"<\\u1031\\u102C\\u100B\\u1039<<\\u1031\\u102C\\u100B\\u103A<<\\u1031\\u102B\\u100B\\u1039<<\\u1031\\u102B\\u100B\\u103A" +"<\\u102D\\u102F\\u100B\\u1039<<\\u102D\\u102F\\u100B\\u103A" +"<\\u100C\\u1039<<\\u100C\\u103A" +"<\\u102C\\u100C\\u1039<<\\u102C\\u100C\\u103A<<\\u102B\\u100C\\u1039<<\\u102B\\u100C\\u103A" +"<\\u102D\\u100C\\u1039<<\\u102D\\u100C\\u103A" +"<\\u102F\\u100C\\u1039<<\\u102F\\u100C\\u103A" +"<\\u1031\\u100C\\u1039<<\\u1031\\u100C\\u103A" +"<\\u1031\\u102C\\u100C\\u1039<<\\u1031\\u102C\\u100C\\u103A<<\\u1031\\u102B\\u100C\\u1039<<\\u1031\\u102B\\u100C\\u103A" +"<\\u102D\\u102F\\u100C\\u1039<<\\u102D\\u102F\\u100C\\u103A" +"<\\u100D\\u1039<<\\u100D\\u103A" +"<\\u102C\\u100D\\u1039<<\\u102C\\u100D\\u103A<<\\u102B\\u100D\\u1039<<\\u102B\\u100D\\u103A" +"<\\u102D\\u100D\\u1039<<\\u102D\\u100D\\u103A" +"<\\u102F\\u100D\\u1039<<\\u102F\\u100D\\u103A" +"<\\u1031\\u100D\\u1039<<\\u1031\\u100D\\u103A" +"<\\u1031\\u102C\\u100D\\u1039<<\\u1031\\u102C\\u100D\\u103A<<\\u1031\\u102B\\u100D\\u1039<<\\u1031\\u102B\\u100D\\u103A" +"<\\u102D\\u102F\\u100D\\u1039<<\\u102D\\u102F\\u100D\\u103A" +"<\\u100E\\u1039<<\\u100E\\u103A" +"<\\u102C\\u100E\\u1039<<\\u102C\\u100E\\u103A<<\\u102B\\u100E\\u1039<<\\u102B\\u100E\\u103A" +"<\\u102D\\u100E\\u1039<<\\u102D\\u100E\\u103A" +"<\\u102F\\u100E\\u1039<<\\u102F\\u100E\\u103A" +"<\\u1031\\u100E\\u1039<<\\u1031\\u100E\\u103A" +"<\\u1031\\u102C\\u100E\\u1039<<\\u1031\\u102C\\u100E\\u103A<<\\u1031\\u102B\\u100E\\u1039<<\\u1031\\u102B\\u100E\\u103A" +"<\\u102D\\u102F\\u100E\\u1039<<\\u102D\\u102F\\u100E\\u103A" +"<\\u100F\\u1039<<\\u100F\\u103A" +"<\\u102C\\u100F\\u1039<<\\u102C\\u100F\\u103A<<\\u102B\\u100F\\u1039<<\\u102B\\u100F\\u103A" +"<\\u102D\\u100F\\u1039<<\\u102D\\u100F\\u103A" +"<\\u102F\\u100F\\u1039<<\\u102F\\u100F\\u103A" +"<\\u1031\\u100F\\u1039<<\\u1031\\u100F\\u103A" +"<\\u1031\\u102C\\u100F\\u1039<<\\u1031\\u102C\\u100F\\u103A<<\\u1031\\u102B\\u100F\\u1039<<\\u1031\\u102B\\u100F\\u103A" +"<\\u102D\\u102F\\u100F\\u1039<<\\u102D\\u102F\\u100F\\u103A" +"<\\u1010\\u1039<<\\u1010\\u103A" +"<\\u102C\\u1010\\u1039<<\\u102C\\u1010\\u103A<<\\u102B\\u1010\\u1039<<\\u102B\\u1010\\u103A" +"<\\u102D\\u1010\\u1039<<\\u102D\\u1010\\u103A" +"<\\u102F\\u1010\\u1039<<\\u102F\\u1010\\u103A" +"<\\u1031\\u1010\\u1039<<\\u1031\\u1010\\u103A" +"<\\u1031\\u102C\\u1010\\u1039<<\\u1031\\u102C\\u1010\\u103A<<\\u1031\\u102B\\u1010\\u1039<<\\u1031\\u102B\\u1010\\u103A" +"<\\u102D\\u102F\\u1010\\u1039<<\\u102D\\u102F\\u1010\\u103A" +"<\\u1011\\u1039<<\\u1011\\u103A" +"<\\u102C\\u1011\\u1039<<\\u102C\\u1011\\u103A<<\\u102B\\u1011\\u1039<<\\u102B\\u1011\\u103A" +"<\\u102D\\u1011\\u1039<<\\u102D\\u1011\\u103A" +"<\\u102F\\u1011\\u1039<<\\u102F\\u1011\\u103A" +"<\\u1031\\u1011\\u1039<<\\u1031\\u1011\\u103A" +"<\\u1031\\u102C\\u1011\\u1039<<\\u1031\\u102C\\u1011\\u103A<<\\u1031\\u102B\\u1011\\u1039<<\\u1031\\u102B\\u1011\\u103A" +"<\\u102D\\u102F\\u1011\\u1039<<\\u102D\\u102F\\u1011\\u103A" +"<\\u1012\\u1039<<\\u1012\\u103A" +"<\\u102C\\u1012\\u1039<<\\u102C\\u1012\\u103A<<\\u102B\\u1012\\u1039<<\\u102B\\u1012\\u103A" +"<\\u102D\\u1012\\u1039<<\\u102D\\u1012\\u103A" +"<\\u102F\\u1012\\u1039<<\\u102F\\u1012\\u103A" +"<\\u1031\\u1012\\u1039<<\\u1031\\u1012\\u103A" +"<\\u1031\\u102C\\u1012\\u1039<<\\u1031\\u102C\\u1012\\u103A<<\\u1031\\u102B\\u1012\\u1039<<\\u1031\\u102B\\u1012\\u103A" +"<\\u102D\\u102F\\u1012\\u1039<<\\u102D\\u102F\\u1012\\u103A" +"<\\u1013\\u1039<<\\u1013\\u103A" +"<\\u102C\\u1013\\u1039<<\\u102C\\u1013\\u103A<<\\u102B\\u1013\\u1039<<\\u102B\\u1013\\u103A" +"<\\u102D\\u1013\\u1039<<\\u102D\\u1013\\u103A" +"<\\u102F\\u1013\\u1039<<\\u102F\\u1013\\u103A" +"<\\u1031\\u1013\\u1039<<\\u1031\\u1013\\u103A" +"<\\u1031\\u102C\\u1013\\u1039<<\\u1031\\u102C\\u1013\\u103A<<\\u1031\\u102B\\u1013\\u1039<<\\u1031\\u102B\\u1013\\u103A" +"<\\u102D\\u102F\\u1013\\u1039<<\\u102D\\u102F\\u1013\\u103A" +"<\\u1014\\u1039<<\\u1014\\u103A" +"<\\u102C\\u1014\\u1039<<\\u102C\\u1014\\u103A<<\\u102B\\u1014\\u1039<<\\u102B\\u1014\\u103A" +"<\\u102D\\u1014\\u1039<<\\u102D\\u1014\\u103A" +"<\\u102F\\u1014\\u1039<<\\u102F\\u1014\\u103A" +"<\\u1031\\u1014\\u1039<<\\u1031\\u1014\\u103A" +"<\\u1031\\u102C\\u1014\\u1039<<\\u1031\\u102C\\u1014\\u103A<<\\u1031\\u102B\\u1014\\u1039<<\\u1031\\u102B\\u1014\\u103A" +"<\\u102D\\u102F\\u1014\\u1039<<\\u102D\\u102F\\u1014\\u103A" +"<\\u1015\\u1039<<\\u1015\\u103A" +"<\\u102C\\u1015\\u1039<<\\u102C\\u1015\\u103A<<\\u102B\\u1015\\u1039<<\\u102B\\u1015\\u103A" +"<\\u102D\\u1015\\u1039<<\\u102D\\u1015\\u103A" +"<\\u102F\\u1015\\u1039<<\\u102F\\u1015\\u103A" +"<\\u1031\\u1015\\u1039<<\\u1031\\u1015\\u103A" +"<\\u1031\\u102C\\u1015\\u1039<<\\u1031\\u102C\\u1015\\u103A<<\\u1031\\u102B\\u1015\\u1039<<\\u1031\\u102B\\u1015\\u103A" +"<\\u102D\\u102F\\u1015\\u1039<<\\u102D\\u102F\\u1015\\u103A" +"<\\u1016\\u1039<<\\u1016\\u103A" +"<\\u102C\\u1016\\u1039<<\\u102C\\u1016\\u103A<<\\u102B\\u1016\\u1039<<\\u102B\\u1016\\u103A" +"<\\u102D\\u1016\\u1039<<\\u102D\\u1016\\u103A" +"<\\u102F\\u1016\\u1039<<\\u102F\\u1016\\u103A" +"<\\u1031\\u1016\\u1039<<\\u1031\\u1016\\u103A" +"<\\u1031\\u102C\\u1016\\u1039<<\\u1031\\u102C\\u1016\\u103A<<\\u1031\\u102B\\u1016\\u1039<<\\u1031\\u102B\\u1016\\u103A" +"<\\u102D\\u102F\\u1016\\u1039<<\\u102D\\u102F\\u1016\\u103A" +"<\\u1017\\u1039<<\\u1017\\u103A" +"<\\u102C\\u1017\\u1039<<\\u102C\\u1017\\u103A<<\\u102B\\u1017\\u1039<<\\u102B\\u1017\\u103A" +"<\\u102D\\u1017\\u1039<<\\u102D\\u1017\\u103A" +"<\\u102F\\u1017\\u1039<<\\u102F\\u1017\\u103A" +"<\\u1031\\u1017\\u1039<<\\u1031\\u1017\\u103A" +"<\\u1031\\u102C\\u1017\\u1039<<\\u1031\\u102C\\u1017\\u103A<<\\u1031\\u102B\\u1017\\u1039<<\\u1031\\u102B\\u1017\\u103A" +"<\\u102D\\u102F\\u1017\\u1039<<\\u102D\\u102F\\u1017\\u103A" +"<\\u1018\\u1039<<\\u1018\\u103A" +"<\\u102C\\u1018\\u1039<<\\u102C\\u1018\\u103A<<\\u102B\\u1018\\u1039<<\\u102B\\u1018\\u103A" +"<\\u102D\\u1018\\u1039<<\\u102D\\u1018\\u103A" +"<\\u102F\\u1018\\u1039<<\\u102F\\u1018\\u103A" +"<\\u1031\\u1018\\u1039<<\\u1031\\u1018\\u103A" +"<\\u1031\\u102C\\u1018\\u1039<<\\u1031\\u102C\\u1018\\u103A<<\\u1031\\u102B\\u1018\\u1039<<\\u1031\\u102B\\u1018\\u103A" +"<\\u102D\\u102F\\u1018\\u1039<<\\u102D\\u102F\\u1018\\u103A" +"<\\u1019\\u1039<<\\u1019\\u103A" +"<\\u102C\\u1019\\u1039<<\\u102C\\u1019\\u103A<<\\u102B\\u1019\\u1039<<\\u102B\\u1019\\u103A" +"<\\u102D\\u1019\\u1039<<\\u102D\\u1019\\u103A" +"<\\u102F\\u1019\\u1039<<\\u102F\\u1019\\u103A" +"<\\u1031\\u1019\\u1039<<\\u1031\\u1019\\u103A" +"<\\u1031\\u102C\\u1019\\u1039<<\\u1031\\u102C\\u1019\\u103A<<\\u1031\\u102B\\u1019\\u1039<<\\u1031\\u102B\\u1019\\u103A" +"<\\u102D\\u102F\\u1019\\u1039<<\\u102D\\u102F\\u1019\\u103A" +"<\\u101A\\u1039<<\\u101A\\u103A" +"<\\u102C\\u101A\\u1039<<\\u102C\\u101A\\u103A<<\\u102B\\u101A\\u1039<<\\u102B\\u101A\\u103A" +"<\\u102D\\u101A\\u1039<<\\u102D\\u101A\\u103A" +"<\\u102F\\u101A\\u1039<<\\u102F\\u101A\\u103A" +"<\\u1031\\u101A\\u1039<<\\u1031\\u101A\\u103A" +"<\\u1031\\u102C\\u101A\\u1039<<\\u1031\\u102C\\u101A\\u103A<<\\u1031\\u102B\\u101A\\u1039<<\\u1031\\u102B\\u101A\\u103A" +"<\\u102D\\u102F\\u101A\\u1039<<\\u102D\\u102F\\u101A\\u103A" +"<\\u101B\\u1039<<\\u101B\\u103A" +"<\\u102C\\u101B\\u1039<<\\u102C\\u101B\\u103A<<\\u102B\\u101B\\u1039<<\\u102B\\u101B\\u103A" +"<\\u102D\\u101B\\u1039<<\\u102D\\u101B\\u103A" +"<\\u102F\\u101B\\u1039<<\\u102F\\u101B\\u103A" +"<\\u1031\\u101B\\u1039<<\\u1031\\u101B\\u103A" +"<\\u1031\\u102C\\u101B\\u1039<<\\u1031\\u102C\\u101B\\u103A<<\\u1031\\u102B\\u101B\\u1039<<\\u1031\\u102B\\u101B\\u103A" +"<\\u102D\\u102F\\u101B\\u1039<<\\u102D\\u102F\\u101B\\u103A" +"<\\u101C\\u1039<<\\u101C\\u103A" +"<\\u102C\\u101C\\u1039<<\\u102C\\u101C\\u103A<<\\u102B\\u101C\\u1039<<\\u102B\\u101C\\u103A" +"<\\u102D\\u101C\\u1039<<\\u102D\\u101C\\u103A" +"<\\u102F\\u101C\\u1039<<\\u102F\\u101C\\u103A" +"<\\u1031\\u101C\\u1039<<\\u1031\\u101C\\u103A" +"<\\u1031\\u102C\\u101C\\u1039<<\\u1031\\u102C\\u101C\\u103A<<\\u1031\\u102B\\u101C\\u1039<<\\u1031\\u102B\\u101C\\u103A" +"<\\u102D\\u102F\\u101C\\u1039<<\\u102D\\u102F\\u101C\\u103A" +"<\\u101D\\u103A" +"<\\u102C\\u101D\\u103A<<\\u102B\\u101D\\u103A" +"<\\u102D\\u101D\\u103A" +"<\\u102F\\u101D\\u103A" +"<\\u1031\\u101D\\u103A" +"<\\u1031\\u102C\\u101D\\u103A<<\\u1031\\u102B\\u101D\\u103A" +"<\\u102D\\u102F\\u101D\\u103A" +"<\\u101E\\u1039<<\\u101E\\u103A" +"<\\u102C\\u101E\\u1039<<\\u102C\\u101E\\u103A<<\\u102B\\u101E\\u1039<<\\u102B\\u101E\\u103A" +"<\\u102D\\u101E\\u1039<<\\u102D\\u101E\\u103A" +"<\\u102F\\u101E\\u1039<<\\u102F\\u101E\\u103A" +"<\\u1031\\u101E\\u1039<<\\u1031\\u101E\\u103A" +"<\\u1031\\u102C\\u101E\\u1039<<\\u1031\\u102C\\u101E\\u103A<<\\u1031\\u102B\\u101E\\u1039<<\\u1031\\u102B\\u101E\\u103A" +"<\\u102D\\u102F\\u101E\\u1039<<\\u102D\\u102F\\u101E\\u103A" +"<\\u101F\\u1039<<\\u101F\\u103A" +"<\\u102C\\u101F\\u1039<<\\u102C\\u101F\\u103A<<\\u102B\\u101F\\u1039<<\\u102B\\u101F\\u103A" +"<\\u102D\\u101F\\u1039<<\\u102D\\u101F\\u103A" +"<\\u102F\\u101F\\u1039<<\\u102F\\u101F\\u103A" +"<\\u1031\\u101F\\u1039<<\\u1031\\u101F\\u103A" +"<\\u1031\\u102C\\u101F\\u1039<<\\u1031\\u102C\\u101F\\u103A<<\\u1031\\u102B\\u101F\\u1039<<\\u1031\\u102B\\u101F\\u103A" +"<\\u102D\\u102F\\u101F\\u1039<<\\u102D\\u102F\\u101F\\u103A" +"<\\u1020\\u103A" +"<\\u102C\\u1020\\u103A<<\\u102B\\u1020\\u103A" +"<\\u102D\\u1020\\u103A" +"<\\u102F\\u1020\\u103A" +"<\\u1031\\u1020\\u103A" +"<\\u1031\\u102C\\u1020\\u103A<<\\u1031\\u102B\\u1020\\u103A" +"<\\u102D\\u102F\\u1020\\u103A" +"<\\u1021\\u103A" +"<\\u102C\\u1021\\u103A<<\\u102B\\u1021\\u103A" +"<\\u102D\\u1021\\u103A" +"<\\u102F\\u1021\\u103A" +"<\\u1031\\u1021\\u103A" +"<\\u1031\\u102C\\u1021\\u103A<<\\u1031\\u102B\\u1021\\u103A" +"<\\u102D\\u102F\\u1021\\u103A" +/* Medials */ +"<\\u105E" +"<\\u105F" +"<\\u103B" +"<\\u103C" +"<\\u1060" +"<\\u103D" +"<\\u1082" +"<\\u103E" +"<\\u103B\\u103D" +"<\\u103C\\u103D" +"<\\u103B\\u103E" +"<\\u103C\\u103E" +"<\\u103D\\u103E" +"<\\u103B\\u103D\\u103E" +"<\\u103C\\u103D\\u103E" +/* Independent vowels */ +"&\\u1021\\u102D<<<\\u1023" +"&\\u1021\\u102E<<<\\u1024" +"&\\u1021\\u102F<<<\\u1025" +"&\\u1021\\u1030<<<\\u1026" +"&\\u1021\\u1031<<<\\u1027<<<\\u1028" +"&\\u1021\\u1031\\u102C<<<\\u1029" +"&\\u1021\\u1031\\u102C\\u103A<<<\\u102A" +"&\\u102D\\u1019\\u103A" +"<\\u102D\\u1036" +"<\\u102D\\u1019\\u103A\\u1037" +"<\\u102D\\u1036\\u1037" +"<\\u102D\\u1019\\u103A\\u1038" +"<\\u102D\\u1036\\u1038" +"&\\u102F\\u1019\\u103A" +"<\\u102F\\u1036" +"<\\u102F\\u1019\\u103A\\u1037" +"<\\u102F\\u1036\\u1037" +"<\\u102F\\u1019\\u103A\\u1038" +"<\\u102F\\u1036\\u1038" +"&\\u1021\\u102F\\u1036<<<\\u1025\\u102F\\u1036" +/* Independent vowels with finals */ +"&\\u1021\\u102D\\u1000\\u1039<<<\\u1023\\u1000\\u1039" +"&\\u1021\\u102D\\u1000\\u103A<<<\\u1023\\u1000\\u103A" +"&\\u1021\\u102F\\u1000\\u1039<<<\\u1025\\u1000\\u1039" +"&\\u1021\\u102F\\u1000\\u103A<<<\\u1025\\u1000\\u103A" +"&\\u1021\\u1031\\u1000\\u1039<<<\\u1027\\u1000\\u1039" +"&\\u1021\\u1031\\u1000\\u103A<<<\\u1027\\u1000\\u103A" +"&\\u1021\\u1031\\u102C\\u1000\\u1039<<<\\u1029\\u1000\\u1039" +"&\\u1021\\u1031\\u102C\\u1000\\u103A<<<\\u1029\\u1000\\u103A" +"&\\u1021\\u1031\\u102C\\u1000\\u1039<<<\\u1029\\u1031\\u102C\\u1000\\u1039" +"&\\u1021\\u1031\\u102C\\u1000\\u103A<<<\\u1029\\u1031\\u102C\\u1000\\u103A" +"&\\u1021\\u102D\\u1001\\u1039<<<\\u1023\\u1001\\u1039" +"&\\u1021\\u102D\\u1001\\u103A<<<\\u1023\\u1001\\u103A" +"&\\u1021\\u102F\\u1001\\u1039<<<\\u1025\\u1001\\u1039" +"&\\u1021\\u102F\\u1001\\u103A<<<\\u1025\\u1001\\u103A" +"&\\u1021\\u1031\\u1001\\u1039<<<\\u1027\\u1001\\u1039" +"&\\u1021\\u1031\\u1001\\u103A<<<\\u1027\\u1001\\u103A" +"&\\u1021\\u1031\\u102C\\u1001\\u1039<<<\\u1029\\u1001\\u1039" +"&\\u1021\\u1031\\u102C\\u1001\\u103A<<<\\u1029\\u1001\\u103A" +"&\\u1021\\u1031\\u102C\\u1001\\u1039<<<\\u1029\\u1031\\u102C\\u1001\\u1039" +"&\\u1021\\u1031\\u102C\\u1001\\u103A<<<\\u1029\\u1031\\u102C\\u1001\\u103A" +"&\\u1021\\u102D\\u1002\\u1039<<<\\u1023\\u1002\\u1039" +"&\\u1021\\u102D\\u1002\\u103A<<<\\u1023\\u1002\\u103A" +"&\\u1021\\u102F\\u1002\\u1039<<<\\u1025\\u1002\\u1039" +"&\\u1021\\u102F\\u1002\\u103A<<<\\u1025\\u1002\\u103A" +"&\\u1021\\u1031\\u1002\\u1039<<<\\u1027\\u1002\\u1039" +"&\\u1021\\u1031\\u1002\\u103A<<<\\u1027\\u1002\\u103A" +"&\\u1021\\u1031\\u102C\\u1002\\u1039<<<\\u1029\\u1002\\u1039" +"&\\u1021\\u1031\\u102C\\u1002\\u103A<<<\\u1029\\u1002\\u103A" +"&\\u1021\\u1031\\u102C\\u1002\\u1039<<<\\u1029\\u1031\\u102C\\u1002\\u1039" +"&\\u1021\\u1031\\u102C\\u1002\\u103A<<<\\u1029\\u1031\\u102C\\u1002\\u103A" +"&\\u1021\\u102D\\u1003\\u1039<<<\\u1023\\u1003\\u1039" +"&\\u1021\\u102D\\u1003\\u103A<<<\\u1023\\u1003\\u103A" +"&\\u1021\\u102F\\u1003\\u1039<<<\\u1025\\u1003\\u1039" +"&\\u1021\\u102F\\u1003\\u103A<<<\\u1025\\u1003\\u103A" +"&\\u1021\\u1031\\u1003\\u1039<<<\\u1027\\u1003\\u1039" +"&\\u1021\\u1031\\u1003\\u103A<<<\\u1027\\u1003\\u103A" +"&\\u1021\\u1031\\u102C\\u1003\\u1039<<<\\u1029\\u1003\\u1039" +"&\\u1021\\u1031\\u102C\\u1003\\u103A<<<\\u1029\\u1003\\u103A" +"&\\u1021\\u1031\\u102C\\u1003\\u1039<<<\\u1029\\u1031\\u102C\\u1003\\u1039" +"&\\u1021\\u1031\\u102C\\u1003\\u103A<<<\\u1029\\u1031\\u102C\\u1003\\u103A" +"&\\u1021\\u102D\\u1004\\u1039<<<\\u1023\\u1004\\u1039" +"&\\u1021\\u102D\\u1004\\u103A<<<\\u1023\\u1004\\u103A" +"&\\u1021\\u102F\\u1004\\u1039<<<\\u1025\\u1004\\u1039" +"&\\u1021\\u102F\\u1004\\u103A<<<\\u1025\\u1004\\u103A" +"&\\u1021\\u1031\\u1004\\u1039<<<\\u1027\\u1004\\u1039" +"&\\u1021\\u1031\\u1004\\u103A<<<\\u1027\\u1004\\u103A" +"&\\u1021\\u1031\\u102C\\u1004\\u1039<<<\\u1029\\u1004\\u1039" +"&\\u1021\\u1031\\u102C\\u1004\\u103A<<<\\u1029\\u1004\\u103A" +"&\\u1021\\u1031\\u102C\\u1004\\u1039<<<\\u1029\\u1031\\u102C\\u1004\\u1039" +"&\\u1021\\u1031\\u102C\\u1004\\u103A<<<\\u1029\\u1031\\u102C\\u1004\\u103A" +"&\\u1021\\u102D\\u1005\\u1039<<<\\u1023\\u1005\\u1039" +"&\\u1021\\u102D\\u1005\\u103A<<<\\u1023\\u1005\\u103A" +"&\\u1021\\u102F\\u1005\\u1039<<<\\u1025\\u1005\\u1039" +"&\\u1021\\u102F\\u1005\\u103A<<<\\u1025\\u1005\\u103A" +"&\\u1021\\u1031\\u1005\\u1039<<<\\u1027\\u1005\\u1039" +"&\\u1021\\u1031\\u1005\\u103A<<<\\u1027\\u1005\\u103A" +"&\\u1021\\u1031\\u102C\\u1005\\u1039<<<\\u1029\\u1005\\u1039" +"&\\u1021\\u1031\\u102C\\u1005\\u103A<<<\\u1029\\u1005\\u103A" +"&\\u1021\\u1031\\u102C\\u1005\\u1039<<<\\u1029\\u1031\\u102C\\u1005\\u1039" +"&\\u1021\\u1031\\u102C\\u1005\\u103A<<<\\u1029\\u1031\\u102C\\u1005\\u103A" +"&\\u1021\\u102D\\u1006\\u1039<<<\\u1023\\u1006\\u1039" +"&\\u1021\\u102D\\u1006\\u103A<<<\\u1023\\u1006\\u103A" +"&\\u1021\\u102F\\u1006\\u1039<<<\\u1025\\u1006\\u1039" +"&\\u1021\\u102F\\u1006\\u103A<<<\\u1025\\u1006\\u103A" +"&\\u1021\\u1031\\u1006\\u1039<<<\\u1027\\u1006\\u1039" +"&\\u1021\\u1031\\u1006\\u103A<<<\\u1027\\u1006\\u103A" +"&\\u1021\\u1031\\u102C\\u1006\\u1039<<<\\u1029\\u1006\\u1039" +"&\\u1021\\u1031\\u102C\\u1006\\u103A<<<\\u1029\\u1006\\u103A" +"&\\u1021\\u1031\\u102C\\u1006\\u1039<<<\\u1029\\u1031\\u102C\\u1006\\u1039" +"&\\u1021\\u1031\\u102C\\u1006\\u103A<<<\\u1029\\u1031\\u102C\\u1006\\u103A" +"&\\u1021\\u102D\\u1007\\u1039<<<\\u1023\\u1007\\u1039" +"&\\u1021\\u102D\\u1007\\u103A<<<\\u1023\\u1007\\u103A" +"&\\u1021\\u102F\\u1007\\u1039<<<\\u1025\\u1007\\u1039" +"&\\u1021\\u102F\\u1007\\u103A<<<\\u1025\\u1007\\u103A" +"&\\u1021\\u1031\\u1007\\u1039<<<\\u1027\\u1007\\u1039" +"&\\u1021\\u1031\\u1007\\u103A<<<\\u1027\\u1007\\u103A" +"&\\u1021\\u1031\\u102C\\u1007\\u1039<<<\\u1029\\u1007\\u1039" +"&\\u1021\\u1031\\u102C\\u1007\\u103A<<<\\u1029\\u1007\\u103A" +"&\\u1021\\u1031\\u102C\\u1007\\u1039<<<\\u1029\\u1031\\u102C\\u1007\\u1039" +"&\\u1021\\u1031\\u102C\\u1007\\u103A<<<\\u1029\\u1031\\u102C\\u1007\\u103A" +"&\\u1021\\u102D\\u1009\\u1039<<<\\u1023\\u1009\\u1039" +"&\\u1021\\u102D\\u1009\\u103A<<<\\u1023\\u1009\\u103A" +"&\\u1021\\u102F\\u1009\\u1039<<<\\u1025\\u1009\\u1039" +"&\\u1021\\u102F\\u1009\\u103A<<<\\u1025\\u1009\\u103A" +"&\\u1021\\u1031\\u1009\\u1039<<<\\u1027\\u1009\\u1039" +"&\\u1021\\u1031\\u1009\\u103A<<<\\u1027\\u1009\\u103A" +"&\\u1021\\u1031\\u102C\\u1009\\u1039<<<\\u1029\\u1009\\u1039" +"&\\u1021\\u1031\\u102C\\u1009\\u103A<<<\\u1029\\u1009\\u103A" +"&\\u1021\\u1031\\u102C\\u1009\\u1039<<<\\u1029\\u1031\\u102C\\u1009\\u1039" +"&\\u1021\\u1031\\u102C\\u1009\\u103A<<<\\u1029\\u1031\\u102C\\u1009\\u103A" +"&\\u1021\\u102D\\u100A\\u1039<<<\\u1023\\u100A\\u1039" +"&\\u1021\\u102D\\u100A\\u103A<<<\\u1023\\u100A\\u103A" +"&\\u1021\\u102F\\u100A\\u1039<<<\\u1025\\u100A\\u1039" +"&\\u1021\\u102F\\u100A\\u103A<<<\\u1025\\u100A\\u103A" +"&\\u1021\\u1031\\u100A\\u1039<<<\\u1027\\u100A\\u1039" +"&\\u1021\\u1031\\u100A\\u103A<<<\\u1027\\u100A\\u103A" +"&\\u1021\\u1031\\u102C\\u100A\\u1039<<<\\u1029\\u100A\\u1039" +"&\\u1021\\u1031\\u102C\\u100A\\u103A<<<\\u1029\\u100A\\u103A" +"&\\u1021\\u1031\\u102C\\u100A\\u1039<<<\\u1029\\u1031\\u102C\\u100A\\u1039" +"&\\u1021\\u1031\\u102C\\u100A\\u103A<<<\\u1029\\u1031\\u102C\\u100A\\u103A" +"&\\u1021\\u102D\\u100B\\u1039<<<\\u1023\\u100B\\u1039" +"&\\u1021\\u102D\\u100B\\u103A<<<\\u1023\\u100B\\u103A" +"&\\u1021\\u102F\\u100B\\u1039<<<\\u1025\\u100B\\u1039" +"&\\u1021\\u102F\\u100B\\u103A<<<\\u1025\\u100B\\u103A" +"&\\u1021\\u1031\\u100B\\u1039<<<\\u1027\\u100B\\u1039" +"&\\u1021\\u1031\\u100B\\u103A<<<\\u1027\\u100B\\u103A" +"&\\u1021\\u1031\\u102C\\u100B\\u1039<<<\\u1029\\u100B\\u1039" +"&\\u1021\\u1031\\u102C\\u100B\\u103A<<<\\u1029\\u100B\\u103A" +"&\\u1021\\u1031\\u102C\\u100B\\u1039<<<\\u1029\\u1031\\u102C\\u100B\\u1039" +"&\\u1021\\u1031\\u102C\\u100B\\u103A<<<\\u1029\\u1031\\u102C\\u100B\\u103A" +"&\\u1021\\u102D\\u100C\\u1039<<<\\u1023\\u100C\\u1039" +"&\\u1021\\u102D\\u100C\\u103A<<<\\u1023\\u100C\\u103A" +"&\\u1021\\u102F\\u100C\\u1039<<<\\u1025\\u100C\\u1039" +"&\\u1021\\u102F\\u100C\\u103A<<<\\u1025\\u100C\\u103A" +"&\\u1021\\u1031\\u100C\\u1039<<<\\u1027\\u100C\\u1039" +"&\\u1021\\u1031\\u100C\\u103A<<<\\u1027\\u100C\\u103A" +"&\\u1021\\u1031\\u102C\\u100C\\u1039<<<\\u1029\\u100C\\u1039" +"&\\u1021\\u1031\\u102C\\u100C\\u103A<<<\\u1029\\u100C\\u103A" +"&\\u1021\\u1031\\u102C\\u100C\\u1039<<<\\u1029\\u1031\\u102C\\u100C\\u1039" +"&\\u1021\\u1031\\u102C\\u100C\\u103A<<<\\u1029\\u1031\\u102C\\u100C\\u103A" +"&\\u1021\\u102D\\u100D\\u1039<<<\\u1023\\u100D\\u1039" +"&\\u1021\\u102D\\u100D\\u103A<<<\\u1023\\u100D\\u103A" +"&\\u1021\\u102F\\u100D\\u1039<<<\\u1025\\u100D\\u1039" +"&\\u1021\\u102F\\u100D\\u103A<<<\\u1025\\u100D\\u103A" +"&\\u1021\\u1031\\u100D\\u1039<<<\\u1027\\u100D\\u1039" +"&\\u1021\\u1031\\u100D\\u103A<<<\\u1027\\u100D\\u103A" +"&\\u1021\\u1031\\u102C\\u100D\\u1039<<<\\u1029\\u100D\\u1039" +"&\\u1021\\u1031\\u102C\\u100D\\u103A<<<\\u1029\\u100D\\u103A" +"&\\u1021\\u1031\\u102C\\u100D\\u1039<<<\\u1029\\u1031\\u102C\\u100D\\u1039" +"&\\u1021\\u1031\\u102C\\u100D\\u103A<<<\\u1029\\u1031\\u102C\\u100D\\u103A" +"&\\u1021\\u102D\\u100E\\u1039<<<\\u1023\\u100E\\u1039" +"&\\u1021\\u102D\\u100E\\u103A<<<\\u1023\\u100E\\u103A" +"&\\u1021\\u102F\\u100E\\u1039<<<\\u1025\\u100E\\u1039" +"&\\u1021\\u102F\\u100E\\u103A<<<\\u1025\\u100E\\u103A" +"&\\u1021\\u1031\\u100E\\u1039<<<\\u1027\\u100E\\u1039" +"&\\u1021\\u1031\\u100E\\u103A<<<\\u1027\\u100E\\u103A" +"&\\u1021\\u1031\\u102C\\u100E\\u1039<<<\\u1029\\u100E\\u1039" +"&\\u1021\\u1031\\u102C\\u100E\\u103A<<<\\u1029\\u100E\\u103A" +"&\\u1021\\u1031\\u102C\\u100E\\u1039<<<\\u1029\\u1031\\u102C\\u100E\\u1039" +"&\\u1021\\u1031\\u102C\\u100E\\u103A<<<\\u1029\\u1031\\u102C\\u100E\\u103A" +"&\\u1021\\u102D\\u100F\\u1039<<<\\u1023\\u100F\\u1039" +"&\\u1021\\u102D\\u100F\\u103A<<<\\u1023\\u100F\\u103A" +"&\\u1021\\u102F\\u100F\\u1039<<<\\u1025\\u100F\\u1039" +"&\\u1021\\u102F\\u100F\\u103A<<<\\u1025\\u100F\\u103A" +"&\\u1021\\u1031\\u100F\\u1039<<<\\u1027\\u100F\\u1039" +"&\\u1021\\u1031\\u100F\\u103A<<<\\u1027\\u100F\\u103A" +"&\\u1021\\u1031\\u102C\\u100F\\u1039<<<\\u1029\\u100F\\u1039" +"&\\u1021\\u1031\\u102C\\u100F\\u103A<<<\\u1029\\u100F\\u103A" +"&\\u1021\\u1031\\u102C\\u100F\\u1039<<<\\u1029\\u1031\\u102C\\u100F\\u1039" +"&\\u1021\\u1031\\u102C\\u100F\\u103A<<<\\u1029\\u1031\\u102C\\u100F\\u103A" +"&\\u1021\\u102D\\u1010\\u1039<<<\\u1023\\u1010\\u1039" +"&\\u1021\\u102D\\u1010\\u103A<<<\\u1023\\u1010\\u103A" +"&\\u1021\\u102F\\u1010\\u1039<<<\\u1025\\u1010\\u1039" +"&\\u1021\\u102F\\u1010\\u103A<<<\\u1025\\u1010\\u103A" +"&\\u1021\\u1031\\u1010\\u1039<<<\\u1027\\u1010\\u1039" +"&\\u1021\\u1031\\u1010\\u103A<<<\\u1027\\u1010\\u103A" +"&\\u1021\\u1031\\u102C\\u1010\\u1039<<<\\u1029\\u1010\\u1039" +"&\\u1021\\u1031\\u102C\\u1010\\u103A<<<\\u1029\\u1010\\u103A" +"&\\u1021\\u1031\\u102C\\u1010\\u1039<<<\\u1029\\u1031\\u102C\\u1010\\u1039" +"&\\u1021\\u1031\\u102C\\u1010\\u103A<<<\\u1029\\u1031\\u102C\\u1010\\u103A" +"&\\u1021\\u102D\\u1011\\u1039<<<\\u1023\\u1011\\u1039" +"&\\u1021\\u102D\\u1011\\u103A<<<\\u1023\\u1011\\u103A" +"&\\u1021\\u102F\\u1011\\u1039<<<\\u1025\\u1011\\u1039" +"&\\u1021\\u102F\\u1011\\u103A<<<\\u1025\\u1011\\u103A" +"&\\u1021\\u1031\\u1011\\u1039<<<\\u1027\\u1011\\u1039" +"&\\u1021\\u1031\\u1011\\u103A<<<\\u1027\\u1011\\u103A" +"&\\u1021\\u1031\\u102C\\u1011\\u1039<<<\\u1029\\u1011\\u1039" +"&\\u1021\\u1031\\u102C\\u1011\\u103A<<<\\u1029\\u1011\\u103A" +"&\\u1021\\u1031\\u102C\\u1011\\u1039<<<\\u1029\\u1031\\u102C\\u1011\\u1039" +"&\\u1021\\u1031\\u102C\\u1011\\u103A<<<\\u1029\\u1031\\u102C\\u1011\\u103A" +"&\\u1021\\u102D\\u1012\\u1039<<<\\u1023\\u1012\\u1039" +"&\\u1021\\u102D\\u1012\\u103A<<<\\u1023\\u1012\\u103A" +"&\\u1021\\u102F\\u1012\\u1039<<<\\u1025\\u1012\\u1039" +"&\\u1021\\u102F\\u1012\\u103A<<<\\u1025\\u1012\\u103A" +"&\\u1021\\u1031\\u1012\\u1039<<<\\u1027\\u1012\\u1039" +"&\\u1021\\u1031\\u1012\\u103A<<<\\u1027\\u1012\\u103A" +"&\\u1021\\u1031\\u102C\\u1012\\u1039<<<\\u1029\\u1012\\u1039" +"&\\u1021\\u1031\\u102C\\u1012\\u103A<<<\\u1029\\u1012\\u103A" +"&\\u1021\\u1031\\u102C\\u1012\\u1039<<<\\u1029\\u1031\\u102C\\u1012\\u1039" +"&\\u1021\\u1031\\u102C\\u1012\\u103A<<<\\u1029\\u1031\\u102C\\u1012\\u103A" +"&\\u1021\\u102D\\u1013\\u1039<<<\\u1023\\u1013\\u1039" +"&\\u1021\\u102D\\u1013\\u103A<<<\\u1023\\u1013\\u103A" +"&\\u1021\\u102F\\u1013\\u1039<<<\\u1025\\u1013\\u1039" +"&\\u1021\\u102F\\u1013\\u103A<<<\\u1025\\u1013\\u103A" +"&\\u1021\\u1031\\u1013\\u1039<<<\\u1027\\u1013\\u1039" +"&\\u1021\\u1031\\u1013\\u103A<<<\\u1027\\u1013\\u103A" +"&\\u1021\\u1031\\u102C\\u1013\\u1039<<<\\u1029\\u1013\\u1039" +"&\\u1021\\u1031\\u102C\\u1013\\u103A<<<\\u1029\\u1013\\u103A" +"&\\u1021\\u1031\\u102C\\u1013\\u1039<<<\\u1029\\u1031\\u102C\\u1013\\u1039" +"&\\u1021\\u1031\\u102C\\u1013\\u103A<<<\\u1029\\u1031\\u102C\\u1013\\u103A" +"&\\u1021\\u102D\\u1014\\u1039<<<\\u1023\\u1014\\u1039" +"&\\u1021\\u102D\\u1014\\u103A<<<\\u1023\\u1014\\u103A" +"&\\u1021\\u102F\\u1014\\u1039<<<\\u1025\\u1014\\u1039" +"&\\u1021\\u102F\\u1014\\u103A<<<\\u1025\\u1014\\u103A" +"&\\u1021\\u1031\\u1014\\u1039<<<\\u1027\\u1014\\u1039" +"&\\u1021\\u1031\\u1014\\u103A<<<\\u1027\\u1014\\u103A" +"&\\u1021\\u1031\\u102C\\u1014\\u1039<<<\\u1029\\u1014\\u1039" +"&\\u1021\\u1031\\u102C\\u1014\\u103A<<<\\u1029\\u1014\\u103A" +"&\\u1021\\u1031\\u102C\\u1014\\u1039<<<\\u1029\\u1031\\u102C\\u1014\\u1039" +"&\\u1021\\u1031\\u102C\\u1014\\u103A<<<\\u1029\\u1031\\u102C\\u1014\\u103A" +"&\\u1021\\u102D\\u1015\\u1039<<<\\u1023\\u1015\\u1039" +"&\\u1021\\u102D\\u1015\\u103A<<<\\u1023\\u1015\\u103A" +"&\\u1021\\u102F\\u1015\\u1039<<<\\u1025\\u1015\\u1039" +"&\\u1021\\u102F\\u1015\\u103A<<<\\u1025\\u1015\\u103A" +"&\\u1021\\u1031\\u1015\\u1039<<<\\u1027\\u1015\\u1039" +"&\\u1021\\u1031\\u1015\\u103A<<<\\u1027\\u1015\\u103A" +"&\\u1021\\u1031\\u102C\\u1015\\u1039<<<\\u1029\\u1015\\u1039" +"&\\u1021\\u1031\\u102C\\u1015\\u103A<<<\\u1029\\u1015\\u103A" +"&\\u1021\\u1031\\u102C\\u1015\\u1039<<<\\u1029\\u1031\\u102C\\u1015\\u1039" +"&\\u1021\\u1031\\u102C\\u1015\\u103A<<<\\u1029\\u1031\\u102C\\u1015\\u103A" +"&\\u1021\\u102D\\u1016\\u1039<<<\\u1023\\u1016\\u1039" +"&\\u1021\\u102D\\u1016\\u103A<<<\\u1023\\u1016\\u103A" +"&\\u1021\\u102F\\u1016\\u1039<<<\\u1025\\u1016\\u1039" +"&\\u1021\\u102F\\u1016\\u103A<<<\\u1025\\u1016\\u103A" +"&\\u1021\\u1031\\u1016\\u1039<<<\\u1027\\u1016\\u1039" +"&\\u1021\\u1031\\u1016\\u103A<<<\\u1027\\u1016\\u103A" +"&\\u1021\\u1031\\u102C\\u1016\\u1039<<<\\u1029\\u1016\\u1039" +"&\\u1021\\u1031\\u102C\\u1016\\u103A<<<\\u1029\\u1016\\u103A" +"&\\u1021\\u1031\\u102C\\u1016\\u1039<<<\\u1029\\u1031\\u102C\\u1016\\u1039" +"&\\u1021\\u1031\\u102C\\u1016\\u103A<<<\\u1029\\u1031\\u102C\\u1016\\u103A" +"&\\u1021\\u102D\\u1017\\u1039<<<\\u1023\\u1017\\u1039" +"&\\u1021\\u102D\\u1017\\u103A<<<\\u1023\\u1017\\u103A" +"&\\u1021\\u102F\\u1017\\u1039<<<\\u1025\\u1017\\u1039" +"&\\u1021\\u102F\\u1017\\u103A<<<\\u1025\\u1017\\u103A" +"&\\u1021\\u1031\\u1017\\u1039<<<\\u1027\\u1017\\u1039" +"&\\u1021\\u1031\\u1017\\u103A<<<\\u1027\\u1017\\u103A" +"&\\u1021\\u1031\\u102C\\u1017\\u1039<<<\\u1029\\u1017\\u1039" +"&\\u1021\\u1031\\u102C\\u1017\\u103A<<<\\u1029\\u1017\\u103A" +"&\\u1021\\u1031\\u102C\\u1017\\u1039<<<\\u1029\\u1031\\u102C\\u1017\\u1039" +"&\\u1021\\u1031\\u102C\\u1017\\u103A<<<\\u1029\\u1031\\u102C\\u1017\\u103A" +"&\\u1021\\u102D\\u1018\\u1039<<<\\u1023\\u1018\\u1039" +"&\\u1021\\u102D\\u1018\\u103A<<<\\u1023\\u1018\\u103A" +"&\\u1021\\u102F\\u1018\\u1039<<<\\u1025\\u1018\\u1039" +"&\\u1021\\u102F\\u1018\\u103A<<<\\u1025\\u1018\\u103A" +"&\\u1021\\u1031\\u1018\\u1039<<<\\u1027\\u1018\\u1039" +"&\\u1021\\u1031\\u1018\\u103A<<<\\u1027\\u1018\\u103A" +"&\\u1021\\u1031\\u102C\\u1018\\u1039<<<\\u1029\\u1018\\u1039" +"&\\u1021\\u1031\\u102C\\u1018\\u103A<<<\\u1029\\u1018\\u103A" +"&\\u1021\\u1031\\u102C\\u1018\\u1039<<<\\u1029\\u1031\\u102C\\u1018\\u1039" +"&\\u1021\\u1031\\u102C\\u1018\\u103A<<<\\u1029\\u1031\\u102C\\u1018\\u103A" +"&\\u1021\\u102D\\u1019\\u1039<<<\\u1023\\u1019\\u1039" +"&\\u1021\\u102D\\u1019\\u103A<<<\\u1023\\u1019\\u103A" +"&\\u1021\\u102F\\u1019\\u1039<<<\\u1025\\u1019\\u1039" +"&\\u1021\\u102F\\u1019\\u103A<<<\\u1025\\u1019\\u103A" +"&\\u1021\\u1031\\u1019\\u1039<<<\\u1027\\u1019\\u1039" +"&\\u1021\\u1031\\u1019\\u103A<<<\\u1027\\u1019\\u103A" +"&\\u1021\\u1031\\u102C\\u1019\\u1039<<<\\u1029\\u1019\\u1039" +"&\\u1021\\u1031\\u102C\\u1019\\u103A<<<\\u1029\\u1019\\u103A" +"&\\u1021\\u1031\\u102C\\u1019\\u1039<<<\\u1029\\u1031\\u102C\\u1019\\u1039" +"&\\u1021\\u1031\\u102C\\u1019\\u103A<<<\\u1029\\u1031\\u102C\\u1019\\u103A" +"&\\u1021\\u102D\\u101A\\u1039<<<\\u1023\\u101A\\u1039" +"&\\u1021\\u102D\\u101A\\u103A<<<\\u1023\\u101A\\u103A" +"&\\u1021\\u102F\\u101A\\u1039<<<\\u1025\\u101A\\u1039" +"&\\u1021\\u102F\\u101A\\u103A<<<\\u1025\\u101A\\u103A" +"&\\u1021\\u1031\\u101A\\u1039<<<\\u1027\\u101A\\u1039" +"&\\u1021\\u1031\\u101A\\u103A<<<\\u1027\\u101A\\u103A" +"&\\u1021\\u1031\\u102C\\u101A\\u1039<<<\\u1029\\u101A\\u1039" +"&\\u1021\\u1031\\u102C\\u101A\\u103A<<<\\u1029\\u101A\\u103A" +"&\\u1021\\u1031\\u102C\\u101A\\u1039<<<\\u1029\\u1031\\u102C\\u101A\\u1039" +"&\\u1021\\u1031\\u102C\\u101A\\u103A<<<\\u1029\\u1031\\u102C\\u101A\\u103A" +"&\\u1021\\u102D\\u101B\\u1039<<<\\u1023\\u101B\\u1039" +"&\\u1021\\u102D\\u101B\\u103A<<<\\u1023\\u101B\\u103A" +"&\\u1021\\u102F\\u101B\\u1039<<<\\u1025\\u101B\\u1039" +"&\\u1021\\u102F\\u101B\\u103A<<<\\u1025\\u101B\\u103A" +"&\\u1021\\u1031\\u101B\\u1039<<<\\u1027\\u101B\\u1039" +"&\\u1021\\u1031\\u101B\\u103A<<<\\u1027\\u101B\\u103A" +"&\\u1021\\u1031\\u102C\\u101B\\u1039<<<\\u1029\\u101B\\u1039" +"&\\u1021\\u1031\\u102C\\u101B\\u103A<<<\\u1029\\u101B\\u103A" +"&\\u1021\\u1031\\u102C\\u101B\\u1039<<<\\u1029\\u1031\\u102C\\u101B\\u1039" +"&\\u1021\\u1031\\u102C\\u101B\\u103A<<<\\u1029\\u1031\\u102C\\u101B\\u103A" +"&\\u1021\\u102D\\u101C\\u1039<<<\\u1023\\u101C\\u1039" +"&\\u1021\\u102D\\u101C\\u103A<<<\\u1023\\u101C\\u103A" +"&\\u1021\\u102F\\u101C\\u1039<<<\\u1025\\u101C\\u1039" +"&\\u1021\\u102F\\u101C\\u103A<<<\\u1025\\u101C\\u103A" +"&\\u1021\\u1031\\u101C\\u1039<<<\\u1027\\u101C\\u1039" +"&\\u1021\\u1031\\u101C\\u103A<<<\\u1027\\u101C\\u103A" +"&\\u1021\\u1031\\u102C\\u101C\\u1039<<<\\u1029\\u101C\\u1039" +"&\\u1021\\u1031\\u102C\\u101C\\u103A<<<\\u1029\\u101C\\u103A" +"&\\u1021\\u1031\\u102C\\u101C\\u1039<<<\\u1029\\u1031\\u102C\\u101C\\u1039" +"&\\u1021\\u1031\\u102C\\u101C\\u103A<<<\\u1029\\u1031\\u102C\\u101C\\u103A" +"&\\u1021\\u102D\\u101E\\u1039<<<\\u1023\\u101E\\u1039" +"&\\u1021\\u102D\\u101E\\u103A<<<\\u1023\\u101E\\u103A" +"&\\u1021\\u102F\\u101E\\u1039<<<\\u1025\\u101E\\u1039" +"&\\u1021\\u102F\\u101E\\u103A<<<\\u1025\\u101E\\u103A" +"&\\u1021\\u1031\\u101E\\u1039<<<\\u1027\\u101E\\u1039" +"&\\u1021\\u1031\\u101E\\u103A<<<\\u1027\\u101E\\u103A" +"&\\u1021\\u1031\\u102C\\u101E\\u1039<<<\\u1029\\u101E\\u1039" +"&\\u1021\\u1031\\u102C\\u101E\\u103A<<<\\u1029\\u101E\\u103A" +"&\\u1021\\u1031\\u102C\\u101E\\u1039<<<\\u1029\\u1031\\u102C\\u101E\\u1039" +"&\\u1021\\u1031\\u102C\\u101E\\u103A<<<\\u1029\\u1031\\u102C\\u101E\\u103A" +"&\\u1021\\u102D\\u101F\\u1039<<<\\u1023\\u101F\\u1039" +"&\\u1021\\u102D\\u101F\\u103A<<<\\u1023\\u101F\\u103A" +"&\\u1021\\u102F\\u101F\\u1039<<<\\u1025\\u101F\\u1039" +"&\\u1021\\u102F\\u101F\\u103A<<<\\u1025\\u101F\\u103A" +"&\\u1021\\u1031\\u101F\\u1039<<<\\u1027\\u101F\\u1039" +"&\\u1021\\u1031\\u101F\\u103A<<<\\u1027\\u101F\\u103A" +"&\\u1021\\u1031\\u102C\\u101F\\u1039<<<\\u1029\\u101F\\u1039" +"&\\u1021\\u1031\\u102C\\u101F\\u103A<<<\\u1029\\u101F\\u103A" +"&\\u1021\\u1031\\u102C\\u101F\\u1039<<<\\u1029\\u1031\\u102C\\u101F\\u1039" +"&\\u1021\\u1031\\u102C\\u101F\\u103A<<<\\u1029\\u1031\\u102C\\u101F\\u103A" +/* Contractions */ +"&\\u1031\\u102C\\u1000\\u103A\\u1000\\u103B=\\u1031\\u102C\\u1000\\u103A\\u103B" /* (suffix of) man */ +"&\\u1014\\u103A\\u1014\\u102F\\u1015\\u103A=\\u1014\\u103A\\u102F\\u1015\\u103A" /* (suffix of) I */ +/* Great Sa */ +"&\\u1031\\u101E\\u1039\\u101E=\\u1031\\u103F" +"&\\u102D\\u101E\\u1039\\u101E=\\u102D\\u103F" +"&\\u102F\\u101E\\u1039\\u101E=\\u102F\\u103F" +"&\\u1021\\u102D\\u101E\\u1039\\u101E<<<\\u1023\\u103F" +"&\\u1021\\u102F\\u101E\\u1039\\u101E<<<\\u1025\\u103F" +"&\\u101E\\u1039\\u101E=\\u103F" +/* Symbols - collate as long form */ +"&\\u1014\\u103E\\u102D\\u102F\\u1000\\u103A<<\\u104C" +"&\\u101B\\u103D\\u1031\\u1037<<\\u104D" +"&\\u101C\\u100A\\u103A\\u1038\\u1000\\u1031\\u102C\\u1004\\u103A\\u1038<<\\u104E\\u1004\\u103A\\u1038" +"&\\u1021\\u102D<<\\u104F" +/* Short Forms may need to be added here */ +"&\\u101C\\u1000\\u103A\\u101A\\u102C=\\u101C\\u1000\\u103A\\u103B\\u102C" /* right hand side */ +"&\\u101E\\u1019\\u102E=\\u101E\\u1039\\u1019\\u102E" /* daughter */ +"&\\u1011\\u1019\\u1004\\u103A\\u1038=\\u1011\\u1039\\u1019\\u1004\\u103A\\u1038" /* cooked rice */ +"&\\u101C\\u1000\\u103A\\u1018\\u1000\\u103A=\\u101C\\u1039\\u1018\\u1000\\u103A" /* tea */ +; + + /* Unicode Collation Algorithm: Collation element (weight) scanner, @@ -6767,9 +20109,7 @@ typedef struct my_uca_scanner_st const uint16 *wbeg; /* Beginning of the current weight string */ const uchar *sbeg; /* Beginning of the input string */ const uchar *send; /* End of the input string */ - const uchar *uca_length; - const uint16 * const *uca_weight; - const MY_CONTRACTIONS *contractions; + const MY_UCA_WEIGHT_LEVEL *level; uint16 implicit[2]; int page; int code; @@ -6782,51 +20122,81 @@ typedef struct my_uca_scanner_st */ typedef struct my_uca_scanner_handler_st { - void (*init)(my_uca_scanner *scanner, CHARSET_INFO *cs, + void (*init)(my_uca_scanner *scanner, CHARSET_INFO *cs, + const MY_UCA_WEIGHT_LEVEL *level, const uchar *str, size_t length); int (*next)(my_uca_scanner *scanner); } my_uca_scanner_handler; static const uint16 nochar[]= {0,0}; + +#define MY_UCA_CNT_FLAG_SIZE 4096 +#define MY_UCA_CNT_FLAG_MASK 4095 + +#define MY_UCA_CNT_HEAD 1 +#define MY_UCA_CNT_TAIL 2 +#define MY_UCA_CNT_MID1 4 +#define MY_UCA_CNT_MID2 8 +#define MY_UCA_CNT_MID3 16 +#define MY_UCA_CNT_MID4 32 + +#define MY_UCA_PREVIOUS_CONTEXT_HEAD 64 +#define MY_UCA_PREVIOUS_CONTEXT_TAIL 128 + /********** Helper functions to handle contraction ************/ /** Mark a character as a contraction part - @cs Pointer to CHARSET_INFO data - @wc Unicode code point - @flag flag: "is contraction head", "is contraction tail" + @param uca Pointer to UCA data + @param wc Unicode code point + @param flag flag: "is contraction head", "is contraction tail" */ -static void -my_uca_add_contraction_flag(CHARSET_INFO *cs, my_wc_t wc, int flag) +static inline void +my_uca_add_contraction_flag(MY_CONTRACTIONS *list, my_wc_t wc, int flag) { - cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK]|= flag; + list->flags[wc & MY_UCA_CNT_FLAG_MASK]|= flag; } /** Add a new contraction into contraction list - @cs Pointer to CHARSET_INFO data - @wc Unicode code points of the characters - @len Number of characters + @param uca Pointer to UCA data + @param wc Unicode code points of the characters + @param len Number of characters @return New contraction @retval Pointer to a newly added contraction */ static MY_CONTRACTION * -my_uca_add_contraction(struct charset_info_st *cs, - my_wc_t *wc, int len __attribute__((unused))) +my_uca_add_contraction(MY_CONTRACTIONS *list, my_wc_t *wc, size_t len, + my_bool with_context) { - MY_CONTRACTIONS *list= (MY_CONTRACTIONS*) cs->contractions; MY_CONTRACTION *next= &list->item[list->nitems]; - DBUG_ASSERT(len == 2); /* We currently support only contraction2 */ - next->ch[0]= wc[0]; - next->ch[1]= wc[1]; + size_t i; + /* + Contraction is always at least 2 characters. + Contraction is never longer than MY_UCA_MAX_CONTRACTION, + which is guaranteed by using my_coll_rule_expand() with proper limit. + */ + DBUG_ASSERT(len > 1 && len <= MY_UCA_MAX_CONTRACTION); + for (i= 0; i < len; i++) + { + /* + We don't support contractions with U+0000. + my_coll_rule_expand() guarantees there're no U+0000 in a contraction. + */ + DBUG_ASSERT(wc[i] != 0); + next->ch[i]= wc[i]; + } + if (i < MY_UCA_MAX_CONTRACTION) + next->ch[i]= 0; /* Add end-of-line marker */ + next->with_context= with_context; list->nitems++; return next; } @@ -6835,9 +20205,9 @@ my_uca_add_contraction(struct charset_info_st *cs, /** Allocate and initialize memory for contraction list and flags - @cs Pointer to CHARSET_INFO data - @alloc Memory allocation function (typically points to my_alloc_once) - @n Number of contractions + @param uca Pointer to UCA data + @param alloc Memory allocation function (typically points to my_alloc_once) + @param n Number of contractions @return Error code @retval 0 - memory allocated successfully @@ -6845,171 +20215,318 @@ my_uca_add_contraction(struct charset_info_st *cs, */ static my_bool -my_uca_alloc_contractions(struct charset_info_st *cs, - void *(*alloc)(size_t), size_t n) +my_uca_alloc_contractions(MY_CONTRACTIONS *contractions, + MY_CHARSET_LOADER *loader, size_t n) { uint size= n * sizeof(MY_CONTRACTION); - MY_CONTRACTIONS *contractions; - - if (!(cs->contractions= contractions= (*alloc)(sizeof(MY_CONTRACTIONS)))) - return 1; - bzero(contractions, sizeof(MY_CONTRACTIONS)); - if (!(contractions->item= (*alloc)(size)) || - !(contractions->flags= (char*) (*alloc)(MY_UCA_CNT_FLAG_SIZE))) + if (!(contractions->item= (loader->once_alloc)(size)) || + !(contractions->flags= (char *) (loader->once_alloc)(MY_UCA_CNT_FLAG_SIZE))) return 1; - bzero(contractions->item, size); - bzero(contractions->flags, MY_UCA_CNT_FLAG_SIZE); + memset(contractions->item, 0, size); + memset(contractions->flags, 0, MY_UCA_CNT_FLAG_SIZE); return 0; } -#ifdef HAVE_CHARSET_ucs2 -/* - Initialize collation weight scanner +/** + Return UCA contraction data for a CHARSET_INFO structure. - SYNOPSIS: - my_uca_scanner_init() - scanner Pointer to an initialized scanner structure - cs Character set + collation information - str Beginning of the string - length Length of the string. - - NOTES: - Optimized for UCS2 + @param cs Pointer to CHARSET_INFO structure + @retval Pointer to contraction data + @retval NULL, if this collation does not have UCA contraction +*/ - RETURN - N/A +const MY_CONTRACTIONS * +my_charset_get_contractions(CHARSET_INFO *cs, int level) +{ + return (cs->uca != NULL) && (cs->uca->level[level].contractions.nitems > 0) ? + &cs->uca->level[level].contractions : NULL; +} + + +/** + Check if UCA level data has contractions (static version) + Static quick version of my_uca_have_contractions(), + optimized for performance purposes, also marked as "inline". + + @param level Pointer to UCA level data + + @return Flags indicating if UCA with contractions + @retval 0 - no contractions + @retval 1 - there are some contractions */ -static void my_uca_scanner_init_ucs2(my_uca_scanner *scanner, - CHARSET_INFO *cs, - const uchar *str, size_t length) +static inline my_bool +my_uca_have_contractions_quick(const MY_UCA_WEIGHT_LEVEL *level) { - scanner->wbeg= nochar; - if (length) + return (level->contractions.nitems > 0); +} + + + +/** + Check if a character can be contraction head + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction head + @retval 1 - can be contraction head +*/ + +my_bool +my_uca_can_be_contraction_head(const MY_CONTRACTIONS *c, my_wc_t wc) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD; +} + + +/** + Check if a character can be contraction tail + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction tail + @retval 1 - can be contraction tail +*/ + +my_bool +my_uca_can_be_contraction_tail(const MY_CONTRACTIONS *c, my_wc_t wc) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL; +} + + +/** + Check if a character can be contraction part + + @param c Pointer to UCA contraction data + @param wc Code point + + @retval 0 - cannot be contraction part + @retval 1 - can be contraction part +*/ + +static inline my_bool +my_uca_can_be_contraction_part(const MY_CONTRACTIONS *c, my_wc_t wc, int flag) +{ + return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & flag; +} + + +/** + Find a contraction consisting of two characters and return its weight array + + @param list Pointer to UCA contraction data + @param wc1 First character + @param wc2 Second character + + @return Weight array + @retval NULL - no contraction found + @retval ptr - contraction weight array +*/ + +uint16 * +my_uca_contraction2_weight(const MY_CONTRACTIONS *list, my_wc_t wc1, my_wc_t wc2) +{ + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) { - scanner->sbeg= str; - scanner->send= str + length - 2; - scanner->uca_length= cs->sort_order; - scanner->uca_weight= cs->sort_order_big; - scanner->contractions= cs->contractions; - scanner->cs= cs; - return; + if (c->ch[0] == wc1 && c->ch[1] == wc2 && c->ch[2] == 0) + { + return c->weight; + } } + return NULL; +} - /* - Sometimes this function is called with - str=NULL and length=0, which should be - considered as an empty string. - - The above initialization is unsafe for such cases, - because scanner->send is initialized to (NULL-2), which is 0xFFFFFFFE. - Then we fall into an endless loop in my_uca_scanner_next_ucs2(). - - Do special initialization for the case when length=0. - Initialize scanner->sbeg to an address greater than scanner->send. - Next call of my_uca_scanner_next_ucs2() will correctly return with -1. - */ - scanner->sbeg= (uchar*) &nochar[1]; - scanner->send= (uchar*) &nochar[0]; + +/** + Check if a character can be previous context head + + @param list Pointer to UCA contraction data + @param wc Code point + + @return + @retval FALSE - cannot be previous context head + @retval TRUE - can be previous context head +*/ + +static inline my_bool +my_uca_can_be_previous_context_head(const MY_CONTRACTIONS *list, my_wc_t wc) +{ + return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_HEAD; } -/* - Read next collation element (weight), i.e. converts - a stream of characters into a stream of their weights. - - SYNOPSIS: - my_uca_scanner_next() - scanner Address of a previously initialized scanner strucuture - - NOTES: - Optimized for UCS2 - - Checks if the current character's weight string has been fully scanned, - if no, then returns the next weight for this character, - else scans the next character and returns its first weight. +/** + Check if a character can be previois context tail - Each character can have number weights from 0 to 8. - - Some characters do not have weights at all, 0 weights. - It means they are ignored during comparison. - - Examples: - 1. 0x0001 START OF HEADING, has no weights, ignored, does - not produce any weights. - 2. 0x0061 LATIN SMALL LETTER A, has one weight. - 0x0E33 will be returned - 3. 0x00DF LATIN SMALL LETTER SHARP S, aka SZ ligature, - has two weights. It will return 0x0FEA twice for two - consequent calls. - 4. 0x247D PATENTHESIZED NUMBER TEN, has four weights, - this function will return these numbers in four - consequent calls: 0x0288, 0x0E2A, 0x0E29, 0x0289 - 5. A string consisting of the above characters: - 0x0001 0x0061 0x00DF 0x247D - will return the following weights, one weight per call: - 0x0E33 0x0FEA 0x0FEA 0x0288, 0x0E2A, 0x0E29, 0x0289 - - RETURN - Next weight, a number between 0x0000 and 0xFFFF - Or -1 on error (END-OF-STRING or ILLEGAL MULTIBYTE SEQUENCE) + @param uca Pointer to UCA contraction data + @param wc Code point + + @return + @retval FALSE - cannot be contraction tail + @retval TRUE - can be contraction tail */ -static int my_uca_scanner_next_ucs2(my_uca_scanner *scanner) +static inline my_bool +my_uca_can_be_previous_context_tail(const MY_CONTRACTIONS *list, my_wc_t wc) { - - /* - Check if the weights for the previous character have been - already fully scanned. If yes, then get the next character and - initialize wbeg and wlength to its weight string. - */ - - if (scanner->wbeg[0]) - return *scanner->wbeg++; - - do + return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_TAIL; +} + + +/** + Compare two wide character strings, wide analog to strncmp(). + + @param a Pointer to the first string + @param b Pointer to the second string + @param len Length of the strings + + @return + @retval 0 - strings are equal + @retval non-zero - strings are different +*/ + +static int +my_wmemcmp(my_wc_t *a, my_wc_t *b, size_t len) +{ + return memcmp(a, b, len * sizeof(my_wc_t)); +} + + +/** + Check if a string is a contraction, + and return its weight array on success. + + @param list Pointer to UCA contraction data + @param wc Pointer to wide string + @param len String length + + @return Weight array + @retval NULL - Input string is not a known contraction + @retval ptr - contraction weight array +*/ + +static inline uint16 * +my_uca_contraction_weight(const MY_CONTRACTIONS *list, my_wc_t *wc, size_t len) +{ + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) { - const uint16 *const *ucaw= scanner->uca_weight; - const uchar *ucal= scanner->uca_length; - - if (scanner->sbeg > scanner->send) - return -1; - - scanner->page= (uchar)scanner->sbeg[0]; - scanner->code= (uchar)scanner->sbeg[1]; - scanner->sbeg+= 2; - - if (scanner->contractions && (scanner->sbeg <= scanner->send)) + if ((len == MY_UCA_MAX_CONTRACTION || c->ch[len] == 0) && + !c->with_context && + !my_wmemcmp(c->ch, wc, len)) + return c->weight; + } + return NULL; +} + + +/** + Find a contraction in the input stream and return its weight array + + Scan input characters while their flags tell that they can be + a contraction part. Then try to find real contraction among the + candidates, starting from the longest. + + @param scanner Pointer to UCA scanner + @param[OUT] *wc Where to store the scanned string + + @return Weight array + @retval NULL - no contraction found + @retval ptr - contraction weight array +*/ + +static uint16 * +my_uca_scanner_contraction_find(my_uca_scanner *scanner, my_wc_t *wc) +{ + size_t clen= 1; + int flag; + const uchar *s, *beg[MY_UCA_MAX_CONTRACTION]; + memset(beg, 0, sizeof(beg)); + + /* Scan all contraction candidates */ + for (s= scanner->sbeg, flag= MY_UCA_CNT_MID1; + clen < MY_UCA_MAX_CONTRACTION; + flag<<= 1) + { + int mblen; + if ((mblen= scanner->cs->cset->mb_wc(scanner->cs, &wc[clen], + s, scanner->send)) <= 0) + break; + beg[clen]= s= s + mblen; + if (!my_uca_can_be_contraction_part(&scanner->level->contractions, + wc[clen++], flag)) + break; + } + + /* Find among candidates the longest real contraction */ + for ( ; clen > 1; clen--) + { + uint16 *cweight; + if (my_uca_can_be_contraction_tail(&scanner->level->contractions, + wc[clen - 1]) && + (cweight= my_uca_contraction_weight(&scanner->level->contractions, + wc, clen))) { - my_wc_t wc1= ((scanner->page << 8) | scanner->code); - - if (my_cs_can_be_contraction_head(scanner->cs, wc1)) - { - const uint16 *cweight; - my_wc_t wc2= (((my_wc_t) scanner->sbeg[0]) << 8) | scanner->sbeg[1]; - if (my_cs_can_be_contraction_tail(scanner->cs, wc2) && - (cweight= my_cs_contraction2_weight(scanner->cs, - scanner->code, - scanner->sbeg[1]))) - { - scanner->implicit[0]= 0; - scanner->wbeg= scanner->implicit; - scanner->sbeg+=2; - return *cweight; - } - } + scanner->wbeg= cweight + 1; + scanner->sbeg= beg[clen - 1]; + return cweight; } - - if (!ucaw[scanner->page]) - goto implicit; - scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page]; - } while (!scanner->wbeg[0]); - - return *scanner->wbeg++; + } + + return NULL; /* No contractions were found */ +} + + +/** + Find weight for contraction with previous context + and return its weight array. + + @param scanner Pointer to UCA scanner + @param wc0 Previous character + @param wc1 Current character + + @return Weight array + @retval NULL - no contraction with context found + @retval ptr - contraction weight array +*/ + +static uint16 * +my_uca_previous_context_find(my_uca_scanner *scanner, + my_wc_t wc0, my_wc_t wc1) +{ + const MY_CONTRACTIONS *list= &scanner->level->contractions; + MY_CONTRACTION *c, *last; + for (c= list->item, last= c + list->nitems; c < last; c++) + { + if (c->with_context && wc0 == c->ch[0] && wc1 == c->ch[1]) + { + scanner->wbeg= c->weight + 1; + return c->weight; + } + } + return NULL; +} + +/****************************************************************/ + + +/** + Return implicit UCA weight + Used for characters that do not have assigned UCA weights. -implicit: + @param scanner UCA weight scanner + @return The leading implicit weight. +*/ + +static inline int +my_uca_scanner_next_implicit(my_uca_scanner *scanner) +{ scanner->code= (scanner->page << 8) + scanner->code; scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000; scanner->implicit[1]= 0; @@ -7027,52 +20544,43 @@ implicit: return scanner->page; } -static my_uca_scanner_handler my_ucs2_uca_scanner_handler= -{ - my_uca_scanner_init_ucs2, - my_uca_scanner_next_ucs2 -}; - -#endif /* HAVE_CHARSET_ucs2 */ - /* The same two functions for any character set */ -static void my_uca_scanner_init_any(my_uca_scanner *scanner, - CHARSET_INFO *cs __attribute__((unused)), - const uchar *str, size_t length) +static void +my_uca_scanner_init_any(my_uca_scanner *scanner, + CHARSET_INFO *cs, + const MY_UCA_WEIGHT_LEVEL *level, + const uchar *str, size_t length) { /* Note, no needs to initialize scanner->wbeg */ scanner->sbeg= str; scanner->send= str + length; scanner->wbeg= nochar; - scanner->uca_length= cs->sort_order; - scanner->uca_weight= cs->sort_order_big; - scanner->contractions= cs->contractions; + scanner->level= level; scanner->cs= cs; } static int my_uca_scanner_next_any(my_uca_scanner *scanner) { - /* Check if the weights for the previous character have been already fully scanned. If yes, then get the next character and initialize wbeg and wlength to its weight string. */ - - if (scanner->wbeg[0]) - return *scanner->wbeg++; - - do + + if (scanner->wbeg[0]) /* More weights left from the previous step: */ + return *scanner->wbeg++; /* return the next weight from expansion */ + + do { - const uint16 *const *ucaw= scanner->uca_weight; - const uchar *ucal= scanner->uca_length; - my_wc_t wc; - int mb_len; - - if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc, + const uint16 *wpage; + my_wc_t wc[MY_UCA_MAX_CONTRACTION]; + int mblen; + + /* Get next character */ + if (((mblen= scanner->cs->cset->mb_wc(scanner->cs, wc, scanner->sbeg, scanner->send)) <= 0)) { @@ -7094,63 +20602,61 @@ static int my_uca_scanner_next_any(my_uca_scanner *scanner) */ return 0xFFFF; } - - scanner->sbeg+= mb_len; - if (wc > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT) + + scanner->sbeg+= mblen; + if (wc[0] > scanner->level->maxchar) { /* Return 0xFFFD as weight for all characters outside BMP */ scanner->wbeg= nochar; return 0xFFFD; } - else - { - scanner->page= wc >> 8; - scanner->code= wc & 0xFF; - } - - if (my_cs_have_contractions(scanner->cs) && - my_cs_can_be_contraction_head(scanner->cs, wc)) + + if (my_uca_have_contractions_quick(scanner->level)) { - my_wc_t wc2; - const uint16 *cweight; - - if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc2, - scanner->sbeg, - scanner->send)) >=0) && - my_cs_can_be_contraction_tail(scanner->cs, wc2) && - (cweight= my_cs_contraction2_weight(scanner->cs, wc, wc2))) + uint16 *cweight; + /* + If we have scanned a character which can have previous context, + and there were some more characters already before, + then reconstruct codepoint of the previous character + from "page" and "code" into w[1], and verify that {wc[1], wc[0]} + together form a real previous context pair. + Note, we support only 2-character long sequences with previous + context at the moment. CLDR does not have longer sequences. + */ + if (my_uca_can_be_previous_context_tail(&scanner->level->contractions, + wc[0]) && + scanner->wbeg != nochar && /* if not the very first character */ + my_uca_can_be_previous_context_head(&scanner->level->contractions, + (wc[1]= ((scanner->page << 8) + + scanner->code))) && + (cweight= my_uca_previous_context_find(scanner, wc[1], wc[0]))) { - scanner->implicit[0]= 0; - scanner->wbeg= scanner->implicit; - scanner->sbeg+= mb_len; + scanner->page= scanner->code= 0; /* Clear for the next character */ return *cweight; } + else if (my_uca_can_be_contraction_head(&scanner->level->contractions, + wc[0])) + { + /* Check if w[0] starts a contraction */ + if ((cweight= my_uca_scanner_contraction_find(scanner, wc))) + return *cweight; + } } - - if (!ucaw[scanner->page]) - goto implicit; - scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page]; - } while (!scanner->wbeg[0]); - + + /* Process single character */ + scanner->page= wc[0] >> 8; + scanner->code= wc[0] & 0xFF; + + /* If weight page for w[0] does not exist, then calculate algoritmically */ + if (!(wpage= scanner->level->weights[scanner->page])) + return my_uca_scanner_next_implicit(scanner); + + /* Calculate pointer to w[0]'s weight, using page and offset */ + scanner->wbeg= wpage + + scanner->code * scanner->level->lengths[scanner->page]; + } while (!scanner->wbeg[0]); /* Skip ignorable characters */ + return *scanner->wbeg++; - -implicit: - - scanner->code= (scanner->page << 8) + scanner->code; - scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000; - scanner->implicit[1]= 0; - scanner->wbeg= scanner->implicit; - - scanner->page= scanner->page >> 7; - - if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5) - scanner->page+= 0xFB80; - else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5) - scanner->page+= 0xFB40; - else - scanner->page+= 0xFBC0; - - return scanner->page; } @@ -7160,7 +20666,6 @@ static my_uca_scanner_handler my_any_uca_scanner_handler= my_uca_scanner_next_any }; - /* Compares two strings according to the collation @@ -7213,8 +20718,8 @@ static int my_strnncoll_uca(CHARSET_INFO *cs, int s_res; int t_res; - scanner_handler->init(&sscanner, cs, s, slen); - scanner_handler->init(&tscanner, cs, t, tlen); + scanner_handler->init(&sscanner, cs, &cs->uca->level[0], s, slen); + scanner_handler->init(&tscanner, cs, &cs->uca->level[0], t, tlen); do { @@ -7225,6 +20730,38 @@ static int my_strnncoll_uca(CHARSET_INFO *cs, return (t_is_prefix && t_res < 0) ? 0 : (s_res - t_res); } + +static inline int +my_space_weight(const CHARSET_INFO *cs) /* W3-TODO */ +{ + return cs->uca->level[0].weights[0][0x20 * cs->uca->level[0].lengths[0]]; +} + + +/** + Helper function: + Find address of weights of the given character. + + @param weights UCA weight array + @param lengths UCA length array + @param ch character Unicode code point + + @return Weight array + @retval pointer to weight array for the given character, + or NULL if this page does not have implicit weights. +*/ + +static inline uint16 * +my_char_weight_addr(const MY_UCA_WEIGHT_LEVEL *level, uint wc) +{ + uint page, ofst; + return wc > level->maxchar ? NULL : + (level->weights[page= (wc >> 8)] ? + level->weights[page] + (ofst= (wc & 0xFF)) * level->lengths[page] : + NULL); +} + + /* Compares two strings according to the collation, ignoring trailing spaces. @@ -7286,8 +20823,8 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs, diff_if_only_endspace_difference= 0; #endif - scanner_handler->init(&sscanner, cs, s, slen); - scanner_handler->init(&tscanner, cs, t, tlen); + scanner_handler->init(&sscanner, cs, &cs->uca->level[0], s, slen); + scanner_handler->init(&tscanner, cs, &cs->uca->level[0], t, tlen); do { @@ -7298,7 +20835,7 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs, if (s_res > 0 && t_res < 0) { /* Calculate weight for SPACE character */ - t_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]]; + t_res= my_space_weight(cs); /* compare the first string to spaces */ do @@ -7313,7 +20850,7 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs, if (s_res < 0 && t_res > 0) { /* Calculate weight for SPACE character */ - s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]]; + s_res= my_space_weight(cs); /* compare the second string to spaces */ do @@ -7354,21 +20891,54 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs, static void my_hash_sort_uca(CHARSET_INFO *cs, my_uca_scanner_handler *scanner_handler, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { int s_res; my_uca_scanner scanner; - - slen= cs->cset->lengthsp(cs, (char*) s, slen); - scanner_handler->init(&scanner, cs, s, slen); + int space_weight= my_space_weight(cs); + register ulong m1= *nr1, m2= *nr2; + + scanner_handler->init(&scanner, cs, &cs->uca->level[0], s, slen); while ((s_res= scanner_handler->next(&scanner)) >0) { - n1[0]^= (((n1[0] & 63)+n2[0])*(s_res >> 8))+ (n1[0] << 8); - n2[0]+=3; - n1[0]^= (((n1[0] & 63)+n2[0])*(s_res & 0xFF))+ (n1[0] << 8); - n2[0]+=3; + if (s_res == space_weight) + { + /* Combine all spaces to be able to skip end spaces */ + uint count= 0; + do + { + count++; + if ((s_res= scanner_handler->next(&scanner)) <= 0) + { + /* Skip strings at end of string */ + goto end; + } + } + while (s_res == space_weight); + + /* Add back that has for the space characters */ + do + { + /* + We can't use MY_HASH_ADD_16() here as we, because of a misstake + in the original code, where we added the 16 byte variable the + opposite way. Changing this would cause old partitioned tables + to fail. + */ + MY_HASH_ADD(m1, m2, space_weight >> 8); + MY_HASH_ADD(m1, m2, space_weight & 0xFF); + } + while (--count != 0); + + } + /* See comment above why we can't use MY_HASH_ADD_16() */ + MY_HASH_ADD(m1, m2, s_res >> 8); + MY_HASH_ADD(m1, m2, s_res & 0xFF); } +end: + *nr1= m1; + *nr2= m2; } @@ -7403,64 +20973,53 @@ static void my_hash_sort_uca(CHARSET_INFO *cs, Number of bytes that have been written into the binary image. */ -static size_t my_strnxfrm_uca(CHARSET_INFO *cs, - my_uca_scanner_handler *scanner_handler, - uchar *dst, size_t dstlen, - const uchar *src, size_t srclen) + +static size_t +my_strnxfrm_uca(CHARSET_INFO *cs, + my_uca_scanner_handler *scanner_handler, + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - uchar *de= dst + (dstlen & (size_t) ~1); /* add even length for easier code */ + uchar *d0= dst; + uchar *de= dst + dstlen; int s_res; my_uca_scanner scanner; - scanner_handler->init(&scanner, cs, src, srclen); + scanner_handler->init(&scanner, cs, &cs->uca->level[0], src, srclen); - while (dst < de && (s_res= scanner_handler->next(&scanner)) >0) + for (; dst < de && nweights && + (s_res= scanner_handler->next(&scanner)) > 0 ; nweights--) { - dst[0]= s_res >> 8; - dst[1]= s_res & 0xFF; - dst+= 2; + *dst++= s_res >> 8; + if (dst < de) + *dst++= s_res & 0xFF; } - s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]]; - while (dst < de) + + if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE)) { - dst[0]= s_res >> 8; - dst[1]= s_res & 0xFF; - dst+= 2; + uint space_count= MY_MIN((uint) (de - dst) / 2, nweights); + s_res= my_space_weight(cs); + for (; space_count ; space_count--) + { + *dst++= s_res >> 8; + *dst++= s_res & 0xFF; + } } - if (dstlen & 1) /* if odd number then fill the last char */ - *dst= '\0'; - - return dstlen; + my_strxfrm_desc_and_reverse(d0, dst, flags, 0); + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de) + { + s_res= my_space_weight(cs); + for ( ; dst < de; ) + { + *dst++= s_res >> 8; + if (dst < de) + *dst++= s_res & 0xFF; + } + } + return dst - d0; } -/** - Helper function: - Find address of weights of the given character. - - @param weights UCA weight array - @param lengths UCA length array - @param ch character Unicode code point - - @return Weight array - @retval pointer to weight array for the given character, - or NULL if this page does not have implicit weights. -*/ - -static inline const uint16 * -my_char_weight_addr(CHARSET_INFO *cs, uint wc) -{ - uint page, ofst; - const uchar *ucal= cs->sort_order; - const uint16 * const *ucaw= cs->sort_order_big; - - return wc > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT ? NULL : - (ucaw[page= (wc >> 8)] ? - ucaw[page] + (ofst= (wc & 0xFF)) * ucal[page] : - NULL); -} - - /* This function compares if two characters are the same. The sign +1 or -1 does not matter. The only @@ -7472,8 +21031,8 @@ my_char_weight_addr(CHARSET_INFO *cs, uint wc) static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) { size_t length1, length2; - const uint16 *weight1= my_char_weight_addr(cs, wc1); - const uint16 *weight2= my_char_weight_addr(cs, wc2); + const uint16 *weight1= my_char_weight_addr(&cs->uca->level[0], wc1); + const uint16 *weight2= my_char_weight_addr(&cs->uca->level[0], wc2); if (!weight1 || !weight2) return wc1 != wc2; @@ -7483,8 +21042,8 @@ static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) return 1; /* Thoroughly compare all weights */ - length1= cs->sort_order[wc1 >> MY_UCA_PSHIFT]; - length2= cs->sort_order[wc2 >> MY_UCA_PSHIFT]; + length1= cs->uca->level[0].lengths[wc1 >> MY_UCA_PSHIFT]; /* W3-TODO */ + length2= cs->uca->level[0].lengths[wc2 >> MY_UCA_PSHIFT]; if (length1 > length2) return memcmp((const void*)weight1, (const void*)weight2, length2*2) ? @@ -7650,7 +21209,7 @@ int my_wildcmp_uca(CHARSET_INFO *cs, /* Collation language is implemented according to subset of ICU Collation Customization (tailorings): - http://oss.software.ibm.com/icu/userguide/Collate_Customization.html + http://icu.sourceforge.net/userguide/Collate_Customization.html Collation language elements: Delimiters: @@ -7692,16 +21251,47 @@ int my_wildcmp_uca(CHARSET_INFO *cs, typedef enum my_coll_lexem_num_en { - MY_COLL_LEXEM_EOF = 0, - MY_COLL_LEXEM_DIFF = 1, - MY_COLL_LEXEM_SHIFT = 4, - MY_COLL_LEXEM_CHAR = 5, - MY_COLL_LEXEM_ERROR = 6 + MY_COLL_LEXEM_EOF = 0, + MY_COLL_LEXEM_SHIFT = 1, + MY_COLL_LEXEM_RESET = 4, + MY_COLL_LEXEM_CHAR = 5, + MY_COLL_LEXEM_ERROR = 6, + MY_COLL_LEXEM_OPTION = 7, + MY_COLL_LEXEM_EXTEND = 8, + MY_COLL_LEXEM_CONTEXT = 9, } my_coll_lexem_num; +/** + Convert collation customization lexem to string, + for nice error reporting + + @param term lexem code + + @return lexem name +*/ + +static const char * +my_coll_lexem_num_to_str(my_coll_lexem_num term) +{ + switch (term) + { + case MY_COLL_LEXEM_EOF: return "EOF"; + case MY_COLL_LEXEM_SHIFT: return "Shift"; + case MY_COLL_LEXEM_RESET: return "&"; + case MY_COLL_LEXEM_CHAR: return "Character"; + case MY_COLL_LEXEM_OPTION: return "Bracket option"; + case MY_COLL_LEXEM_EXTEND: return "/"; + case MY_COLL_LEXEM_CONTEXT:return "|"; + case MY_COLL_LEXEM_ERROR: return "ERROR"; + } + return NULL; +} + + typedef struct my_coll_lexem_st { + my_coll_lexem_num term; const char *beg; const char *end; const char *prev; @@ -7735,6 +21325,27 @@ static void my_coll_lexem_init(MY_COLL_LEXEM *lexem, } +/** + Compare lexem to string with length + + @param lexem lexem + @param pattern string + @param patternlen string length + + @return + @retval 0 if lexem is equal to string, non-0 otherwise. +*/ + +static int +lex_cmp(MY_COLL_LEXEM *lexem, const char *pattern, size_t patternlen) +{ + size_t lexemlen= lexem->beg - lexem->prev; + if (lexemlen < patternlen) + return 1; /* Not a prefix */ + return strncasecmp(lexem->prev, pattern, patternlen); +} + + /* Print collation customization expression parse error, with context. @@ -7756,9 +21367,10 @@ static void my_coll_lexem_print_error(MY_COLL_LEXEM *lexem, { char tail[30]; size_t len= lexem->end - lexem->prev; - strmake (tail, lexem->prev, (size_t) min(len, sizeof(tail)-1)); + strmake (tail, lexem->prev, (size_t) MY_MIN(len, sizeof(tail)-1)); errstr[errsize-1]= '\0'; - my_snprintf(errstr,errsize-1,"%s at '%s'", txt, tail); + my_snprintf(errstr, errsize - 1, + "%s at '%s'", txt[0] ? txt : "Syntax error", tail); } @@ -7809,44 +21421,75 @@ static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem) { const char *beg; my_coll_lexem_num rc; - + for (beg= lexem->beg ; beg < lexem->end ; beg++) { - if (*beg == ' ' || *beg == '\t' || *beg == '\r' || *beg == '\n') - continue; - - if (*beg == '&') + switch (*beg) { + case ' ': + case '\t': + case '\r': + case '\n': + continue; + + case '[': /* Bracket expression, e.g. "[optimize [a-z]]" */ + { + size_t nbrackets; /* Indicates nested recursion level */ + for (beg++, nbrackets= 1 ; beg < lexem->end; beg++) + { + if (*beg == '[') /* Enter nested bracket expression */ + nbrackets++; + else if (*beg == ']') + { + if (--nbrackets == 0) + { + rc= MY_COLL_LEXEM_OPTION; + beg++; + goto ex; + } + } + } + rc= MY_COLL_LEXEM_ERROR; + goto ex; + } + + case '&': beg++; - rc= MY_COLL_LEXEM_SHIFT; + rc= MY_COLL_LEXEM_RESET; goto ex; - } - - if (beg[0] == '=') - { + + case '=': beg++; - rc= MY_COLL_LEXEM_DIFF; + lexem->diff= 0; + rc= MY_COLL_LEXEM_SHIFT; goto ex; - } - - if (beg[0] == '<') - { - for (beg++, lexem->diff= 1; - (beg < lexem->end) && - (*beg == '<') && (lexem->diff<3); - beg++, lexem->diff++); - rc= MY_COLL_LEXEM_DIFF; + + case '/': + beg++; + rc= MY_COLL_LEXEM_EXTEND; goto ex; - } - - if ((*beg >= 'a' && *beg <= 'z') || (*beg >= 'A' && *beg <= 'Z')) - { - lexem->code= *beg++; - rc= MY_COLL_LEXEM_CHAR; + + case '|': + beg++; + rc= MY_COLL_LEXEM_CONTEXT; goto ex; + + case '<': /* Shift: '<' or '<<' or '<<<' or '<<<<' */ + { + /* Scan up to 3 additional '<' characters */ + for (beg++, lexem->diff= 1; + (beg < lexem->end) && (*beg == '<') && (lexem->diff <= 3); + beg++, lexem->diff++); + rc= MY_COLL_LEXEM_SHIFT; + goto ex; + } + default: + break; } - - if ((*beg == '\\') && (beg+2 < lexem->end) && (beg[1] == 'u')) + + /* Escaped character, e.g. \u1234 */ + if ((*beg == '\\') && (beg + 2 < lexem->end) && + (beg[1] == 'u') && my_isxdigit(&my_charset_utf8_general_ci, beg[2])) { int ch; @@ -7860,15 +21503,43 @@ static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem) rc= MY_COLL_LEXEM_CHAR; goto ex; } - + + /* + Unescaped single byte character: + allow printable ASCII range except SPACE and + special characters parsed above []<&/|= + */ + if (*beg >= 0x21 && *beg <= 0x7E) + { + lexem->code= *beg++; + rc= MY_COLL_LEXEM_CHAR; + goto ex; + } + + if (((uchar) *beg) > 0x7F) /* Unescaped multibyte character */ + { + CHARSET_INFO *cs= &my_charset_utf8_general_ci; + my_wc_t wc; + int nbytes= cs->cset->mb_wc(cs, &wc, + (uchar *) beg, (uchar *) lexem->end); + if (nbytes > 0) + { + rc= MY_COLL_LEXEM_CHAR; + beg+= nbytes; + lexem->code= (int) wc; + goto ex; + } + } + rc= MY_COLL_LEXEM_ERROR; goto ex; } rc= MY_COLL_LEXEM_EOF; - + ex: lexem->prev= lexem->beg; lexem->beg= beg; + lexem->term= rc; return rc; } @@ -7877,142 +21548,1197 @@ ex: Collation rule item */ +#define MY_UCA_MAX_EXPANSION 10 /* Maximum expansion length */ + typedef struct my_coll_rule_item_st { - my_wc_t base; /* Base character */ - my_wc_t curr[2]; /* Current character */ - int diff[3]; /* Primary, Secondary and Tertiary difference */ + my_wc_t base[MY_UCA_MAX_EXPANSION]; /* Base character */ + my_wc_t curr[MY_UCA_MAX_CONTRACTION]; /* Current character */ + int diff[4]; /* Primary, Secondary, Tertiary, Quaternary difference */ + size_t before_level; /* "reset before" indicator */ + my_bool with_context; } MY_COLL_RULE; +/** + Return length of a 0-terminated wide string, analog to strnlen(). + + @param s Pointer to wide string + @param maxlen Mamixum string length + + @return string length, or maxlen if no '\0' is met. +*/ +static size_t +my_wstrnlen(my_wc_t *s, size_t maxlen) +{ + size_t i; + for (i= 0; i < maxlen; i++) + { + if (s[i] == 0) + return i; + } + return maxlen; +} + + +/** + Return length of the "reset" string of a rule. + + @param r Collation customization rule + + @return Length of r->base +*/ + +static inline size_t +my_coll_rule_reset_length(MY_COLL_RULE *r) +{ + return my_wstrnlen(r->base, MY_UCA_MAX_EXPANSION); +} + + +/** + Return length of the "shift" string of a rule. + + @param r Collation customization rule + + @return Length of r->base +*/ + +static inline size_t +my_coll_rule_shift_length(MY_COLL_RULE *r) +{ + return my_wstrnlen(r->curr, MY_UCA_MAX_CONTRACTION); +} + + +/** + Append new character to the end of a 0-terminated wide string. + + @param wc Wide string + @param limit Maximum possible result length + @param code Character to add + + @return 1 if character was added, 0 if string was too long +*/ + +static int +my_coll_rule_expand(my_wc_t *wc, size_t limit, my_wc_t code) +{ + size_t i; + for (i= 0; i < limit; i++) + { + if (wc[i] == 0) + { + wc[i]= code; + return 1; + } + } + return 0; +} + + +/** + Initialize collation customization rule + + @param wc Rule +*/ + +static void +my_coll_rule_reset(MY_COLL_RULE *r) +{ + memset(r, 0, sizeof(*r)); +} + + +/* + Shift methods: + Simple: "&B < C" : weight('C') = weight('B') + 1 + Expand: weght('C') = { weight('B'), weight(last_non_ignorable) + 1 } +*/ +typedef enum +{ + my_shift_method_simple= 0, + my_shift_method_expand +} my_coll_shift_method; + + +typedef struct my_coll_rules_st +{ + uint version; /* Unicode version, e.g. 400 or 520 */ + MY_UCA_INFO *uca; /* Unicode weight data */ + size_t nrules; /* Number of rules in the rule array */ + size_t mrules; /* Number of allocated rules */ + MY_COLL_RULE *rule; /* Rule array */ + MY_CHARSET_LOADER *loader; + my_coll_shift_method shift_after_method; +} MY_COLL_RULES; + + +/** + Realloc rule array to a new size. + Reallocate memory for 128 additional rules at once, + to reduce the number of reallocs, which is important + for long tailorings (e.g. for East Asian collations). + + @param rules Rule container + @param n new number of rules + + @return 0 on success, -1 on error. +*/ + +static int +my_coll_rules_realloc(MY_COLL_RULES *rules, size_t n) +{ + if (rules->nrules < rules->mrules || + (rules->rule= rules->loader->realloc(rules->rule, + sizeof(MY_COLL_RULE) * + (rules->mrules= n + 128)))) + return 0; + return -1; +} + + +/** + Append one new rule to a rule array + + @param rules Rule container + @param rule New rule to add + + @return 0 on success, -1 on error. +*/ + +static int +my_coll_rules_add(MY_COLL_RULES *rules, MY_COLL_RULE *rule) +{ + if (my_coll_rules_realloc(rules, rules->nrules + 1)) + return -1; + rules->rule[rules->nrules++]= rule[0]; + return 0; +} + + +/** + Apply difference at level + + @param r Rule + @param level Level (0,1,2,3,4) +*/ + +static void +my_coll_rule_shift_at_level(MY_COLL_RULE *r, int level) +{ + switch (level) + { + case 4: /* Quaternary difference */ + r->diff[3]++; + break; + case 3: /* Tertiary difference */ + r->diff[2]++; + r->diff[3]= 0; + break; + case 2: /* Secondary difference */ + r->diff[1]++; + r->diff[2]= r->diff[3]= 0; + break; + case 1: /* Primary difference */ + r->diff[0]++; + r->diff[1]= r->diff[2]= r->diff[3]= 0; + break; + case 0: + /* Do nothing for '=': use the previous offsets for all levels */ + break; + default: + DBUG_ASSERT(0); + } +} + + +typedef struct my_coll_rule_parser_st +{ + MY_COLL_LEXEM tok[2]; /* Current token and next token for look-ahead */ + MY_COLL_RULE rule; /* Currently parsed rule */ + MY_COLL_RULES *rules; /* Rule list pointer */ + char errstr[128]; /* Error message */ +} MY_COLL_RULE_PARSER; + + +/** + Current parser token + + @param p Collation customization parser + + @return Pointer to the current token +*/ + +static MY_COLL_LEXEM * +my_coll_parser_curr(MY_COLL_RULE_PARSER *p) +{ + return &p->tok[0]; +} + + +/** + Next parser token, to look ahead. + + @param p Collation customization parser + + @return Pointer to the next token +*/ + +static MY_COLL_LEXEM * +my_coll_parser_next(MY_COLL_RULE_PARSER *p) +{ + return &p->tok[1]; +} + + +/** + Scan one token from the input stream + + @param p Collation customization parser + + @return 1, for convenience, to use in logical expressions easier. +*/ +static int +my_coll_parser_scan(MY_COLL_RULE_PARSER *p) +{ + my_coll_parser_curr(p)[0]= my_coll_parser_next(p)[0]; + my_coll_lexem_next(my_coll_parser_next(p)); + return 1; +} + + +/** + Initialize collation customization parser + + @param p Collation customization parser + @param rules Where to store rules + @param str Beginning of a collation customization sting + @param str_end End of the collation customizations string +*/ + +static void +my_coll_parser_init(MY_COLL_RULE_PARSER *p, + MY_COLL_RULES *rules, + const char *str, const char *str_end) +{ + /* + Initialize parser to the input buffer and scan two tokens, + to make the current token and the next token known. + */ + memset(p, 0, sizeof(*p)); + p->rules= rules; + p->errstr[0]= '\0'; + my_coll_lexem_init(my_coll_parser_curr(p), str, str_end); + my_coll_lexem_next(my_coll_parser_curr(p)); + my_coll_parser_next(p)[0]= my_coll_parser_curr(p)[0]; + my_coll_lexem_next(my_coll_parser_next(p)); +} + + +/** + Display error when an unexpected token found + + @param p Collation customization parser + @param term Which lexem was expected + + @return 0, to use in "return" and boolean expressions. +*/ + +static int +my_coll_parser_expected_error(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term) +{ + my_snprintf(p->errstr, sizeof(p->errstr), + "%s expected", my_coll_lexem_num_to_str(term)); + return 0; +} + + +/** + Display error when a too long character sequence is met + + @param p Collation customization parser + @param name Which kind of sequence: contraction, expansion, etc. + + @return 0, to use in "return" and boolean expressions. +*/ + +static int +my_coll_parser_too_long_error(MY_COLL_RULE_PARSER *p, const char *name) +{ + my_snprintf(p->errstr, sizeof(p->errstr), "%s is too long", name); + return 0; +} + + +/** + Scan the given lexem from input stream, or display "expected" error. + + @param p Collation customization parser + @param term Which lexem is expected. + + @return + @retval 0 if the required term was not found. + @retval 1 if the required term was found. +*/ +static int +my_coll_parser_scan_term(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term) +{ + if (my_coll_parser_curr(p)->term != term) + return my_coll_parser_expected_error(p, term); + return my_coll_parser_scan(p); +} + + +/* + In the following code we have a few functions to parse + various collation customization non-terminal symbols. + Unlike our usual coding convension, they return + - 0 on "error" (when the rule was not scanned) and + - 1 on "success"(when the rule was scanned). + This is done intentionally to make body of the functions look easier + and repeat the grammar of the rules in straightforward manner. + For example: + + // <x> ::= <y> | <z> + int parse_x() { return parse_y() || parser_z(); } + + // <x> ::= <y> <z> + int parse_x() { return parse_y() && parser_z(); } + + Using 1 on "not found" and 0 on "found" in the parser code would + make the code more error prone and harder to read because + of having to use inverse boolean logic. +*/ + + +/** + Scan a collation setting in brakets, for example UCA version. + + @param p Collation customization parser + + @return + @retval 0 if setting was scanned. + @retval 1 if setting was not scanned. +*/ + +static int +my_coll_parser_scan_setting(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_RULES *rules= p->rules; + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 4.0.0]"))) + { + rules->version= 400; + rules->uca= &my_uca_v400; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 5.2.0]"))) + { + rules->version= 520; + rules->uca= &my_uca_v520; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method expand]"))) + { + rules->shift_after_method= my_shift_method_expand; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method simple]"))) + { + rules->shift_after_method= my_shift_method_simple; + } + else + { + return 0; + } + return my_coll_parser_scan(p); +} + + +/** + Scan multiple collation settings + + @param p Collation customization parser + + @return + @retval 0 if no settings were scanned. + @retval 1 if one or more settings were scanned. +*/ + +static int +my_coll_parser_scan_settings(MY_COLL_RULE_PARSER *p) +{ + /* Scan collation setting or special purpose command */ + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + { + if (!my_coll_parser_scan_setting(p)) + return 0; + } + return 1; +} + + +/** + Scan [before xxx] reset option + + @param p Collation customization parser + + @return + @retval 0 if reset option was not scanned. + @retval 1 if reset option was scanned. +*/ + +static int +my_coll_parser_scan_reset_before(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before primary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 1]"))) + { + p->rule.before_level= 1; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before secondary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 2]"))) + { + p->rule.before_level= 2; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before tertiary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 3]"))) + { + p->rule.before_level= 3; + } + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before quaternary]")) || + !lex_cmp(lexem, C_STRING_WITH_LEN("[before 4]"))) + { + p->rule.before_level= 4; + } + else + { + p->rule.before_level= 0; + return 0; /* Don't scan thr next character */ + } + return my_coll_parser_scan(p); +} + + +/** + Scan logical position and add to the wide string. + + @param p Collation customization parser + @param pwc Wide string to add code to + @param limit The result string cannot be longer than 'limit' characters + + @return + @retval 0 if logical position was not scanned. + @retval 1 if logical position was scanned. +*/ + +static int +my_coll_parser_scan_logical_position(MY_COLL_RULE_PARSER *p, + my_wc_t *pwc, size_t limit) +{ + MY_COLL_RULES *rules= p->rules; + MY_COLL_LEXEM *lexem= my_coll_parser_curr(p); + + if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first non-ignorable]"))) + lexem->code= rules->uca->first_non_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last non-ignorable]"))) + lexem->code= rules->uca->last_non_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first primary ignorable]"))) + lexem->code= rules->uca->first_primary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last primary ignorable]"))) + lexem->code= rules->uca->last_primary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first secondary ignorable]"))) + lexem->code= rules->uca->first_secondary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last secondary ignorable]"))) + lexem->code= rules->uca->last_secondary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first tertiary ignorable]"))) + lexem->code= rules->uca->first_tertiary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last tertiary ignorable]"))) + lexem->code= rules->uca->last_tertiary_ignorable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first trailing]"))) + lexem->code= rules->uca->first_trailing; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last trailing]"))) + lexem->code= rules->uca->last_trailing; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first variable]"))) + lexem->code= rules->uca->first_variable; + else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last variable]"))) + lexem->code= rules->uca->last_variable; + else + return 0; /* Don't scan the next token */ + + if (!my_coll_rule_expand(pwc, limit, lexem->code)) + { + /* + Logical position can not be in a contraction, + so the above call should never fail. + Let's assert in debug version and print + a nice error message in production version. + */ + DBUG_ASSERT(0); + return my_coll_parser_too_long_error(p, "Logical position"); + } + return my_coll_parser_scan(p); +} + + +/** + Scan character list + + <character list> ::= CHAR [ CHAR... ] + + @param p Collation customization parser + @param pwc Character string to add code to + @param limit The result string cannot be longer than 'limit' characters + @param name E.g. "contraction", "expansion" + + @return + @retval 0 if character sequence was not scanned. + @retval 1 if character sequence was scanned. +*/ + +static int +my_coll_parser_scan_character_list(MY_COLL_RULE_PARSER *p, + my_wc_t *pwc, size_t limit, + const char *name) +{ + if (my_coll_parser_curr(p)->term != MY_COLL_LEXEM_CHAR) + return my_coll_parser_expected_error(p, MY_COLL_LEXEM_CHAR); + + if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code)) + return my_coll_parser_too_long_error(p, name); + + if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_CHAR)) + return 0; + + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CHAR) + { + if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code)) + return my_coll_parser_too_long_error(p, name); + my_coll_parser_scan(p); + } + return 1; +} + + +/** + Scan reset sequence + + <reset sequence> ::= + [ <reset before option> ] <character list> + | [ <reset before option> ] <logical reset position> + + @param p Collation customization parser + + @return + @retval 0 if reset sequence was not scanned. + @retval 1 if reset sequence was scanned. +*/ + +static int +my_coll_parser_scan_reset_sequence(MY_COLL_RULE_PARSER *p) +{ + my_coll_rule_reset(&p->rule); + + /* Scan "[before x]" option, if exists */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + my_coll_parser_scan_reset_before(p); + + /* Try logical reset position */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION) + { + if (!my_coll_parser_scan_logical_position(p, p->rule.base, 1)) + return 0; + } + else + { + /* Scan single reset character or expansion */ + if (!my_coll_parser_scan_character_list(p, p->rule.base, + MY_UCA_MAX_EXPANSION, "Expansion")) + return 0; + } + return 1; +} + + +/** + Scan shift sequence + + <shift sequence> ::= + <character list> [ / <character list> ] + | <character list> [ | <character list> ] + + @param p Collation customization parser + + @return + @retval 0 if shift sequence was not scanned. + @retval 1 if shift sequence was scanned. +*/ + +static int +my_coll_parser_scan_shift_sequence(MY_COLL_RULE_PARSER *p) +{ + MY_COLL_RULE before_extend; + + memset(&p->rule.curr, 0, sizeof(p->rule.curr)); + + /* Scan single shift character or contraction */ + if (!my_coll_parser_scan_character_list(p, p->rule.curr, + MY_UCA_MAX_CONTRACTION, + "Contraction")) + return 0; + + before_extend= p->rule; /* Remember the part before "/" */ + + /* Append the part after "/" as expansion */ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_EXTEND) + { + my_coll_parser_scan(p); + if (!my_coll_parser_scan_character_list(p, p->rule.base, + MY_UCA_MAX_EXPANSION, + "Expansion")) + return 0; + } + else if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CONTEXT) + { + /* + We support 2-character long context sequences only: + one character is the previous context, plus the current character. + It's OK as Unicode's CLDR does not have longer examples. + */ + my_coll_parser_scan(p); + p->rule.with_context= TRUE; + if (!my_coll_parser_scan_character_list(p, p->rule.curr + 1, 1, "context")) + return 0; + } + + /* Add rule to the rule list */ + if (my_coll_rules_add(p->rules, &p->rule)) + return 0; + + p->rule= before_extend; /* Restore to the state before "/" */ + + return 1; +} + + +/** + Scan shift operator + + <shift> ::= < | << | <<< | <<<< | = + + @param p Collation customization parser + + @return + @retval 0 if shift operator was not scanned. + @retval 1 if shift operator was scanned. +*/ +static int +my_coll_parser_scan_shift(MY_COLL_RULE_PARSER *p) +{ + if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_SHIFT) + { + my_coll_rule_shift_at_level(&p->rule, my_coll_parser_curr(p)->diff); + return my_coll_parser_scan(p); + } + return 0; +} + + +/** + Scan one rule: reset followed by a number of shifts + + <rule> ::= + & <reset sequence> + <shift> <shift sequence> + [ { <shift> <shift sequence> }... ] + + @param p Collation customization parser + + @return + @retval 0 if rule was not scanned. + @retval 1 if rule was scanned. +*/ +static int +my_coll_parser_scan_rule(MY_COLL_RULE_PARSER *p) +{ + if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_RESET) || + !my_coll_parser_scan_reset_sequence(p)) + return 0; + + /* Scan the first required shift command */ + if (!my_coll_parser_scan_shift(p)) + return my_coll_parser_expected_error(p, MY_COLL_LEXEM_SHIFT); + + /* Scan the first shift sequence */ + if (!my_coll_parser_scan_shift_sequence(p)) + return 0; + + /* Scan subsequent shift rules */ + while (my_coll_parser_scan_shift(p)) + { + if (!my_coll_parser_scan_shift_sequence(p)) + return 0; + } + return 1; +} + + +/** + Scan collation customization: settings followed by rules + + <collation customization> ::= + [ <setting> ... ] + [ <rule>... ] + + @param p Collation customization parser + + @return + @retval 0 if collation customozation expression was not scanned. + @retval 1 if collation customization expression was scanned. +*/ + +static int +my_coll_parser_exec(MY_COLL_RULE_PARSER *p) +{ + if (!my_coll_parser_scan_settings(p)) + return 0; + + while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_RESET) + { + if (!my_coll_parser_scan_rule(p)) + return 0; + } + /* Make sure no unparsed input data left */ + return my_coll_parser_scan_term(p, MY_COLL_LEXEM_EOF); +} + + /* Collation language syntax parser. Uses lexical parser. - - SYNOPSIS - my_coll_rule_parse - rule Collation rule list to load to. - str A string containin collation language expression. - str_end End of the string. - USAGE - - RETURN VALUES - A positive number means the number of rules loaded. - -1 means ERROR, e.g. too many items, syntax error, etc. + + @param rules Collation rule list to load to. + @param str A string with collation customization. + @param str_end End of the string. + + @return + @retval 0 on success + @retval 1 on error */ -static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems, - const char *str, const char *str_end, - char *errstr, size_t errsize) +static int +my_coll_rule_parse(MY_COLL_RULES *rules, + const char *str, const char *str_end) { - MY_COLL_LEXEM lexem; - my_coll_lexem_num lexnum; - my_coll_lexem_num prevlexnum= MY_COLL_LEXEM_ERROR; - MY_COLL_RULE item; - int state= 0; - size_t nitems= 0; + MY_COLL_RULE_PARSER p; + + my_coll_parser_init(&p, rules, str, str_end); + + if (!my_coll_parser_exec(&p)) + { + my_coll_lexem_print_error(my_coll_parser_curr(&p), + rules->loader->error, + sizeof(rules->loader->error) - 1, + p.errstr); + return 1; + } + return 0; +} + + +/** + Helper function: + Copies UCA weights for a given "uint" string + to the given location. - /* Init all variables */ - errstr[0]= '\0'; - bzero(&item, sizeof(item)); - my_coll_lexem_init(&lexem, str, str_end); + @src_uca source UCA weight data + @dst_uca destination UCA weight data + @to destination address + @to_length size of destination + @nweights OUT number of weights put to "to" + @str qide string + @len string length - while ((lexnum= my_coll_lexem_next(&lexem))) + @return FALSE on success, TRUE if the weights did not fit. +*/ + +static my_bool +my_char_weight_put(MY_UCA_WEIGHT_LEVEL *dst, + uint16 *to, size_t to_length, size_t *nweights, + my_wc_t *str, size_t len) +{ + size_t count; + int rc= FALSE; + if (!to_length) { - if (lexnum == MY_COLL_LEXEM_ERROR) + *nweights= 0; + return len > 0; + } + to_length--; /* Without trailing zero */ + + for (count= 0; len; ) + { + size_t chlen; + const uint16 *from= NULL; + + for (chlen= len; chlen > 1; chlen--) { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Unknown character"); - return -1; - } - - switch (state) { - case 0: - if (lexnum != MY_COLL_LEXEM_SHIFT) + if ((from= my_uca_contraction_weight(&dst->contractions, str, chlen))) { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& expected"); - return -1; + str+= chlen; + len-= chlen; + break; } - prevlexnum= lexnum; - state= 2; - continue; - - case 1: - if (lexnum != MY_COLL_LEXEM_SHIFT && lexnum != MY_COLL_LEXEM_DIFF) + } + + if (!from) + { + from= my_char_weight_addr(dst, *str); + str++; + len--; + } + + for ( ; from && *from && count < to_length; ) + { + *to++= *from++; + count++; + } + if (count == to_length && from && * from) + rc= TRUE; /* All weights did not fit */ + } + + *to= 0; + *nweights= count; + return rc; +} + + +/** + Alloc new page and copy the default UCA weights + @param loader - Character set loader + @param src_uca - Default UCA data to copy from + @param dst_uca - UCA data to copy weights to + @param page - page number + + @return + @retval FALSE on success + @retval TRUE on error +*/ +static my_bool +my_uca_copy_page(MY_CHARSET_LOADER *loader, + const MY_UCA_WEIGHT_LEVEL *src, + MY_UCA_WEIGHT_LEVEL *dst, + size_t page) +{ + uint chc, size= 256 * dst->lengths[page] * sizeof(uint16); + if (!(dst->weights[page]= (uint16 *) (loader->once_alloc)(size))) + return TRUE; + + DBUG_ASSERT(src->lengths[page] <= dst->lengths[page]); + memset(dst->weights[page], 0, size); + for (chc=0 ; chc < 256; chc++) + { + memcpy(dst->weights[page] + chc * dst->lengths[page], + src->weights[page] + chc * src->lengths[page], + src->lengths[page] * sizeof(uint16)); + } + return FALSE; +} + + +static my_bool +apply_shift(MY_CHARSET_LOADER *loader, + MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, + uint16 *to, size_t nweights) +{ + /* Apply level difference. */ + if (nweights) + { + to[nweights - 1]+= r->diff[level]; + if (r->before_level == 1) /* Apply "&[before primary]" */ + { + if (nweights >= 2) { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& or < expected"); - return -1; + to[nweights - 2]--; /* Reset before */ + if (rules->shift_after_method == my_shift_method_expand) + { + /* + Special case. Don't let characters shifted after X + and before next(X) intermix to each other. + + For example: + "[shift-after-method expand] &0 < a &[before primary]1 < A". + I.e. we reorder 'a' after '0', and then 'A' before '1'. + 'a' must be sorted before 'A'. + + Note, there are no real collations in CLDR which shift + after and before two neighbourgh characters. We need this + just in case. Reserving 4096 (0x1000) weights for such + cases is perfectly enough. + */ + to[nweights - 1]+= 0x1000; /* W3-TODO: const may vary on levels 2,3*/ + } } - prevlexnum= lexnum; - state= 2; - continue; - - case 2: - if (lexnum != MY_COLL_LEXEM_CHAR) + else { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"character expected"); - return -1; + my_snprintf(loader->error, sizeof(loader->error), + "Can't reset before " + "a primary ignorable character U+%04lX", r->base[0]); + return TRUE; } + } + } + else + { + /* Shift to an ignorable character, e.g.: & \u0000 < \u0001 */ + DBUG_ASSERT(to[0] == 0); + to[0]= r->diff[level]; + } + return FALSE; +} + + +static void +wstr_to_str(char *str, size_t length, my_wc_t *wc, size_t wlength) +{ + const char *end= str + length; + char *s; + size_t i, rem; + for (s= str, i= 0; (rem= (end - s)) > 0 && i < wlength; i++) + { + if ((wc[i] >= '0' && wc[i] <= '9') || + (wc[i] >= 'a' && wc[i] <= 'z') || + (wc[i] >= 'A' && wc[i] <= 'Z')) + s+= my_snprintf(s, rem, "%c", (int) wc[i]); + else + s+= my_snprintf(s, rem, "\\u%04X", (int) wc[i]); + } +} + + +static void +my_charset_loader_error_for_rule(MY_CHARSET_LOADER *loader, + const MY_COLL_RULE *r __attribute__((unused)), + const char *name, + my_wc_t *wc, size_t wlength) +{ + char tmp[128]; + wstr_to_str(tmp, sizeof(tmp), wc, wlength); + my_snprintf(loader->error, sizeof(loader->error), + "%s too long: '%s'", name, tmp); +} + + +static my_bool +apply_one_rule(MY_CHARSET_LOADER *loader, + MY_COLL_RULES *rules, MY_COLL_RULE *r, int level, + MY_UCA_WEIGHT_LEVEL *dst) +{ + size_t nweights; + size_t nreset= my_coll_rule_reset_length(r); /* Length of reset sequence */ + size_t nshift= my_coll_rule_shift_length(r); /* Length of shift sequence */ + uint16 *to; + my_bool rc; + + if ((rules->shift_after_method == my_shift_method_expand && r->diff[0]) || + r->before_level == 1) + { + /* + Suppose we have this rule: &B[before primary] < C + i.e. we need to put C before B, but after A, so + the result order is: A < C < B. + + Let primary weight of B be [BBBB]. + + We cannot just use [BBBB-1] as weight for C: + DUCET does not have enough unused weights between any two characters, + so using [BBBB-1] will likely make C equal to the previous character, + which is A, so we'll get this order instead of the desired: A = C < B. + + To guarantee that that C is sorted after A, we'll use expansion + with a kind of "biggest possible character". + As "biggest possible character" we'll use "last_non_ignorable": + + We'll compose weight for C as: [BBBB-1][MMMM+1] + where [MMMM] is weight for "last_non_ignorable". - if (prevlexnum == MY_COLL_LEXEM_SHIFT) - { - item.base= lexem.code; - item.diff[0]= 0; - item.diff[1]= 0; - item.diff[2]= 0; - } - else if (prevlexnum == MY_COLL_LEXEM_DIFF) + We also do the same trick for "reset after" if the collation + option says so. E.g. for the rules "&B < C", weight for + C will be calculated as: [BBBB][MMMM+1] + + At this point we only need to store codepoints + 'B' and 'last_non_ignorable'. Actual weights for 'C' + will be calculated according to the above formula later, + in create_tailoring(). + */ + if (!my_coll_rule_expand(r->base, MY_UCA_MAX_EXPANSION, + rules->uca->last_non_ignorable)) + { + my_charset_loader_error_for_rule(loader, r, "Expansion", r->base, nreset); + return TRUE; + } + nreset= my_coll_rule_reset_length(r); + } + + if (nshift >= 2) /* Contraction */ + { + size_t i; + int flag; + MY_CONTRACTIONS *contractions= &dst->contractions; + /* Add HEAD, MID and TAIL flags for the contraction parts */ + my_uca_add_contraction_flag(contractions, r->curr[0], + r->with_context ? + MY_UCA_PREVIOUS_CONTEXT_HEAD : + MY_UCA_CNT_HEAD); + for (i= 1, flag= MY_UCA_CNT_MID1; i < nshift - 1; i++, flag<<= 1) + my_uca_add_contraction_flag(contractions, r->curr[i], flag); + my_uca_add_contraction_flag(contractions, r->curr[i], + r->with_context ? + MY_UCA_PREVIOUS_CONTEXT_TAIL : + MY_UCA_CNT_TAIL); + /* Add new contraction to the contraction list */ + to= my_uca_add_contraction(contractions, r->curr, nshift, + r->with_context)->weight; + /* Store weights of the "reset to" character */ + dst->contractions.nitems--; /* Temporarily hide - it's incomplete */ + rc= my_char_weight_put(dst, + to, MY_UCA_CONTRACTION_MAX_WEIGHT_SIZE, &nweights, + r->base, nreset); + dst->contractions.nitems++; /* Activate, now it's complete */ + } + else + { + my_wc_t pagec= (r->curr[0] >> 8); + DBUG_ASSERT(dst->weights[pagec]); + to= my_char_weight_addr(dst, r->curr[0]); + /* Store weights of the "reset to" character */ + rc= my_char_weight_put(dst, to, dst->lengths[pagec], &nweights, r->base, nreset); + } + if (rc) + { + my_charset_loader_error_for_rule(loader, r, "Expansion", r->base, nreset); + return rc; + } + + /* Apply level difference. */ + return apply_shift(loader, rules, r, level, to, nweights); +} + + +/** + Check if collation rules are valid, + i.e. characters are not outside of the collation suported range. +*/ +static int +check_rules(MY_CHARSET_LOADER *loader, + const MY_COLL_RULES *rules, + const MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src) +{ + const MY_COLL_RULE *r, *rlast; + for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++) + { + if (r->curr[0] > dst->maxchar) + { + my_snprintf(loader->error, sizeof(loader->error), + "Shift character out of range: u%04X", (uint) r->curr[0]); + return TRUE; + } + else if (r->base[0] > src->maxchar) + { + my_snprintf(loader->error, sizeof(loader->error), + "Reset character out of range: u%04X", (uint) r->base[0]); + return TRUE; + } + } + return FALSE; +} + + +static my_bool +init_weight_level(MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, int level, + MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src) +{ + MY_COLL_RULE *r, *rlast; + int ncontractions= 0; + size_t i, npages= (src->maxchar + 1) / 256; + + dst->maxchar= src->maxchar; + + if (check_rules(loader, rules, dst, src)) + return TRUE; + + /* Allocate memory for pages and their lengths */ + if (!(dst->lengths= (uchar *) (loader->once_alloc)(npages)) || + !(dst->weights= (uint16 **) (loader->once_alloc)(npages * + sizeof(uint16 *)))) + return TRUE; + + /* Copy pages lengths and page pointers from the default UCA weights */ + memcpy(dst->lengths, src->lengths, npages); + memcpy(dst->weights, src->weights, npages * sizeof(uint16 *)); + + /* + Calculate maximum lenghts for the pages which will be overwritten. + Mark pages that will be otherwriten as NULL. + We'll allocate their own memory. + */ + for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++) + { + if (!r->curr[1]) /* If not a contraction */ + { + uint pagec= (r->curr[0] >> 8); + if (r->base[1]) /* Expansion */ { - MY_COLL_LEXEM savlex; - savlex= lexem; - item.curr[0]= lexem.code; - if ((lexnum= my_coll_lexem_next(&lexem)) == MY_COLL_LEXEM_CHAR) - { - item.curr[1]= lexem.code; - } - else - { - item.curr[1]= 0; - lexem=savlex; /* Restore previous parser state */ - } - if (lexem.diff == 3) - { - item.diff[2]++; - } - else if (lexem.diff == 2) - { - item.diff[1]++; - item.diff[2]= 0; - } - else if (lexem.diff == 1) - { - item.diff[0]++; - item.diff[1]= 0; - item.diff[2]= 0; - } - else if (lexem.diff == 0) - { - item.diff[0]= item.diff[1]= item.diff[2]= 0; - } - if (nitems >= mitems) - { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Too many rules"); - return -1; - } - rule[nitems++]= item; + /* Reserve space for maximum possible length */ + dst->lengths[pagec]= MY_UCA_MAX_WEIGHT_SIZE; } else { - my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Should never happen"); - return -1; + uint pageb= (r->base[0] >> 8); + if (dst->lengths[pagec] < src->lengths[pageb]) + dst->lengths[pagec]= src->lengths[pageb]; } - state= 1; - continue; + dst->weights[pagec]= NULL; /* Mark that we'll overwrite this page */ } + else + ncontractions++; + } + + /* Allocate pages that we'll overwrite and copy default weights */ + for (i= 0; i < npages; i++) + { + my_bool rc; + /* + Don't touch pages with lengths[i]==0, they have implicit weights + calculated algorithmically. + */ + if (!dst->weights[i] && dst->lengths[i] && + (rc= my_uca_copy_page(loader, src, dst, i))) + return rc; } - return (int) nitems; + + if (ncontractions) + { + if (my_uca_alloc_contractions(&dst->contractions, loader, ncontractions)) + return TRUE; + } + + /* + Preparatory step is done at this point. + Now we have memory allocated for the pages that we'll overwrite, + and for contractions, including previous context contractions. + Also, for the pages that we'll overwrite, we have copied default weights. + Now iterate through the rules, overwrite weights for the characters + that appear in the rules, and put all contractions into contraction list. + */ + for (r= rules->rule; r < rlast; r++) + { + if (apply_one_rule(loader, rules, r, level, dst)) + return TRUE; + } + return FALSE; } -#define MY_MAX_COLL_RULE 128 /* This function copies an UCS2 collation from @@ -8031,145 +22757,62 @@ static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems, default weights. */ -static my_bool create_tailoring(struct charset_info_st *cs, - void *(*alloc)(size_t)) -{ - MY_COLL_RULE rule[MY_MAX_COLL_RULE]; - MY_COLL_RULE *r, *rfirst, *rlast; - char errstr[128]; - uchar *newlengths; - uint16 **newweights; - const uchar *deflengths= uca_length; - const uint16 *const *defweights= uca_weight; - int rc, i; - int ncontractions= 0; - +static my_bool +create_tailoring(struct charset_info_st *cs, MY_CHARSET_LOADER *loader) +{ + MY_COLL_RULES rules; + MY_UCA_INFO new_uca, *src_uca= NULL; + int rc= 0; + + *loader->error= '\0'; + if (!cs->tailoring) - return 1; - + return 0; /* Ok to add a collation without tailoring */ + + memset(&rules, 0, sizeof(rules)); + rules.loader= loader; + rules.uca= cs->uca ? cs->uca : &my_uca_v400; /* For logical positions, etc */ + memset(&new_uca, 0, sizeof(new_uca)); + /* Parse ICU Collation Customization expression */ - if ((rc= my_coll_rule_parse(rule, MY_MAX_COLL_RULE, + if ((rc= my_coll_rule_parse(&rules, cs->tailoring, - cs->tailoring + strlen(cs->tailoring), - errstr, sizeof(errstr))) < 0) - { - /* - TODO: add error message reporting. - printf("Error: %d '%s'\n", rc, errstr); - */ - return 1; - } - - rfirst= rule; - rlast= rule + rc; - - if (!cs->caseinfo) - cs->caseinfo= my_unicase_default; - - if (!(newweights= (uint16**) (*alloc)(256*sizeof(uint16*)))) - return 1; - bzero(newweights, 256*sizeof(uint16*)); - - if (!(newlengths= (uchar*) (*alloc)(256))) - return 1; - - memcpy(newlengths, deflengths, 256); - - /* - Calculate maximum lenghts for the pages - which will be overwritten. - */ - for (i=0; i < rc; i++) - { - /* check if the shift or the reset characters are out of range */ - if (rule[i].curr[0] > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT || - rule[i].base > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT) - return 1; + cs->tailoring + strlen(cs->tailoring)))) + goto ex; - if (!rule[i].curr[1]) /* If not a contraction */ - { - uint pageb= (rule[i].base >> 8) & 0xFF; - uint pagec= (rule[i].curr[0] >> 8) & 0xFF; - - if (newlengths[pagec] < deflengths[pageb]) - newlengths[pagec]= deflengths[pageb]; - } - else - ncontractions++; + if (rules.version == 520) /* Unicode-5.2.0 requested */ + { + src_uca= &my_uca_v520; + cs->caseinfo= &my_unicase_unicode520; } - - for (i=0; i < rc; i++) + else if (rules.version == 400) /* Unicode-4.0.0 requested */ { - uint pageb= (rule[i].base >> 8) & 0xFF; - uint pagec= (rule[i].curr[0] >> 8) & 0xFF; - uint chb, chc; - - if (rule[i].curr[1]) /* Skip contraction */ - continue; - - if (!newweights[pagec]) - { - /* Alloc new page and copy the default UCA weights */ - uint size= 256*newlengths[pagec]*sizeof(uint16); - - if (!(newweights[pagec]= (uint16*) (*alloc)(size))) - return 1; - bzero((void*) newweights[pagec], size); - - for (chc=0 ; chc < 256; chc++) - { - memcpy(newweights[pagec] + chc*newlengths[pagec], - defweights[pagec] + chc*deflengths[pagec], - deflengths[pagec]*sizeof(uint16)); - } - } - - /* - Aply the alternative rule: - shift to the base character and primary difference. - */ - chc= rule[i].curr[0] & 0xFF; - chb= rule[i].base & 0xFF; - memcpy(newweights[pagec] + chc*newlengths[pagec], - defweights[pageb] + chb*deflengths[pageb], - deflengths[pageb]*sizeof(uint16)); - /* Apply primary difference */ - newweights[pagec][chc*newlengths[pagec]]+= rule[i].diff[0]; + src_uca= &my_uca_v400; + cs->caseinfo= &my_unicase_default; } - - /* Copy non-overwritten pages from the default UCA weights */ - for (i= 0; i < 256 ; i++) + else /* No Unicode version specified */ { - if (!newweights[i]) - ((const uint16**) newweights)[i]= defweights[i]; + src_uca= cs->uca ? cs->uca : &my_uca_v400; + if (!cs->caseinfo) + cs->caseinfo= &my_unicase_default; } - - cs->sort_order= newlengths; - cs->sort_order_big= (const uint16**) newweights; - cs->contractions= NULL; - - /* Now process contractions */ - if (ncontractions) + + if ((rc= init_weight_level(loader, &rules, 0, + &new_uca.level[0], &src_uca->level[0]))) + goto ex; + + if (!(cs->uca= (MY_UCA_INFO *) (loader->once_alloc)(sizeof(MY_UCA_INFO)))) { - if (my_uca_alloc_contractions(cs, alloc, ncontractions)) - return 1; - for (r= rfirst; r < rlast; r++) - { - uint16 *to; - if (r->curr[1]) /* Contraction */ - { - /* Mark both letters as "is contraction part" */ - my_uca_add_contraction_flag(cs, r->curr[0], MY_UCA_CNT_HEAD); - my_uca_add_contraction_flag(cs, r->curr[1], MY_UCA_CNT_TAIL); - to= my_uca_add_contraction(cs, r->curr, 2)->weight; - /* Copy weight from the reset character */ - to[0]= my_char_weight_addr(cs, r->base)[0]; - /* Apply primary difference */ - to[0]+= r->diff[0]; - } - } + rc= 1; + goto ex; } - return 0; + cs->uca[0]= new_uca; + +ex: + (loader->free)(rules.rule); + if (rc != 0 && loader->error[0]) + loader->reporter(ERROR_LEVEL, "%s", loader->error); + return rc; } @@ -8179,12 +22822,14 @@ static my_bool create_tailoring(struct charset_info_st *cs, Should work for any character set. */ -static my_bool my_coll_init_uca(struct charset_info_st *cs, - void *(*alloc)(size_t)) +static my_bool +my_coll_init_uca(struct charset_info_st *cs, MY_CHARSET_LOADER *loader) { cs->pad_char= ' '; cs->ctype= my_charset_utf8_unicode_ci.ctype; - return create_tailoring(cs, alloc); + if (!cs->caseinfo) + cs->caseinfo= &my_unicase_default; + return create_tailoring(cs, loader); } static int my_strnncoll_any_uca(CHARSET_INFO *cs, @@ -8214,11 +22859,17 @@ static void my_hash_sort_any_uca(CHARSET_INFO *cs, } static size_t my_strnxfrm_any_uca(CHARSET_INFO *cs, - uchar *dst, size_t dstlen, - const uchar *src, size_t srclen) + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler, - dst, dstlen, src, srclen); + dst, dstlen, nweights, src, srclen, flags); +} + +static size_t my_strnxfrmlen_any_uca(CHARSET_INFO *cs, size_t len) +{ + /* UCA uses 2 bytes per weight */ + return (len + cs->mbmaxlen - 1) / cs->mbmaxlen * cs->strxfrm_multiply * 2; } @@ -8231,7 +22882,7 @@ static int my_strnncoll_ucs2_uca(CHARSET_INFO *cs, const uchar *t, size_t tlen, my_bool t_is_prefix) { - return my_strnncoll_uca(cs, &my_ucs2_uca_scanner_handler, + return my_strnncoll_uca(cs, &my_any_uca_scanner_handler, s, slen, t, tlen, t_is_prefix); } @@ -8240,7 +22891,7 @@ static int my_strnncollsp_ucs2_uca(CHARSET_INFO *cs, const uchar *t, size_t tlen, my_bool diff_if_only_endspace_difference) { - return my_strnncollsp_uca(cs, &my_ucs2_uca_scanner_handler, + return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler, s, slen, t, tlen, diff_if_only_endspace_difference); } @@ -8249,15 +22900,15 @@ static void my_hash_sort_ucs2_uca(CHARSET_INFO *cs, const uchar *s, size_t slen, ulong *n1, ulong *n2) { - my_hash_sort_uca(cs, &my_ucs2_uca_scanner_handler, s, slen, n1, n2); + my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2); } static size_t my_strnxfrm_ucs2_uca(CHARSET_INFO *cs, - uchar *dst, size_t dstlen, - const uchar *src, size_t srclen) + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - return my_strnxfrm_uca(cs, &my_ucs2_uca_scanner_handler, - dst, dstlen, src, srclen); + return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler, + dst, dstlen, nweights, src, srclen, flags); } MY_COLLATION_HANDLER my_collation_ucs2_uca_handler = @@ -8266,7 +22917,7 @@ MY_COLLATION_HANDLER my_collation_ucs2_uca_handler = my_strnncoll_ucs2_uca, my_strnncollsp_ucs2_uca, my_strnxfrm_ucs2_uca, - my_strnxfrmlen_simple, + my_strnxfrmlen_any_uca, my_like_range_generic, my_wildcmp_uca, NULL, @@ -8286,12 +22937,11 @@ struct charset_info_st my_charset_ucs2_unicode_ci= NULL, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ - uca_length, /* sort_order */ - NULL, /* contractions */ - uca_weight, /* sort_order_big*/ + NULL, /* sort_order */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8303,6 +22953,7 @@ struct charset_info_st my_charset_ucs2_unicode_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8319,11 +22970,10 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8335,6 +22985,7 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8351,11 +23002,10 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8367,6 +23017,7 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8383,11 +23034,10 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8399,6 +23049,7 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8415,11 +23066,10 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8431,6 +23081,7 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8447,11 +23098,10 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8463,6 +23113,7 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8479,11 +23130,10 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8495,6 +23145,7 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8511,11 +23162,10 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8527,6 +23177,7 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8543,11 +23194,10 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8559,6 +23209,7 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8575,11 +23226,10 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_turkish, /* caseinfo */ + &my_unicase_turkish,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8591,6 +23241,7 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8607,11 +23258,10 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8623,6 +23273,7 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8640,11 +23291,10 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8656,6 +23306,7 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8672,11 +23323,10 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8688,6 +23338,7 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8704,11 +23355,10 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8720,6 +23370,7 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8736,11 +23387,10 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8752,6 +23402,7 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8769,11 +23420,10 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8785,6 +23435,7 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8802,11 +23453,10 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8818,6 +23468,7 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8835,11 +23486,10 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8851,6 +23501,7 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8868,11 +23519,10 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8884,6 +23534,7 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; @@ -8900,11 +23551,10 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8916,27 +23566,193 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; -struct charset_info_st my_charset_ucs2_croatian_uca_ci= + + +struct charset_info_st my_charset_ucs2_german2_uca_ci= +{ + 148,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_german2_ci", /* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + +struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci= { 149,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, "ucs2", /* cs name */ - "ucs2_croatian_ci", /* name */ + "ucs2_croatian_mysql561_ci", /* name */ + "", /* comment */ + croatian_mysql561, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +struct charset_info_st my_charset_ucs2_croatian_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UCS2,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_croatian_ci", /* name */ + "", /* comment */ + croatian_mariadb, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +struct charset_info_st my_charset_ucs2_myanmar_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UCS2+1,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_myanmar_ci", /* name */ + "", /* comment */ + myanmar, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +struct charset_info_st my_charset_ucs2_unicode_520_ci= +{ + 150,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* cs name */ + "ucs2_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 2, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_ucs2_handler, + &my_collation_ucs2_uca_handler +}; + + +struct charset_info_st my_charset_ucs2_vietnamese_ci= +{ + 151,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "ucs2", /* csname */ + "ucs2_vietnamese_ci",/* name */ "", /* comment */ - croatian, /* tailoring */ + vietnamese, /* tailoring */ NULL, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -8948,10 +23764,12 @@ struct charset_info_st my_charset_ucs2_croatian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_uca_handler }; + #endif @@ -8962,7 +23780,7 @@ MY_COLLATION_HANDLER my_collation_any_uca_handler = my_strnncoll_any_uca, my_strnncollsp_any_uca, my_strnxfrm_any_uca, - my_strnxfrmlen_simple, + my_strnxfrmlen_any_uca, my_like_range_mb, my_wildcmp_uca, NULL, @@ -8999,7 +23817,7 @@ static uchar ctype_utf8[] = { extern MY_CHARSET_HANDLER my_charset_utf8_handler; -#define MY_CS_UTF8MB3_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE) +#define MY_CS_UTF8MB3_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE) struct charset_info_st my_charset_utf8_unicode_ci= { @@ -9012,12 +23830,11 @@ struct charset_info_st my_charset_utf8_unicode_ci= ctype_utf8, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ - uca_length, /* sort_order */ - NULL, /* contractions */ - uca_weight, /* sort_order_big*/ + NULL, /* sort_order */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9029,6 +23846,7 @@ struct charset_info_st my_charset_utf8_unicode_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9037,7 +23855,7 @@ struct charset_info_st my_charset_utf8_unicode_ci= struct charset_info_st my_charset_utf8_icelandic_uca_ci= { 193,0,0, /* number */ - MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ "utf8", /* cs name */ "utf8_icelandic_ci",/* name */ "", /* comment */ @@ -9046,11 +23864,10 @@ struct charset_info_st my_charset_utf8_icelandic_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9062,6 +23879,7 @@ struct charset_info_st my_charset_utf8_icelandic_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9078,11 +23896,10 @@ struct charset_info_st my_charset_utf8_latvian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9094,6 +23911,7 @@ struct charset_info_st my_charset_utf8_latvian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9110,11 +23928,10 @@ struct charset_info_st my_charset_utf8_romanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9126,6 +23943,7 @@ struct charset_info_st my_charset_utf8_romanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9142,11 +23960,10 @@ struct charset_info_st my_charset_utf8_slovenian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9158,6 +23975,7 @@ struct charset_info_st my_charset_utf8_slovenian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9174,11 +23992,10 @@ struct charset_info_st my_charset_utf8_polish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9190,6 +24007,7 @@ struct charset_info_st my_charset_utf8_polish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9206,11 +24024,10 @@ struct charset_info_st my_charset_utf8_estonian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9222,6 +24039,7 @@ struct charset_info_st my_charset_utf8_estonian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9238,11 +24056,10 @@ struct charset_info_st my_charset_utf8_spanish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9254,6 +24071,7 @@ struct charset_info_st my_charset_utf8_spanish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9270,11 +24088,10 @@ struct charset_info_st my_charset_utf8_swedish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9286,6 +24103,7 @@ struct charset_info_st my_charset_utf8_swedish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9302,11 +24120,10 @@ struct charset_info_st my_charset_utf8_turkish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_turkish, /* caseinfo */ + &my_unicase_turkish,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9318,6 +24135,7 @@ struct charset_info_st my_charset_utf8_turkish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9334,11 +24152,10 @@ struct charset_info_st my_charset_utf8_czech_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9350,6 +24167,7 @@ struct charset_info_st my_charset_utf8_czech_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9367,11 +24185,10 @@ struct charset_info_st my_charset_utf8_danish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9383,6 +24200,7 @@ struct charset_info_st my_charset_utf8_danish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9399,11 +24217,10 @@ struct charset_info_st my_charset_utf8_lithuanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9415,6 +24232,7 @@ struct charset_info_st my_charset_utf8_lithuanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9431,11 +24249,10 @@ struct charset_info_st my_charset_utf8_slovak_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9447,6 +24264,7 @@ struct charset_info_st my_charset_utf8_slovak_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9463,11 +24281,10 @@ struct charset_info_st my_charset_utf8_spanish2_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9479,6 +24296,7 @@ struct charset_info_st my_charset_utf8_spanish2_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9495,11 +24313,10 @@ struct charset_info_st my_charset_utf8_roman_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9511,6 +24328,7 @@ struct charset_info_st my_charset_utf8_roman_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9527,11 +24345,10 @@ struct charset_info_st my_charset_utf8_persian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9543,6 +24360,7 @@ struct charset_info_st my_charset_utf8_persian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9559,11 +24377,10 @@ struct charset_info_st my_charset_utf8_esperanto_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9575,6 +24392,7 @@ struct charset_info_st my_charset_utf8_esperanto_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9591,11 +24409,10 @@ struct charset_info_st my_charset_utf8_hungarian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9607,6 +24424,7 @@ struct charset_info_st my_charset_utf8_hungarian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; @@ -9623,11 +24441,10 @@ struct charset_info_st my_charset_utf8_sinhala_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9639,42 +24456,209 @@ struct charset_info_st my_charset_utf8_sinhala_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; + +struct charset_info_st my_charset_utf8_german2_uca_ci= +{ + 212,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + +struct charset_info_st my_charset_utf8_croatian_mysql561_uca_ci= +{ + 213,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_croatian_mysql561_ci",/* name */ + "", /* comment */ + croatian_mysql561, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + struct charset_info_st my_charset_utf8_croatian_uca_ci= { - 213,0,0, /* number */ - MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, - "utf8", /* cs name */ - "utf8_croatian_ci", /* name */ - "", /* comment */ - croatian, /* tailoring */ - ctype_utf8, /* ctype */ - NULL, /* to_lower */ - NULL, /* to_upper */ - NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ - NULL, /* tab_to_uni */ - NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ - NULL, /* state_map */ - NULL, /* ident_map */ - 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ - 1, /* mbminlen */ - 3, /* mbmaxlen */ - 9, /* min_sort_char */ - 0xFFFF, /* max_sort_char */ - ' ', /* pad char */ - 0, /* escape_with_backslash_is_dangerous */ + MY_PAGE2_COLLATION_ID_UTF8,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_croatian_ci",/* name */ + "", /* comment */ + croatian_mariadb, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_any_uca_handler }; + +struct charset_info_st my_charset_utf8_myanmar_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UTF8+1,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_myanmar_ci",/* name */ + "", /* comment */ + myanmar, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +struct charset_info_st my_charset_utf8_unicode_520_ci= +{ + 214,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* csname */ + MY_UTF8MB3 "_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + +struct charset_info_st my_charset_utf8_vietnamese_ci= +{ + 215,0,0, /* number */ + MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ + MY_UTF8MB3, /* cs name */ + MY_UTF8MB3 "_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8_handler, + &my_collation_any_uca_handler +}; + + #endif /* HAVE_CHARSET_utf8 */ @@ -9695,12 +24679,11 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci= ctype_utf8, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ - uca_length, /* sort_order */ - NULL, /* contractions */ - uca_weight, /* sort_order_big*/ + NULL, /* sort_order */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9712,6 +24695,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9729,11 +24713,10 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9745,6 +24728,7 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9761,11 +24745,10 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9777,6 +24760,7 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9793,11 +24777,10 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9809,6 +24792,7 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9825,11 +24809,10 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9841,6 +24824,7 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9857,11 +24841,10 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9873,6 +24856,7 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9889,11 +24873,10 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9905,6 +24888,7 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9921,11 +24905,10 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9937,6 +24920,7 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9953,11 +24937,10 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -9969,6 +24952,7 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -9985,11 +24969,10 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_turkish, /* caseinfo */ + &my_unicase_turkish, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10001,6 +24984,7 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10017,11 +25001,10 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10033,6 +25016,7 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10050,11 +25034,10 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10066,6 +25049,7 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10082,11 +25066,10 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10098,6 +25081,7 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10114,11 +25098,10 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10130,6 +25113,7 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10146,11 +25130,10 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10162,6 +25145,7 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10178,11 +25162,10 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10194,6 +25177,7 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10210,11 +25194,10 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10226,6 +25209,7 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10242,11 +25226,10 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10258,6 +25241,7 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10274,11 +25258,10 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10290,6 +25273,7 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; @@ -10306,11 +25290,10 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10322,27 +25305,92 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; -struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= +struct charset_info_st my_charset_utf8mb4_german2_uca_ci= +{ + 244,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + +struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci= { 245,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ MY_UTF8MB4, /* csname */ - MY_UTF8MB4 "_croatian_ci",/* name */ + MY_UTF8MB4 "_croatian_mysql561_ci",/* name */ + "", /* comment */ + croatian_mysql561, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UTF8MB4,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_croatian_ci",/* name */ "", /* comment */ - croatian, /* tailoring */ + croatian_mariadb, /* tailoring */ ctype_utf8, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10354,10 +25402,111 @@ struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_any_uca_handler }; + +struct charset_info_st my_charset_utf8mb4_myanmar_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UTF8MB4+1,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_myanmar_ci",/* name */ + "", /* comment */ + myanmar, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +struct charset_info_st my_charset_utf8mb4_unicode_520_ci= +{ + 246,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* flags */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + +struct charset_info_st my_charset_utf8mb4_vietnamese_ci= +{ + 247,0,0, /* number */ + MY_CS_UTF8MB4_UCA_FLAGS,/* state */ + MY_UTF8MB4, /* csname */ + MY_UTF8MB4 "_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + ctype_utf8, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 1, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf8mb4_handler, + &my_collation_any_uca_handler +}; + + #endif /* HAVE_CHARSET_utf8mb4 */ @@ -10369,7 +25518,7 @@ MY_COLLATION_HANDLER my_collation_utf32_uca_handler = my_strnncoll_any_uca, my_strnncollsp_any_uca, my_strnxfrm_any_uca, - my_strnxfrmlen_simple, + my_strnxfrmlen_any_uca, my_like_range_generic, my_wildcmp_uca, NULL, @@ -10393,12 +25542,11 @@ struct charset_info_st my_charset_utf32_unicode_ci= NULL, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ - uca_length, /* sort_order */ - NULL, /* contractions */ - uca_weight, /* sort_order_big*/ + NULL, /* sort_order */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10410,6 +25558,7 @@ struct charset_info_st my_charset_utf32_unicode_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10427,11 +25576,10 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10443,6 +25591,7 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10459,11 +25608,10 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10475,6 +25623,7 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10491,11 +25640,10 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10507,6 +25655,7 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10523,11 +25672,10 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10539,6 +25687,7 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10555,11 +25704,10 @@ struct charset_info_st my_charset_utf32_polish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10571,6 +25719,7 @@ struct charset_info_st my_charset_utf32_polish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10587,11 +25736,10 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10603,6 +25751,7 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10619,11 +25768,10 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10635,6 +25783,7 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10651,11 +25800,10 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10667,6 +25815,7 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10683,11 +25832,10 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_turkish, /* caseinfo */ + &my_unicase_turkish, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10699,6 +25847,7 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10715,11 +25864,10 @@ struct charset_info_st my_charset_utf32_czech_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10731,6 +25879,7 @@ struct charset_info_st my_charset_utf32_czech_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10748,11 +25897,10 @@ struct charset_info_st my_charset_utf32_danish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10764,6 +25912,7 @@ struct charset_info_st my_charset_utf32_danish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10780,11 +25929,10 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10796,6 +25944,7 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10812,11 +25961,10 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10828,6 +25976,7 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10844,11 +25993,10 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10860,6 +26008,7 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10876,11 +26025,10 @@ struct charset_info_st my_charset_utf32_roman_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10892,6 +26040,7 @@ struct charset_info_st my_charset_utf32_roman_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10908,11 +26057,10 @@ struct charset_info_st my_charset_utf32_persian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10924,6 +26072,7 @@ struct charset_info_st my_charset_utf32_persian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10940,11 +26089,10 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10956,6 +26104,7 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -10972,11 +26121,10 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -10988,6 +26136,7 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; @@ -11004,11 +26153,10 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11020,27 +26168,91 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +struct charset_info_st my_charset_utf32_german2_uca_ci= +{ + 180,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_german2_ci", /* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + +struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci= +{ + 181,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_croatian_mysql561_ci", /* name */ + "", /* comment */ + croatian_mysql561, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; struct charset_info_st my_charset_utf32_croatian_uca_ci= { - 214,0,0, /* number */ - MY_CS_UTF32_UCA_FLAGS /* state */, - "utf32", /* cs name */ + MY_PAGE2_COLLATION_ID_UTF32,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ "utf32_croatian_ci", /* name */ "", /* comment */ - croatian, /* tailoring */ + croatian_mariadb, /* tailoring */ NULL, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11052,9 +26264,111 @@ struct charset_info_st my_charset_utf32_croatian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_uca_handler }; + + +struct charset_info_st my_charset_utf32_myanmar_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UTF32+1,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_myanmar_ci", /* name */ + "", /* comment */ + myanmar, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +struct charset_info_st my_charset_utf32_unicode_520_ci= +{ + 182,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* stat e */ + "utf32", /* csname */ + "utf32_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + +struct charset_info_st my_charset_utf32_vietnamese_ci= +{ + 183,0,0, /* number */ + MY_CS_UTF32_UCA_FLAGS,/* state */ + "utf32", /* csname */ + "utf32_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 4, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf32_handler, + &my_collation_utf32_uca_handler +}; + + #endif /* HAVE_CHARSET_utf32 */ @@ -11067,7 +26381,7 @@ MY_COLLATION_HANDLER my_collation_utf16_uca_handler = my_strnncoll_any_uca, my_strnncollsp_any_uca, my_strnxfrm_any_uca, - my_strnxfrmlen_simple, + my_strnxfrmlen_any_uca, my_like_range_generic, my_wildcmp_uca, NULL, @@ -11091,12 +26405,11 @@ struct charset_info_st my_charset_utf16_unicode_ci= NULL, /* ctype */ NULL, /* to_lower */ NULL, /* to_upper */ - uca_length, /* sort_order */ - NULL, /* contractions */ - uca_weight, /* sort_order_big*/ + NULL, /* sort_order */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11108,6 +26421,7 @@ struct charset_info_st my_charset_utf16_unicode_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11125,11 +26439,10 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11141,6 +26454,7 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11157,11 +26471,10 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11173,6 +26486,7 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11189,11 +26503,10 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11205,6 +26518,7 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11221,11 +26535,10 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11237,6 +26550,7 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11253,11 +26567,10 @@ struct charset_info_st my_charset_utf16_polish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11269,6 +26582,7 @@ struct charset_info_st my_charset_utf16_polish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11285,11 +26599,10 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11301,6 +26614,7 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11317,11 +26631,10 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11333,6 +26646,7 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11349,11 +26663,10 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11365,6 +26678,7 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11381,11 +26695,10 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_turkish, /* caseinfo */ + &my_unicase_turkish, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11397,6 +26710,7 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11413,11 +26727,10 @@ struct charset_info_st my_charset_utf16_czech_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11429,6 +26742,7 @@ struct charset_info_st my_charset_utf16_czech_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11446,11 +26760,10 @@ struct charset_info_st my_charset_utf16_danish_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11462,6 +26775,7 @@ struct charset_info_st my_charset_utf16_danish_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11478,11 +26792,10 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11494,6 +26807,7 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11510,11 +26824,10 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11526,6 +26839,7 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11542,11 +26856,10 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11558,6 +26871,7 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11574,11 +26888,10 @@ struct charset_info_st my_charset_utf16_roman_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11590,6 +26903,7 @@ struct charset_info_st my_charset_utf16_roman_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11606,11 +26920,10 @@ struct charset_info_st my_charset_utf16_persian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11622,6 +26935,7 @@ struct charset_info_st my_charset_utf16_persian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11638,11 +26952,10 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11654,6 +26967,7 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11670,11 +26984,10 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default,/* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11686,6 +26999,7 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; @@ -11702,11 +27016,10 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default,/* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 8, /* strxfrm_multiply */ @@ -11718,118 +27031,211 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; -struct charset_info_st my_charset_utf16_croatian_uca_ci= +struct charset_info_st my_charset_utf16_german2_uca_ci= { - 215,0,0, /* number */ - MY_CS_UTF16_UCA_FLAGS /* state */, - "utf16", /* cs name */ - "utf16_croatian_ci", /* name */ - "", /* comment */ - croatian, /* tailoring */ - NULL, /* ctype */ - NULL, /* to_lower */ - NULL, /* to_upper */ - NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ - NULL, /* tab_to_uni */ - NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ - NULL, /* state_map */ - NULL, /* ident_map */ - 8, /* strxfrm_multiply */ - 1, /* caseup_multiply */ - 1, /* casedn_multiply */ - 2, /* mbminlen */ - 4, /* mbmaxlen */ - 9, /* min_sort_char */ - 0xFFFF, /* max_sort_char */ - ' ', /* pad char */ - 0, /* escape_with_backslash_is_dangerous */ + 121,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_german2_ci",/* name */ + "", /* comment */ + german2, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_uca_handler }; -#endif /* HAVE_CHARSET_utf16 */ +struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci= +{ + 122,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_croatian_mysql561_ci",/* name */ + "", /* comment */ + croatian_mysql561, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; -#endif /* HAVE_UCA_COLLATIONS */ -/** - Check if UCA data has contractions (public version) +struct charset_info_st my_charset_utf16_croatian_uca_ci= +{ + MY_PAGE2_COLLATION_ID_UTF16,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_croatian_ci",/* name */ + "", /* comment */ + croatian_mariadb, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; - @cs Pointer to CHARSET_INFO data - @retval 0 - no contraction, 1 - have contractions. -*/ -my_bool -my_cs_have_contractions(CHARSET_INFO *cs) +struct charset_info_st my_charset_utf16_myanmar_uca_ci= { - return cs->contractions != NULL; -} + MY_PAGE2_COLLATION_ID_UTF16+1,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_myanmar_ci",/* name */ + "", /* comment */ + myanmar, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; -/** - Check if a character can be contraction head - - @cs Pointer to CHARSET_INFO data - @wc Code point - - @retval 0 - cannot be contraction head - @retval 1 - can be contraction head -*/ -my_bool -my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc) +struct charset_info_st my_charset_utf16_unicode_520_ci= { - return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD; -} + 123,0,0, /* number */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16", /* csname */ + "utf16_unicode_520_ci",/* name */ + "", /* comment */ + "", /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + &my_uca_v520, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_unicode520,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0x10FFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; -/** - Check if a character can be contraction tail - - @cs Pointer to CHARSET_INFO data - @wc Code point - - @retval 0 - cannot be contraction tail - @retval 1 - can be contraction tail -*/ - -my_bool -my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc) +struct charset_info_st my_charset_utf16_vietnamese_ci= { - return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL; -} + 124,0,0, /* number */ + MY_CS_UTF16_UCA_FLAGS,/* state */ + "utf16", /* cs name */ + "utf16_vietnamese_ci",/* name */ + "", /* comment */ + vietnamese, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default,/* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 8, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 9, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16_handler, + &my_collation_utf16_uca_handler +}; -/** - Find a contraction and return its weight array - - @cs Pointer to CHARSET data - @wc1 First character - @wc2 Second character - - @return Weight array - @retval NULL - no contraction found - @retval ptr - contraction weight array -*/ +#endif /* HAVE_CHARSET_utf16 */ + -const uint16 * -my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) -{ - const MY_CONTRACTIONS *list= cs->contractions; - const MY_CONTRACTION *c, *last; - for (c= list->item, last= &list->item[list->nitems]; c < last; c++) - { - if (c->ch[0] == wc1 && c->ch[1] == wc2) - { - return c->weight; - } - } - return NULL; -} +#endif /* HAVE_UCA_COLLATIONS */ diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index ca6f53f3f8d..318c248f742 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -40,11 +40,11 @@ #undef ULONGLONG_MAX #define ULONGLONG_MAX (~(ulonglong) 0) -#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000)) +#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000LL) #define INIT_CNT 9 -#define LFACTOR ULL(1000000000) -#define LFACTOR1 ULL(10000000000) -#define LFACTOR2 ULL(100000000000) +#define LFACTOR 1000000000ULL +#define LFACTOR1 10000000000ULL +#define LFACTOR2 100000000000ULL #if defined(HAVE_CHARSET_utf32) || defined(HAVE_CHARSET_mb2) static unsigned long lfactor[9]= @@ -58,7 +58,7 @@ my_bincmp(const uchar *s, const uchar *se, const uchar *t, const uchar *te) { int slen= (int) (se - s), tlen= (int) (te - t); - int len= min(slen, tlen); + int len= MY_MIN(slen, tlen); int cmp= memcmp(s, t, len); return cmp ? cmp : slen - tlen; } @@ -101,6 +101,7 @@ my_strntol_mb2_or_mb4(CHARSET_INFO *cs, int overflow; int cnv; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; register unsigned int cutlim; register uint32 cutoff; register uint32 res; @@ -111,7 +112,7 @@ my_strntol_mb2_or_mb4(CHARSET_INFO *cs, *err= 0; do { - if ((cnv= cs->cset->mb_wc(cs, &wc, s, e))>0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { switch (wc) { @@ -141,7 +142,7 @@ bs: cutlim= (uint) (((uint32)~0L) % (uint32) base); do { - if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { s+= cnv; if (wc >= '0' && wc <= '9') @@ -212,6 +213,7 @@ my_strntoul_mb2_or_mb4(CHARSET_INFO *cs, int overflow; int cnv; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; register unsigned int cutlim; register uint32 cutoff; register uint32 res; @@ -222,7 +224,7 @@ my_strntoul_mb2_or_mb4(CHARSET_INFO *cs, *err= 0; do { - if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { switch (wc) { @@ -253,7 +255,7 @@ bs: do { - if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { s+= cnv; if (wc >= '0' && wc <= '9') @@ -316,6 +318,7 @@ my_strntoll_mb2_or_mb4(CHARSET_INFO *cs, int overflow; int cnv; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; register ulonglong cutoff; register unsigned int cutlim; register ulonglong res; @@ -326,7 +329,7 @@ my_strntoll_mb2_or_mb4(CHARSET_INFO *cs, *err= 0; do { - if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { switch (wc) { @@ -356,7 +359,7 @@ bs: cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base); do { - if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { s+=cnv; if ( wc>='0' && wc<='9') @@ -427,6 +430,7 @@ my_strntoull_mb2_or_mb4(CHARSET_INFO *cs, int overflow; int cnv; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; register ulonglong cutoff; register unsigned int cutlim; register ulonglong res; @@ -437,7 +441,7 @@ my_strntoull_mb2_or_mb4(CHARSET_INFO *cs, *err= 0; do { - if ((cnv= cs->cset->mb_wc(cs,&wc,s,e)) > 0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { switch (wc) { @@ -468,7 +472,7 @@ bs: do { - if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0) + if ((cnv= mb_wc(cs, &wc, s, e)) > 0) { s+=cnv; if ( wc>='0' && wc<='9') @@ -533,6 +537,7 @@ my_strntod_mb2_or_mb4(CHARSET_INFO *cs, register const uchar *s= (const uchar*) nptr; const uchar *end; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; int cnv; *err= 0; @@ -541,7 +546,7 @@ my_strntod_mb2_or_mb4(CHARSET_INFO *cs, length= sizeof(buf) - 1; end= s + length; - while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0) + while ((cnv= mb_wc(cs, &wc, s, end)) > 0) { s+= cnv; if (wc > (int) (uchar) 'e' || !wc) @@ -566,6 +571,7 @@ my_strntoull10rnd_mb2_or_mb4(CHARSET_INFO *cs, ulonglong res; const uchar *end, *s= (const uchar*) nptr; my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; int cnv; /* Cut too long strings */ @@ -573,7 +579,7 @@ my_strntoull10rnd_mb2_or_mb4(CHARSET_INFO *cs, length= sizeof(buf)-1; end= s + length; - while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0) + while ((cnv= mb_wc(cs, &wc, s, end)) > 0) { s+= cnv; if (wc > (int) (uchar) 'e' || !wc) @@ -712,23 +718,36 @@ static longlong my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)), const char *nptr, char **endptr, int *error) { - const char *s, *end, *start, *n_end, *true_end; + const uchar *s, *end, *start, *n_end, *true_end; uchar c; unsigned long i, j, k; ulonglong li; int negative; ulong cutoff, cutoff2, cutoff3; + my_wc_t wc; + int res; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; - s= nptr; + s= (const uchar *) nptr; /* If fixed length string */ if (endptr) { - /* Make sure string length is even */ - end= s + ((*endptr - s) / 2) * 2; - while (s < end && !s[0] && (s[1] == ' ' || s[1] == '\t')) - s+= 2; - if (s == end) - goto no_conv; + /* + Make sure string length is even. + Odd length indicates a bug in the caller. + Assert in debug, round in production. + */ + DBUG_ASSERT((*endptr - (const char *) s) % 2 == 0); + end= s + ((*endptr - (const char*) s) / 2) * 2; + + for ( ; ; ) /* Skip leading spaces and tabs */ + { + if ((res= mb_wc(cs, &wc, s, end)) <= 0) + goto no_conv; + s+= res; + if (wc != ' ' && wc != '\t') + break; + } } else { @@ -738,13 +757,13 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)), /* Check for a sign. */ negative= 0; - if (!s[0] && s[1] == '-') + if (wc == '-') { *error= -1; /* Mark as negative number */ negative= 1; - s+= 2; - if (s == end) + if ((res= mb_wc(cs, &wc, s, end)) <= 0) goto no_conv; + s+= res; /* wc is now expected to hold the first digit. */ cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2; cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100; cutoff3= MAX_NEGATIVE_NUMBER % 100; @@ -752,46 +771,53 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)), else { *error= 0; - if (!s[0] && s[1] == '+') + if (wc == '+') { - s+= 2; - if (s == end) + if ((res= mb_wc(cs, &wc, s, end)) <= 0) goto no_conv; + s+= res; /* wc is now expected to hold the first digit. */ } cutoff= ULONGLONG_MAX / LFACTOR2; cutoff2= ULONGLONG_MAX % LFACTOR2 / 100; cutoff3= ULONGLONG_MAX % 100; } - /* Handle case where we have a lot of pre-zero */ - if (!s[0] && s[1] == '0') + /* + The code below assumes that 'wc' holds the first digit + and 's' points to the next character after it. + + Scan pre-zeros if any. + */ + if (wc == '0') { i= 0; - do + for ( ; ; s+= res) { - s+= 2; if (s == end) goto end_i; /* Return 0 */ + if ((res= mb_wc(cs, &wc, s, end)) <= 0) + goto no_conv; + if (wc != '0') + break; } - while (!s[0] && s[1] == '0'); n_end= s + 2 * INIT_CNT; } else { /* Read first digit to check that it's a valid number */ - if (s[0] || (c= (s[1]-'0')) > 9) + if ((i= (wc - '0')) > 9) goto no_conv; - i= c; - s+= 2; n_end= s + 2 * (INIT_CNT-1); } /* Handle first 9 digits and store them in i */ if (n_end > end) n_end= end; - for (; s != n_end ; s+= 2) + for ( ; ; s+= res) { - if (s[0] || (c= (s[1]-'0')) > 9) + if ((res= mb_wc(cs, &wc, s, n_end)) <= 0) + break; + if ((c= (wc - '0')) > 9) goto end_i; i= i*10+c; } @@ -806,10 +832,12 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)), n_end= end; do { - if (s[0] || (c= (s[1]-'0')) > 9) + if ((res= mb_wc(cs, &wc, s, end)) <= 0) + goto no_conv; + if ((c= (wc - '0')) > 9) goto end_i_and_j; - j= j*10+c; - s+= 2; + s+= res; + j= j * 10 + c; } while (s != n_end); if (s == end) { @@ -817,20 +845,26 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)), goto end_i_and_j; goto end3; } - if (s[0] || (c= (s[1]-'0')) > 9) - goto end3; /* Handle the next 1 or 2 digits and store them in k */ - k=c; - s+= 2; - if (s == end || s[0] || (c= (s[1]-'0')) > 9) + if ((res= mb_wc(cs, &wc, s, end)) <= 0) + goto no_conv; + if ((k= (wc - '0')) > 9) + goto end3; + s+= res; + + if (s == end) goto end4; + if ((res= mb_wc(cs, &wc, s, end)) <= 0) + goto no_conv; + if ((c= (wc - '0')) > 9) + goto end4; + s+= res; k= k*10+c; - s+= 2; *endptr= (char*) s; /* number string should have ended here */ - if (s != end && !s[0] && (c= (s[1]-'0')) <= 9) + if (s != end && mb_wc(cs, &wc, s, end) > 0 && ((uchar) (wc - '0')) <= 9) goto overflow; /* Check that we didn't get an overflow with the last digit */ @@ -882,15 +916,18 @@ my_scan_mb2(CHARSET_INFO *cs __attribute__((unused)), const char *str, const char *end, int sequence_type) { const char *str0= str; - end--; /* for easier loop condition, because of two bytes per character */ - + my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; + int res; + switch (sequence_type) { case MY_SEQ_SPACES: - for ( ; str < end; str+= 2) + for (res= mb_wc(cs, &wc, (const uchar *) str, (const uchar *) end); + res > 0 && wc == ' '; + str+= res, + res= mb_wc(cs, &wc, (const uchar *) str, (const uchar *) end)) { - if (str[0] != '\0' || str[1] != ' ') - break; } return (size_t) (str - str0); default: @@ -900,11 +937,33 @@ my_scan_mb2(CHARSET_INFO *cs __attribute__((unused)), static void -my_fill_mb2(CHARSET_INFO *cs __attribute__((unused)), - char *s, size_t l, int fill) +my_fill_mb2(CHARSET_INFO *cs, char *s, size_t slen, int fill) { - DBUG_ASSERT(fill <= 0xFFFF); - for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2); + char buf[10], *last; + int buflen, remainder; + + DBUG_ASSERT((slen % 2) == 0); + + buflen= cs->cset->wc_mb(cs, (my_wc_t) fill, (uchar*) buf, + (uchar*) buf + sizeof(buf)); + + DBUG_ASSERT(buflen > 0); + + /* + "last" in the last position where a sequence of "buflen" bytes can start. + */ + for (last= s + slen - buflen; s <= last; s+= buflen) + { + /* Enough space for the characer */ + memcpy(s, buf, (size_t) buflen); + } + + /* + If there are some more space which is not enough + for the whole multibyte character, then add trailing zeros. + */ + if ((remainder= last + buflen - s) > 0) + bzero(s, (size_t) remainder); } @@ -1018,11 +1077,26 @@ my_lengthsp_mb2(CHARSET_INFO *cs __attribute__((unused)), DB80..DBFF - Private surrogate high (128 pages) DC00..DFFF - Surrogate low (1024 codes in a page) */ +#define MY_UTF16_SURROGATE_HIGH_FIRST 0xD800 +#define MY_UTF16_SURROGATE_HIGH_LAST 0xDBFF +#define MY_UTF16_SURROGATE_LOW_FIRST 0xDC00 +#define MY_UTF16_SURROGATE_LOW_LAST 0xDFFF #define MY_UTF16_HIGH_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xD8) #define MY_UTF16_LOW_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xDC) #define MY_UTF16_SURROGATE(x) (((x) & 0xF800) == 0xD800) +#define MY_UTF16_WC2(a, b) ((a << 8) + b) + +/* + a= 110110?? (<< 18) + b= ???????? (<< 10) + c= 110111?? (<< 8) + d= ???????? (<< 0) +*/ +#define MY_UTF16_WC4(a, b, c, d) (((a & 3) << 18) + (b << 10) + \ + ((c & 3) << 8) + d + 0x10000) + static int my_utf16_uni(CHARSET_INFO *cs __attribute__((unused)), my_wc_t *pwc, const uchar *s, const uchar *e) @@ -1044,23 +1118,14 @@ my_utf16_uni(CHARSET_INFO *cs __attribute__((unused)), if (!MY_UTF16_LOW_HEAD(s[2])) /* Broken surrigate pair */ return MY_CS_ILSEQ; - /* - s[0]= 110110?? (<< 18) - s[1]= ???????? (<< 10) - s[2]= 110111?? (<< 8) - s[3]= ???????? (<< 0) - */ - - *pwc= ((s[0] & 3) << 18) + (s[1] << 10) + - ((s[2] & 3) << 8) + s[3] + 0x10000; - + *pwc= MY_UTF16_WC4(s[0], s[1], s[2], s[3]); return 4; } if (MY_UTF16_LOW_HEAD(*s)) /* Low surrogate part without high part */ return MY_CS_ILSEQ; - - *pwc= (s[0] << 8) + s[1]; + + *pwc= MY_UTF16_WC2(s[0], s[1]); return 2; } @@ -1096,31 +1161,31 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)), static inline void -my_tolower_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].tolower; + MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].tolower; } static inline void -my_toupper_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_toupper_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].toupper; + MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].toupper; } static inline void -my_tosort_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_tosort_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256) + if (*wc <= uni_plane->maxchar) { - if (uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].sort; + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].sort; } else { @@ -1129,22 +1194,25 @@ my_tosort_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) } + static size_t my_caseup_utf16(CHARSET_INFO *cs, char *src, size_t srclen, char *dst __attribute__((unused)), size_t dstlen __attribute__((unused))) { my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; + my_charset_conv_wc_mb wc_mb= cs->cset->wc_mb; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((src < srcend) && - (res= my_utf16_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) + (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) { my_toupper_utf16(uni_plane, &wc); - if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend)) + if (res != wc_mb(cs, wc, (uchar *) src, (uchar *) srcend)) break; src+= res; } @@ -1154,25 +1222,23 @@ my_caseup_utf16(CHARSET_INFO *cs, char *src, size_t srclen, static void my_hash_sort_utf16(CHARSET_INFO *cs, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; int res; - const uchar *e= s+slen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + const uchar *e= s + cs->cset->lengthsp(cs, (const char *) s, slen); + MY_UNICASE_INFO *uni_plane= cs->caseinfo; + register ulong m1= *nr1, m2= *nr2; - while (e > s + 1 && e[-1] == ' ' && e[-2] == '\0') - e-= 2; - - while ((s < e) && (res= my_utf16_uni(cs, &wc, (uchar *)s, (uchar*)e)) > 0) + while ((s < e) && (res= mb_wc(cs, &wc, (uchar *) s, (uchar *) e)) > 0) { my_tosort_utf16(uni_plane, &wc); - n1[0]^= (((n1[0] & 63) + n2[0]) * (wc & 0xFF)) + (n1[0] << 8); - n2[0]+= 3; - n1[0]^= (((n1[0] & 63) + n2[0]) * (wc >> 8)) + (n1[0] << 8); - n2[0]+= 3; + MY_HASH_ADD_16(m1, m2, wc); s+= res; } + *nr1= m1; + *nr2= m2; } @@ -1182,16 +1248,18 @@ my_casedn_utf16(CHARSET_INFO *cs, char *src, size_t srclen, size_t dstlen __attribute__((unused))) { my_wc_t wc; + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; + my_charset_conv_wc_mb wc_mb= cs->cset->wc_mb; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((src < srcend) && - (res= my_utf16_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) + (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0) { my_tolower_utf16(uni_plane, &wc); - if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend)) + if (res != wc_mb(cs, wc, (uchar *) src, (uchar *) srcend)) break; src+= res; } @@ -1207,14 +1275,15 @@ my_strnncoll_utf16(CHARSET_INFO *cs, { int s_res, t_res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; const uchar *se= s + slen; const uchar *te= t + tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while (s < se && t < te) { - s_res= my_utf16_uni(cs, &s_wc, s, se); - t_res= my_utf16_uni(cs, &t_wc, t, te); + s_res= mb_wc(cs, &s_wc, s, se); + t_res= mb_wc(cs, &t_wc, t, te); if (s_res <= 0 || t_res <= 0) { @@ -1271,8 +1340,9 @@ my_strnncollsp_utf16(CHARSET_INFO *cs, { int res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; const uchar *se= s + slen, *te= t + tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT((slen % 2) == 0); DBUG_ASSERT((tlen % 2) == 0); @@ -1283,8 +1353,8 @@ my_strnncollsp_utf16(CHARSET_INFO *cs, while (s < se && t < te) { - int s_res= my_utf16_uni(cs, &s_wc, s, se); - int t_res= my_utf16_uni(cs, &t_wc, t, te); + int s_res= mb_wc(cs, &s_wc, s, se); + int t_res= mb_wc(cs, &t_wc, t, te); if (s_res <= 0 || t_res <= 0) { @@ -1324,7 +1394,7 @@ my_strnncollsp_utf16(CHARSET_INFO *cs, for ( ; s < se; s+= s_res) { - if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0) + if ((s_res= mb_wc(cs, &s_wc, s, se)) < 0) { DBUG_ASSERT(0); return 0; @@ -1338,22 +1408,11 @@ my_strnncollsp_utf16(CHARSET_INFO *cs, static uint -my_ismbchar_utf16(CHARSET_INFO *cs __attribute__((unused)), - const char *b __attribute__((unused)), - const char *e __attribute__((unused))) +my_ismbchar_utf16(CHARSET_INFO *cs, const char *b, const char *e) { - if (b + 2 > e) - return 0; - - if (MY_UTF16_HIGH_HEAD(*b)) - { - return (b + 4 <= e) && MY_UTF16_LOW_HEAD(b[2]) ? 4 : 0; - } - - if (MY_UTF16_LOW_HEAD(*b)) - return 0; - - return 2; + my_wc_t wc; + int res= cs->cset->mb_wc(cs, &wc, (const uchar *) b, (const uchar *) e); + return (uint) (res > 0 ? res : 0); } @@ -1361,6 +1420,7 @@ static uint my_mbcharlen_utf16(CHARSET_INFO *cs __attribute__((unused)), uint c __attribute__((unused))) { + DBUG_ASSERT(0); return MY_UTF16_HIGH_HEAD(c) ? 4 : 2; } @@ -1424,7 +1484,7 @@ my_wildcmp_utf16_ci(CHARSET_INFO *cs, const char *wildstr,const char *wildend, int escape, int w_one, int w_many) { - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, escape, w_one, w_many, uni_plane); } @@ -1449,13 +1509,14 @@ my_strnncoll_utf16_bin(CHARSET_INFO *cs, { int s_res,t_res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; const uchar *se=s+slen; const uchar *te=t+tlen; while ( s < se && t < te ) { - s_res= my_utf16_uni(cs,&s_wc, s, se); - t_res= my_utf16_uni(cs,&t_wc, t, te); + s_res= mb_wc(cs, &s_wc, s, se); + t_res= mb_wc(cs, &t_wc, t, te); if (s_res <= 0 || t_res <= 0) { @@ -1482,6 +1543,7 @@ my_strnncollsp_utf16_bin(CHARSET_INFO *cs, { int res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); + my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; const uchar *se= s + slen, *te= t + tlen; DBUG_ASSERT((slen % 2) == 0); @@ -1493,8 +1555,8 @@ my_strnncollsp_utf16_bin(CHARSET_INFO *cs, while (s < se && t < te) { - int s_res= my_utf16_uni(cs, &s_wc, s, se); - int t_res= my_utf16_uni(cs, &t_wc, t, te); + int s_res= mb_wc(cs, &s_wc, s, se); + int t_res= mb_wc(cs, &t_wc, t, te); if (s_res <= 0 || t_res <= 0) { @@ -1531,7 +1593,7 @@ my_strnncollsp_utf16_bin(CHARSET_INFO *cs, for ( ; s < se; s+= s_res) { - if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0) + if ((s_res= mb_wc(cs, &s_wc, s, se)) < 0) { DBUG_ASSERT(0); return 0; @@ -1545,22 +1607,18 @@ my_strnncollsp_utf16_bin(CHARSET_INFO *cs, static void -my_hash_sort_utf16_bin(CHARSET_INFO *cs __attribute__((unused)), - const uchar *key, size_t len,ulong *nr1, ulong *nr2) +my_hash_sort_utf16_bin(CHARSET_INFO *cs, + const uchar *pos, size_t len, ulong *nr1, ulong *nr2) { - const uchar *pos = key; - - key+= len; - - while (key > pos + 1 && key[-1] == ' ' && key[-2] == '\0') - key-= 2; + const uchar *end= pos + cs->cset->lengthsp(cs, (const char *) pos, len); + register ulong m1= *nr1, m2= *nr2; - for (; pos < (uchar*) key ; pos++) + for ( ; pos < end ; pos++) { - nr1[0]^= (ulong) ((((uint) nr1[0] & 63) + nr2[0]) * - ((uint)*pos)) + (nr1[0] << 8); - nr2[0]+= 3; + MY_HASH_ADD(m1, m2, (uint)*pos); } + *nr1= m1; + *nr2= m2; } @@ -1570,7 +1628,7 @@ static MY_COLLATION_HANDLER my_collation_utf16_general_ci_handler = my_strnncoll_utf16, my_strnncollsp_utf16, my_strnxfrm_unicode, - my_strnxfrmlen_simple, + my_strnxfrmlen_unicode, my_like_range_generic, my_wildcmp_utf16_ci, my_strcasecmp_mb2_or_mb4, @@ -1640,11 +1698,10 @@ struct charset_info_st my_charset_utf16_general_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -1656,6 +1713,7 @@ struct charset_info_st my_charset_utf16_general_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_general_ci_handler }; @@ -1673,11 +1731,10 @@ struct charset_info_st my_charset_utf16_bin= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -1689,10 +1746,181 @@ struct charset_info_st my_charset_utf16_bin= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf16_handler, &my_collation_utf16_bin_handler }; + +static int +my_utf16le_uni(const CHARSET_INFO *cs __attribute__((unused)), + my_wc_t *pwc, const uchar *s, const uchar *e) +{ + my_wc_t lo; + + if (s + 2 > e) + return MY_CS_TOOSMALL2; + + if ((*pwc= uint2korr(s)) < MY_UTF16_SURROGATE_HIGH_FIRST || + (*pwc > MY_UTF16_SURROGATE_LOW_LAST)) + return 2; /* [0000-D7FF,E000-FFFF] */ + + if (*pwc >= MY_UTF16_SURROGATE_LOW_FIRST) + return MY_CS_ILSEQ; /* [DC00-DFFF] Low surrogate part without high part */ + + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + s+= 2; + + if ((lo= uint2korr(s)) < MY_UTF16_SURROGATE_LOW_FIRST || + lo > MY_UTF16_SURROGATE_LOW_LAST) + return MY_CS_ILSEQ; /* Expected low surrogate part, got something else */ + + *pwc= 0x10000 + (((*pwc & 0x3FF) << 10) | (lo & 0x3FF)); + return 4; +} + + +static int +my_uni_utf16le(const CHARSET_INFO *cs __attribute__((unused)), + my_wc_t wc, uchar *s, uchar *e) +{ + uint32 first, second, total; + if (wc < MY_UTF16_SURROGATE_HIGH_FIRST || + (wc > MY_UTF16_SURROGATE_LOW_LAST && + wc <= 0xFFFF)) + { + if (s + 2 > e) + return MY_CS_TOOSMALL2; + int2store(s, wc); + return 2; /* [0000-D7FF,E000-FFFF] */ + } + + if (wc < 0xFFFF || wc > 0x10FFFF) + return MY_CS_ILUNI; /* [D800-DFFF,10FFFF+] */ + + if (s + 4 > e) + return MY_CS_TOOSMALL4; + + wc-= 0x10000; + first= (0xD800 | ((wc >> 10) & 0x3FF)); + second= (0xDC00 | (wc & 0x3FF)); + total= first | (second << 16); + int4store(s, total); + return 4; /* [010000-10FFFF] */ +} + + +static size_t +my_lengthsp_utf16le(const CHARSET_INFO *cs __attribute__((unused)), + const char *ptr, size_t length) +{ + const char *end= ptr + length; + while (end > ptr + 1 && uint2korr(end - 2) == ' ') + end-= 2; + return (size_t) (end - ptr); +} + + +static MY_CHARSET_HANDLER my_charset_utf16le_handler= +{ + NULL, /* init */ + my_ismbchar_utf16, + my_mbcharlen_utf16, + my_numchars_utf16, + my_charpos_utf16, + my_well_formed_len_utf16, + my_lengthsp_utf16le, + my_numcells_mb, + my_utf16le_uni, /* mb_wc */ + my_uni_utf16le, /* wc_mb */ + my_mb_ctype_mb, + my_caseup_str_mb2_or_mb4, + my_casedn_str_mb2_or_mb4, + my_caseup_utf16, + my_casedn_utf16, + my_snprintf_mb2, + my_l10tostr_mb2_or_mb4, + my_ll10tostr_mb2_or_mb4, + my_fill_mb2, + my_strntol_mb2_or_mb4, + my_strntoul_mb2_or_mb4, + my_strntoll_mb2_or_mb4, + my_strntoull_mb2_or_mb4, + my_strntod_mb2_or_mb4, + my_strtoll10_mb2, + my_strntoull10rnd_mb2_or_mb4, + my_scan_mb2 +}; + + +struct charset_info_st my_charset_utf16le_general_ci= +{ + 56,0,0, /* number */ + MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16le", /* cs name */ + "utf16le_general_ci",/* name */ + "UTF-16LE Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16le_handler, + &my_collation_utf16_general_ci_handler +}; + + +struct charset_info_st my_charset_utf16le_bin= +{ + 62,0,0, /* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, + "utf16le", /* cs name */ + "utf16le_bin", /* name */ + "UTF-16LE Unicode", /* comment */ + NULL, /* tailoring */ + NULL, /* ctype */ + NULL, /* to_lower */ + NULL, /* to_upper */ + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_unicase_default, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 1, /* casedn_multiply */ + 2, /* mbminlen */ + 4, /* mbmaxlen */ + 0, /* min_sort_char */ + 0xFFFF, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_utf16le_handler, + &my_collation_utf16_bin_handler +}; + + #endif /* HAVE_CHARSET_utf16 */ @@ -1704,7 +1932,7 @@ my_utf32_uni(CHARSET_INFO *cs __attribute__((unused)), { if (s + 4 > e) return MY_CS_TOOSMALL4; - *pwc= (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]); + *pwc= (((my_wc_t) s[0]) << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]); return 4; } @@ -1725,31 +1953,31 @@ my_uni_utf32(CHARSET_INFO *cs __attribute__((unused)), static inline void -my_tolower_utf32(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_tolower_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].tolower; + MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].tolower; } static inline void -my_toupper_utf32(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_toupper_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].toupper; + MY_UNICASE_CHARACTER *page; + if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].toupper; } static inline void -my_tosort_utf32(MY_UNICASE_INFO *const* uni_plane, my_wc_t *wc) +my_tosort_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256) + if (*wc <= uni_plane->maxchar) { - if (uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].sort; + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= page[*wc & 0xFF].sort; } else { @@ -1766,7 +1994,7 @@ my_caseup_utf32(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((src < srcend) && @@ -1781,22 +2009,15 @@ my_caseup_utf32(CHARSET_INFO *cs, char *src, size_t srclen, } -static inline void -my_hash_add(ulong *n1, ulong *n2, uint ch) -{ - n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8); - n2[0]+= 3; -} - - static void my_hash_sort_utf32(CHARSET_INFO *cs, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { my_wc_t wc; int res; const uchar *e= s + slen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; + register ulong m1= *nr1, m2= *nr2; /* Skip trailing spaces */ while (e > s + 3 && e[-1] == ' ' && !e[-2] && !e[-3] && !e[-4]) @@ -1805,12 +2026,14 @@ my_hash_sort_utf32(CHARSET_INFO *cs, const uchar *s, size_t slen, while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0) { my_tosort_utf32(uni_plane, &wc); - my_hash_add(n1, n2, (uint) (wc >> 24)); - my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF); - my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF); - my_hash_add(n1, n2, (uint) (wc & 0xFF)); + MY_HASH_ADD(m1, m2, (uint) (wc >> 24)); + MY_HASH_ADD(m1, m2, (uint) (wc >> 16) & 0xFF); + MY_HASH_ADD(m1, m2, (uint) (wc >> 8) & 0xFF); + MY_HASH_ADD(m1, m2, (uint) (wc & 0xFF)); s+= res; } + *nr1= m1; + *nr2= m2; } @@ -1822,7 +2045,7 @@ my_casedn_utf32(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) @@ -1845,7 +2068,7 @@ my_strnncoll_utf32(CHARSET_INFO *cs, my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc); const uchar *se= s + slen; const uchar *te= t + tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while (s < se && t < te) { @@ -1909,7 +2132,7 @@ my_strnncollsp_utf32(CHARSET_INFO *cs, int res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); const uchar *se= s + slen, *te= t + tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT((slen % 4) == 0); DBUG_ASSERT((tlen % 4) == 0); @@ -1974,13 +2197,6 @@ my_strnncollsp_utf32(CHARSET_INFO *cs, } -static size_t -my_strnxfrmlen_utf32(CHARSET_INFO *cs __attribute__((unused)), size_t len) -{ - return len / 2; -} - - static uint my_ismbchar_utf32(CHARSET_INFO *cs __attribute__((unused)), const char *b, @@ -2216,7 +2432,7 @@ my_strtoll10_utf32(CHARSET_INFO *cs __attribute__((unused)), if (s == end || s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9) goto end4; k= k * 10 + c; - s+= 2; + s+= 4; *endptr= (char*) s; /* number string should have ended here */ @@ -2357,7 +2573,7 @@ my_wildcmp_utf32_ci(CHARSET_INFO *cs, const char *wildstr, const char *wildend, int escape, int w_one, int w_many) { - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, escape, w_one, w_many, uni_plane); } @@ -2433,7 +2649,7 @@ my_strnncollsp_utf32_bin(CHARSET_INFO *cs __attribute__((unused)), se= s + slen; te= t + tlen; - for (minlen= min(slen, tlen); minlen; minlen-= 4) + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 4) { my_wc_t s_wc= my_utf32_get(s); my_wc_t t_wc= my_utf32_get(t); @@ -2495,7 +2711,7 @@ static MY_COLLATION_HANDLER my_collation_utf32_general_ci_handler = my_strnncoll_utf32, my_strnncollsp_utf32, my_strnxfrm_unicode, - my_strnxfrmlen_utf32, + my_strnxfrmlen_unicode, my_like_range_generic, my_wildcmp_utf32_ci, my_strcasecmp_mb2_or_mb4, @@ -2565,11 +2781,10 @@ struct charset_info_st my_charset_utf32_general_ci= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -2581,6 +2796,7 @@ struct charset_info_st my_charset_utf32_general_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_general_ci_handler }; @@ -2589,7 +2805,7 @@ struct charset_info_st my_charset_utf32_general_ci= struct charset_info_st my_charset_utf32_bin= { 61,0,0, /* number */ - MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII, + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, "utf32", /* cs name */ "utf32_bin", /* name */ "UTF-32 Unicode", /* comment */ @@ -2598,11 +2814,10 @@ struct charset_info_st my_charset_utf32_bin= NULL, /* to_lower */ NULL, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -2614,6 +2829,7 @@ struct charset_info_st my_charset_utf32_bin= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf32_handler, &my_collation_utf32_bin_handler }; @@ -2708,6 +2924,32 @@ static int my_uni_ucs2(CHARSET_INFO *cs __attribute__((unused)) , } +static inline void +my_tolower_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].toupper; +} + + +static inline void +my_tosort_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].sort; +} + static size_t my_caseup_ucs2(CHARSET_INFO *cs, char *src, size_t srclen, char *dst __attribute__((unused)), size_t dstlen __attribute__((unused))) @@ -2715,14 +2957,13 @@ static size_t my_caseup_ucs2(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((src < srcend) && (res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc; + my_toupper_ucs2(uni_plane, &wc); if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend)) break; src+= res; @@ -2732,26 +2973,25 @@ static size_t my_caseup_ucs2(CHARSET_INFO *cs, char *src, size_t srclen, static void my_hash_sort_ucs2(CHARSET_INFO *cs, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { my_wc_t wc; int res; const uchar *e=s+slen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; + register ulong m1= *nr1, m2= *nr2; while (e > s+1 && e[-1] == ' ' && e[-2] == '\0') e-= 2; while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0) { - int plane = (wc>>8) & 0xFF; - wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc; - n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8); - n2[0]+=3; - n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8); - n2[0]+=3; + my_tosort_ucs2(uni_plane, &wc); + MY_HASH_ADD_16(m1, m2, wc); s+=res; } + *nr1= m1; + *nr2= m2; } @@ -2762,14 +3002,13 @@ static size_t my_casedn_ucs2(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int res; char *srcend= src + srclen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src == dst && srclen == dstlen); while ((src < srcend) && (res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc; + my_tolower_ucs2(uni_plane, &wc); if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend)) break; src+= res; @@ -2778,6 +3017,30 @@ static size_t my_casedn_ucs2(CHARSET_INFO *cs, char *src, size_t srclen, } +static void +my_fill_ucs2(CHARSET_INFO *cs __attribute__((unused)), + char *s, size_t l, int fill) +{ + DBUG_ASSERT(fill <= 0xFFFF); +#ifdef WAITING_FOR_GCC_VECTORIZATION_BUG_TO_BE_FIXED + /* + This code with int2store() is known to be faster on some processors, + but crashes on other processors due to a possible bug in GCC's + -ftree-vectorization (which is enabled in -O3) in case of + a non-aligned memory. See here for details: + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58039 + */ + char *last= s + l - 2; + uint16 tmp= (fill >> 8) + ((fill & 0xFF) << 8); /* swap bytes */ + DBUG_ASSERT(fill <= 0xFFFF); + for ( ; s <= last; s+= 2) + int2store(s, tmp); /* store little-endian */ +#else + for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2); +#endif +} + + static int my_strnncoll_ucs2(CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, @@ -2787,11 +3050,10 @@ static int my_strnncoll_ucs2(CHARSET_INFO *cs, my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc); const uchar *se=s+slen; const uchar *te=t+tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while ( s < se && t < te ) { - int plane; s_res=my_ucs2_uni(cs,&s_wc, s, se); t_res=my_ucs2_uni(cs,&t_wc, t, te); @@ -2801,10 +3063,9 @@ static int my_strnncoll_ucs2(CHARSET_INFO *cs, return ((int)s[0]-(int)t[0]); } - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc; - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc; + my_tosort_ucs2(uni_plane, &s_wc); + my_tosort_ucs2(uni_plane, &t_wc); + if ( s_wc != t_wc ) { return s_wc > t_wc ? 1 : -1; @@ -2851,7 +3112,7 @@ static int my_strnncollsp_ucs2(CHARSET_INFO *cs __attribute__((unused)), { const uchar *se, *te; size_t minlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; /* extra safety to make sure the lengths are even numbers */ slen&= ~1; @@ -2860,13 +3121,13 @@ static int my_strnncollsp_ucs2(CHARSET_INFO *cs __attribute__((unused)), se= s + slen; te= t + tlen; - for (minlen= min(slen, tlen); minlen; minlen-= 2) + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 2) { - int s_wc = uni_plane[s[0]] ? (int) uni_plane[s[0]][s[1]].sort : - (((int) s[0]) << 8) + (int) s[1]; + int s_wc = uni_plane->page[s[0]] ? (int) uni_plane->page[s[0]][s[1]].sort : + (((int) s[0]) << 8) + (int) s[1]; - int t_wc = uni_plane[t[0]] ? (int) uni_plane[t[0]][t[1]].sort : - (((int) t[0]) << 8) + (int) t[1]; + int t_wc = uni_plane->page[t[0]] ? (int) uni_plane->page[t[0]][t[1]].sort : + (((int) t[0]) << 8) + (int) t[1]; if ( s_wc != t_wc ) return s_wc > t_wc ? 1 : -1; @@ -2937,7 +3198,7 @@ size_t my_well_formed_len_ucs2(CHARSET_INFO *cs __attribute__((unused)), size_t nbytes= ((size_t) (e-b)) & ~(size_t) 1; *error= 0; nchars*= 2; - return min(nbytes, nchars); + return MY_MIN(nbytes, nchars); } @@ -2947,7 +3208,7 @@ int my_wildcmp_ucs2_ci(CHARSET_INFO *cs, const char *wildstr,const char *wildend, int escape, int w_one, int w_many) { - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, escape,w_one,w_many,uni_plane); } @@ -3012,7 +3273,7 @@ static int my_strnncollsp_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)), se= s + slen; te= t + tlen; - for (minlen= min(slen, tlen); minlen; minlen-= 2) + for (minlen= MY_MIN(slen, tlen); minlen; minlen-= 2) { int s_wc= s[0] * 256 + s[1]; int t_wc= t[0] * 256 + t[1]; @@ -3047,19 +3308,18 @@ static void my_hash_sort_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)), const uchar *key, size_t len,ulong *nr1, ulong *nr2) { - const uchar *pos = key; - - key+= len; + const uchar *end = key + len; + register ulong m1= *nr1, m2= *nr2; - while (key > pos+1 && key[-1] == ' ' && key[-2] == '\0') - key-= 2; + while (end > key+1 && end[-1] == ' ' && end[-2] == '\0') + end-= 2; - for (; pos < (uchar*) key ; pos++) + for (; key < (uchar*) end ; key++) { - nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * - ((uint)*pos)) + (nr1[0] << 8); - nr2[0]+=3; + MY_HASH_ADD(m1, m2, (uint)*key); } + *nr1= m1; + *nr2= m2; } @@ -3069,7 +3329,7 @@ static MY_COLLATION_HANDLER my_collation_ucs2_general_ci_handler = my_strnncoll_ucs2, my_strnncollsp_ucs2, my_strnxfrm_unicode, - my_strnxfrmlen_simple, + my_strnxfrmlen_unicode, my_like_range_generic, my_wildcmp_ucs2_ci, my_strcasecmp_mb2_or_mb4, @@ -3085,7 +3345,7 @@ static MY_COLLATION_HANDLER my_collation_ucs2_bin_handler = my_strnncoll_ucs2_bin, my_strnncollsp_ucs2_bin, my_strnxfrm_unicode, - my_strnxfrmlen_simple, + my_strnxfrmlen_unicode, my_like_range_generic, my_wildcmp_ucs2_bin, my_strcasecmp_mb2_or_mb4, @@ -3115,7 +3375,7 @@ MY_CHARSET_HANDLER my_charset_ucs2_handler= my_snprintf_mb2, my_l10tostr_mb2_or_mb4, my_ll10tostr_mb2_or_mb4, - my_fill_mb2, + my_fill_ucs2, my_strntol_mb2_or_mb4, my_strntoul_mb2_or_mb4, my_strntoll_mb2_or_mb4, @@ -3139,11 +3399,10 @@ struct charset_info_st my_charset_ucs2_general_ci= to_lower_ucs2, /* to_lower */ to_upper_ucs2, /* to_upper */ to_upper_ucs2, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3155,6 +3414,7 @@ struct charset_info_st my_charset_ucs2_general_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_general_ci_handler }; @@ -3172,11 +3432,10 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci= to_lower_ucs2, /* to_lower */ to_upper_ucs2, /* to_upper */ to_upper_ucs2, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_mysql500, /* caseinfo */ + &my_unicase_mysql500, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3188,6 +3447,7 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_general_ci_handler }; @@ -3205,11 +3465,10 @@ struct charset_info_st my_charset_ucs2_bin= to_lower_ucs2, /* to_lower */ to_upper_ucs2, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3221,6 +3480,7 @@ struct charset_info_st my_charset_ucs2_bin= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_ucs2_handler, &my_collation_ucs2_bin_handler }; diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index 46d4819b46e..e7dbefe6c1d 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -203,10 +203,10 @@ static uint mbcharlen_ujis(CHARSET_INFO *cs __attribute__((unused)),uint c) /* EUC-JP encoding subcomponents: - [x00-x7F] # ASCII/JIS-Roman (one-byte/character) - [x8E][xA0-xDF] # half-width katakana (two bytes/char) - [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) - [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) + [x00-x7F] # ASCII/JIS-Roman (one-byte/character) + [x8E][xA1-xDF] # half-width katakana (two bytes/char) + [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char) + [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char) */ static @@ -231,15 +231,15 @@ size_t my_well_formed_len_ujis(CHARSET_INFO *cs __attribute__((unused)), return (size_t) (chbeg - beg); /* unexpected EOL */ } - if (ch == 0x8E) /* [x8E][xA0-xDF] */ + if (isujis_ss2(ch)) /* [x8E][xA1-xDF] */ { - if (*b >= 0xA0 && *b <= 0xDF) + if (iskata(*b)) continue; *error= 1; return (size_t) (chbeg - beg); /* invalid sequence */ } - if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */ + if (isujis_ss3(ch)) /* [x8F][xA1-xFE][xA1-xFE] */ { ch= *b++; if (b >= (uchar*) end) @@ -249,8 +249,7 @@ size_t my_well_formed_len_ujis(CHARSET_INFO *cs __attribute__((unused)), } } - if (ch >= 0xA1 && ch <= 0xFE && - *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */ + if (isujis(ch) && isujis(*b)) /* [xA1-xFE][xA1-xFE] */ continue; *error= 1; return (size_t) (chbeg - beg); /* invalid sequence */ @@ -65988,7 +65987,7 @@ my_wc_mb_euc_jp(CHARSET_INFO *cs __attribute__((unused)), /* Case info pages for JIS-X-0208 range */ -static MY_UNICASE_INFO cA2[256]= +static MY_UNICASE_CHARACTER cA2[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66109,7 +66108,7 @@ static MY_UNICASE_INFO cA2[256]= }; -static MY_UNICASE_INFO cA3[256]= +static MY_UNICASE_CHARACTER cA3[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66230,7 +66229,7 @@ static MY_UNICASE_INFO cA3[256]= }; -static MY_UNICASE_INFO cA6[256]= +static MY_UNICASE_CHARACTER cA6[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66351,7 +66350,7 @@ static MY_UNICASE_INFO cA6[256]= }; -static MY_UNICASE_INFO cA7[256]= +static MY_UNICASE_CHARACTER cA7[256]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66473,7 +66472,7 @@ static MY_UNICASE_INFO cA7[256]= /* Case info pages for JIS-X-0212 range */ -static MY_UNICASE_INFO c8FA6[]= +static MY_UNICASE_CHARACTER c8FA6[]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66594,7 +66593,7 @@ static MY_UNICASE_INFO c8FA6[]= }; -static MY_UNICASE_INFO c8FA7[]= +static MY_UNICASE_CHARACTER c8FA7[]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66715,7 +66714,7 @@ static MY_UNICASE_INFO c8FA7[]= }; -static MY_UNICASE_INFO c8FA9[]= +static MY_UNICASE_CHARACTER c8FA9[]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66836,7 +66835,7 @@ static MY_UNICASE_INFO c8FA9[]= }; -static MY_UNICASE_INFO c8FAA[]= +static MY_UNICASE_CHARACTER c8FAA[]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -66957,7 +66956,7 @@ static MY_UNICASE_INFO c8FAA[]= }; -static MY_UNICASE_INFO c8FAB[]= +static MY_UNICASE_CHARACTER c8FAB[]= { {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */ {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, @@ -67078,7 +67077,7 @@ static MY_UNICASE_INFO c8FAB[]= }; -static MY_UNICASE_INFO *my_caseinfo_ujis[512]= +static MY_UNICASE_CHARACTER *my_caseinfo_pages_ujis[512]= { /* JIS-X-0208 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */ @@ -67148,6 +67147,15 @@ static MY_UNICASE_INFO *my_caseinfo_ujis[512]= NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; + +static MY_UNICASE_INFO my_caseinfo_ujis= +{ + 0x0FFFF, + my_caseinfo_pages_ujis +}; + + + #endif /* HAVE_CHARSET_ujis */ @@ -67158,11 +67166,11 @@ static MY_UNICASE_INFO *my_caseinfo_ujis[512]= UJIS and EUCJPMS share the same UPPER/LOWER functions. */ -static MY_UNICASE_INFO* +static MY_UNICASE_CHARACTER* get_case_info_for_ch(CHARSET_INFO *cs, uint plane, uint page, uint offs) { - MY_UNICASE_INFO *p; - return (p= cs->caseinfo[page + plane * 256]) ? &p[offs & 0xFF] : NULL; + MY_UNICASE_CHARACTER *p; + return (p= cs->caseinfo->page[page + plane * 256]) ? &p[offs & 0xFF] : NULL; } @@ -67183,7 +67191,7 @@ my_casefold_ujis(CHARSET_INFO *cs, size_t mblen= my_ismbchar(cs, src, srcend); if (mblen) { - MY_UNICASE_INFO *ch; + MY_UNICASE_CHARACTER *ch; ch= (mblen == 2) ? get_case_info_for_ch(cs, 0, (uchar) src[0], (uchar) src[1]) : get_case_info_for_ch(cs, 1, (uchar) src[1], (uchar) src[2]); @@ -67249,7 +67257,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = NULL, /* init */ my_strnncoll_simple,/* strnncoll */ my_strnncollsp_simple, - my_strnxfrm_simple, /* strnxfrm */ + my_strnxfrm_mb, /* strnxfrm */ my_strnxfrmlen_simple, my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ @@ -67304,11 +67312,10 @@ struct charset_info_st my_charset_ujis_japanese_ci= to_lower_ujis, to_upper_ujis, sort_order_ujis, - NULL, /* sort_order_big*/ - NULL, /* contractions */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_ujis, /* caseinfo */ + &my_caseinfo_ujis, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -67320,6 +67327,7 @@ struct charset_info_st my_charset_ujis_japanese_ci= 0xFEFE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_ci_handler }; @@ -67337,11 +67345,10 @@ struct charset_info_st my_charset_ujis_bin= to_lower_ujis, to_upper_ujis, NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_caseinfo_ujis, /* caseinfo */ + &my_caseinfo_ujis, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -67353,6 +67360,7 @@ struct charset_info_st my_charset_ujis_bin= 0xFEFE, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_handler, &my_collation_mb_bin_handler }; diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index f2782657bea..b4fc6297afd 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -101,7 +101,7 @@ int my_valid_mbcharlen_utf8mb3(const uchar *s, const uchar *e) #include "my_uctype.h" -static MY_UNICASE_INFO plane00[]={ +static MY_UNICASE_CHARACTER plane00[]={ {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, @@ -237,7 +237,7 @@ static MY_UNICASE_INFO plane00[]={ Almost similar to plane00, but maps sorting order for U+00DF to 0x00DF instead of 0x0053. */ -static MY_UNICASE_INFO plane00_mysql500[]={ +static MY_UNICASE_CHARACTER plane00_mysql500[]={ {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, @@ -369,7 +369,7 @@ static MY_UNICASE_INFO plane00_mysql500[]={ }; -static MY_UNICASE_INFO plane01[]={ +static MY_UNICASE_CHARACTER plane01[]={ {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, @@ -500,7 +500,7 @@ static MY_UNICASE_INFO plane01[]={ {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} }; -static MY_UNICASE_INFO plane02[]={ +static MY_UNICASE_CHARACTER plane02[]={ {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, @@ -631,7 +631,7 @@ static MY_UNICASE_INFO plane02[]={ {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} }; -static MY_UNICASE_INFO plane03[]={ +static MY_UNICASE_CHARACTER plane03[]={ {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, @@ -762,7 +762,7 @@ static MY_UNICASE_INFO plane03[]={ {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF} }; -static MY_UNICASE_INFO plane04[]={ +static MY_UNICASE_CHARACTER plane04[]={ {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, @@ -893,7 +893,7 @@ static MY_UNICASE_INFO plane04[]={ {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF} }; -static MY_UNICASE_INFO plane05[]={ +static MY_UNICASE_CHARACTER plane05[]={ {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501}, {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503}, {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505}, @@ -1024,7 +1024,7 @@ static MY_UNICASE_INFO plane05[]={ {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} }; -static MY_UNICASE_INFO plane1E[]={ +static MY_UNICASE_CHARACTER plane1E[]={ {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, @@ -1155,7 +1155,7 @@ static MY_UNICASE_INFO plane1E[]={ {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF} }; -static MY_UNICASE_INFO plane1F[]={ +static MY_UNICASE_CHARACTER plane1F[]={ {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, @@ -1286,7 +1286,7 @@ static MY_UNICASE_INFO plane1F[]={ {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} }; -static MY_UNICASE_INFO plane21[]={ +static MY_UNICASE_CHARACTER plane21[]={ {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, @@ -1417,7 +1417,7 @@ static MY_UNICASE_INFO plane21[]={ {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} }; -static MY_UNICASE_INFO plane24[]={ +static MY_UNICASE_CHARACTER plane24[]={ {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, @@ -1548,7 +1548,7 @@ static MY_UNICASE_INFO plane24[]={ {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} }; -static MY_UNICASE_INFO planeFF[]={ +static MY_UNICASE_CHARACTER planeFF[]={ {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, @@ -1679,7 +1679,9 @@ static MY_UNICASE_INFO planeFF[]={ {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} }; -MY_UNICASE_INFO *const my_unicase_default[256]={ + +static MY_UNICASE_CHARACTER *my_unicase_pages_default[256]= +{ plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1712,14 +1714,20 @@ MY_UNICASE_INFO *const my_unicase_default[256]={ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF +}; + +MY_UNICASE_INFO my_unicase_default= +{ + 0xFFFF, + my_unicase_pages_default }; /* Reproduce old utf8_general_ci behaviour before we fixed Bug#27877. */ -MY_UNICASE_INFO *const my_unicase_mysql500[256]={ +MY_UNICASE_CHARACTER *my_unicase_pages_mysql500[256]={ plane00_mysql500, plane01, plane02, plane03, plane04, plane05, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1757,6 +1765,13 @@ MY_UNICASE_INFO *const my_unicase_mysql500[256]={ }; +MY_UNICASE_INFO my_unicase_mysql500= +{ + 0xFFFF, + my_unicase_pages_mysql500 +}; + + /* Turkish lower/upper mapping: 1. LOWER(0x0049 LATIN CAPITAL LETTER I) -> @@ -1765,7 +1780,7 @@ MY_UNICASE_INFO *const my_unicase_mysql500[256]={ 0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */ -static MY_UNICASE_INFO turk00[]= +static MY_UNICASE_CHARACTER turk00[]= { {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, @@ -1899,7 +1914,7 @@ static MY_UNICASE_INFO turk00[]= -MY_UNICASE_INFO *const my_unicase_turkish[256]= +static MY_UNICASE_CHARACTER *my_unicase_pages_turkish[256]= { turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -1936,14 +1951,2428 @@ MY_UNICASE_INFO *const my_unicase_turkish[256]= }; +MY_UNICASE_INFO my_unicase_turkish= +{ + 0xFFFF, + my_unicase_pages_turkish +}; + + +/* Unicode-5.2.0 case folding information */ +static MY_UNICASE_CHARACTER u520p00[]={ + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, /* 0000 */ + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, /* 0002 */ + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, /* 0004 */ + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, /* 0006 */ + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, /* 0008 */ + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, /* 000A */ + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, /* 000C */ + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, /* 000E */ + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, /* 0010 */ + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, /* 0012 */ + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, /* 0014 */ + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, /* 0016 */ + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, /* 0018 */ + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, /* 001A */ + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, /* 001C */ + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, /* 001E */ + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, /* 0020 */ + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, /* 0022 */ + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, /* 0024 */ + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, /* 0026 */ + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, /* 0028 */ + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, /* 002A */ + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, /* 002C */ + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, /* 002E */ + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, /* 0030 */ + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, /* 0032 */ + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, /* 0034 */ + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, /* 0036 */ + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, /* 0038 */ + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, /* 003A */ + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, /* 003C */ + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, /* 003E */ + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, /* 0040 */ + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0042 */ + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0044 */ + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0046 */ + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0048 */ + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 004A */ + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 004C */ + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 004E */ + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0050 */ + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0052 */ + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0054 */ + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0056 */ + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0058 */ + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, /* 005A */ + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, /* 005C */ + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, /* 005E */ + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, /* 0060 */ + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0062 */ + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0064 */ + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0066 */ + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0068 */ + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 006A */ + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 006C */ + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 006E */ + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0070 */ + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0072 */ + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0074 */ + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0076 */ + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0078 */ + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, /* 007A */ + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, /* 007C */ + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, /* 007E */ + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, /* 0080 */ + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, /* 0082 */ + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, /* 0084 */ + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, /* 0086 */ + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, /* 0088 */ + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, /* 008A */ + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, /* 008C */ + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, /* 008E */ + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, /* 0090 */ + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, /* 0092 */ + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, /* 0094 */ + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, /* 0096 */ + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, /* 0098 */ + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, /* 009A */ + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, /* 009C */ + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, /* 009E */ + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, /* 00A0 */ + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, /* 00A2 */ + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, /* 00A4 */ + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, /* 00A6 */ + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, /* 00A8 */ + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, /* 00AA */ + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, /* 00AC */ + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, /* 00AE */ + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, /* 00B0 */ + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, /* 00B2 */ + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, /* 00B4 */ + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, /* 00B6 */ + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, /* 00B8 */ + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, /* 00BA */ + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, /* 00BC */ + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, /* 00BE */ + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00C0 */ + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00C2 */ + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00C4 */ + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00C6 */ + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00C8 */ + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00CA */ + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00CC */ + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00CE */ + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00D0 */ + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00D2 */ + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00D4 */ + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, /* 00D6 */ + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00D8 */ + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00DA */ + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00DC */ + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, /* 00DE */ + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00E0 */ + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00E2 */ + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00E4 */ + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00E6 */ + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00E8 */ + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00EA */ + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00EC */ + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00EE */ + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00F0 */ + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00F2 */ + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00F4 */ + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, /* 00F6 */ + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00F8 */ + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00FA */ + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00FC */ + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} /* 00FE */ +}; + +static MY_UNICASE_CHARACTER u520p01[]={ + {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, /* 0100 */ + {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, /* 0102 */ + {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, /* 0104 */ + {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, /* 0106 */ + {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, /* 0108 */ + {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, /* 010A */ + {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, /* 010C */ + {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, /* 010E */ + {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, /* 0110 */ + {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, /* 0112 */ + {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, /* 0114 */ + {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, /* 0116 */ + {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, /* 0118 */ + {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, /* 011A */ + {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, /* 011C */ + {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, /* 011E */ + {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, /* 0120 */ + {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, /* 0122 */ + {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, /* 0124 */ + {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, /* 0126 */ + {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, /* 0128 */ + {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, /* 012A */ + {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, /* 012C */ + {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, /* 012E */ + {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, /* 0130 */ + {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, /* 0132 */ + {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, /* 0134 */ + {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, /* 0136 */ + {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, /* 0138 */ + {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, /* 013A */ + {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, /* 013C */ + {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, /* 013E */ + {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, /* 0140 */ + {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, /* 0142 */ + {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, /* 0144 */ + {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, /* 0146 */ + {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, /* 0148 */ + {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, /* 014A */ + {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, /* 014C */ + {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, /* 014E */ + {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, /* 0150 */ + {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, /* 0152 */ + {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, /* 0154 */ + {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, /* 0156 */ + {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, /* 0158 */ + {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, /* 015A */ + {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, /* 015C */ + {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, /* 015E */ + {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, /* 0160 */ + {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, /* 0162 */ + {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, /* 0164 */ + {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, /* 0166 */ + {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, /* 0168 */ + {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, /* 016A */ + {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, /* 016C */ + {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, /* 016E */ + {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, /* 0170 */ + {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, /* 0172 */ + {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, /* 0174 */ + {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, /* 0176 */ + {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, /* 0178 */ + {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, /* 017A */ + {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, /* 017C */ + {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, /* 017E */ + {0x0243,0x0180,0x0243}, {0x0181,0x0253,0x0181}, /* 0180 */ + {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, /* 0182 */ + {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, /* 0184 */ + {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, /* 0186 */ + {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, /* 0188 */ + {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, /* 018A */ + {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, /* 018C */ + {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, /* 018E */ + {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, /* 0190 */ + {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, /* 0192 */ + {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, /* 0194 */ + {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, /* 0196 */ + {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, /* 0198 */ + {0x023D,0x019A,0x023D}, {0x019B,0x019B,0x019B}, /* 019A */ + {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, /* 019C */ + {0x0220,0x019E,0x0220}, {0x019F,0x0275,0x019F}, /* 019E */ + {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, /* 01A0 */ + {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, /* 01A2 */ + {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, /* 01A4 */ + {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, /* 01A6 */ + {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, /* 01A8 */ + {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, /* 01AA */ + {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, /* 01AC */ + {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, /* 01AE */ + {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, /* 01B0 */ + {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, /* 01B2 */ + {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, /* 01B4 */ + {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, /* 01B6 */ + {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, /* 01B8 */ + {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, /* 01BA */ + {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, /* 01BC */ + {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, /* 01BE */ + {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, /* 01C0 */ + {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, /* 01C2 */ + {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, /* 01C4 */ + {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, /* 01C6 */ + {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, /* 01C8 */ + {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, /* 01CA */ + {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, /* 01CC */ + {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, /* 01CE */ + {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, /* 01D0 */ + {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, /* 01D2 */ + {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, /* 01D4 */ + {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, /* 01D6 */ + {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, /* 01D8 */ + {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, /* 01DA */ + {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, /* 01DC */ + {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, /* 01DE */ + {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, /* 01E0 */ + {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, /* 01E2 */ + {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, /* 01E4 */ + {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, /* 01E6 */ + {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, /* 01E8 */ + {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, /* 01EA */ + {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, /* 01EC */ + {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, /* 01EE */ + {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, /* 01F0 */ + {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, /* 01F2 */ + {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, /* 01F4 */ + {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, /* 01F6 */ + {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, /* 01F8 */ + {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, /* 01FA */ + {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, /* 01FC */ + {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} /* 01FE */ +}; + +static MY_UNICASE_CHARACTER u520p02[]={ + {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, /* 0200 */ + {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, /* 0202 */ + {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, /* 0204 */ + {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, /* 0206 */ + {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, /* 0208 */ + {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, /* 020A */ + {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, /* 020C */ + {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, /* 020E */ + {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, /* 0210 */ + {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, /* 0212 */ + {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, /* 0214 */ + {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, /* 0216 */ + {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, /* 0218 */ + {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, /* 021A */ + {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, /* 021C */ + {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, /* 021E */ + {0x0220,0x019E,0x0220}, {0x0221,0x0221,0x0221}, /* 0220 */ + {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, /* 0222 */ + {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, /* 0224 */ + {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, /* 0226 */ + {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, /* 0228 */ + {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, /* 022A */ + {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, /* 022C */ + {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, /* 022E */ + {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, /* 0230 */ + {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, /* 0232 */ + {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, /* 0234 */ + {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, /* 0236 */ + {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, /* 0238 */ + {0x023A,0x2C65,0x023A}, {0x023B,0x023C,0x023B}, /* 023A */ + {0x023B,0x023C,0x023B}, {0x023D,0x019A,0x023D}, /* 023C */ + {0x023E,0x2C66,0x023E}, {0x2C7E,0x023F,0x2C7E}, /* 023E */ + {0x2C7F,0x0240,0x2C7F}, {0x0241,0x0242,0x0241}, /* 0240 */ + {0x0241,0x0242,0x0241}, {0x0243,0x0180,0x0243}, /* 0242 */ + {0x0244,0x0289,0x0244}, {0x0245,0x028C,0x0245}, /* 0244 */ + {0x0246,0x0247,0x0246}, {0x0246,0x0247,0x0246}, /* 0246 */ + {0x0248,0x0249,0x0248}, {0x0248,0x0249,0x0248}, /* 0248 */ + {0x024A,0x024B,0x024A}, {0x024A,0x024B,0x024A}, /* 024A */ + {0x024C,0x024D,0x024C}, {0x024C,0x024D,0x024C}, /* 024C */ + {0x024E,0x024F,0x024E}, {0x024E,0x024F,0x024E}, /* 024E */ + {0x2C6F,0x0250,0x2C6F}, {0x2C6D,0x0251,0x2C6D}, /* 0250 */ + {0x2C70,0x0252,0x2C70}, {0x0181,0x0253,0x0181}, /* 0252 */ + {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, /* 0254 */ + {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, /* 0256 */ + {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, /* 0258 */ + {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, /* 025A */ + {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, /* 025C */ + {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, /* 025E */ + {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, /* 0260 */ + {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, /* 0262 */ + {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, /* 0264 */ + {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, /* 0266 */ + {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, /* 0268 */ + {0x026A,0x026A,0x026A}, {0x2C62,0x026B,0x2C62}, /* 026A */ + {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, /* 026C */ + {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, /* 026E */ + {0x0270,0x0270,0x0270}, {0x2C6E,0x0271,0x2C6E}, /* 0270 */ + {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, /* 0272 */ + {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, /* 0274 */ + {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, /* 0276 */ + {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, /* 0278 */ + {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, /* 027A */ + {0x027C,0x027C,0x027C}, {0x2C64,0x027D,0x2C64}, /* 027C */ + {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, /* 027E */ + {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, /* 0280 */ + {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, /* 0282 */ + {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, /* 0284 */ + {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, /* 0286 */ + {0x01AE,0x0288,0x01AE}, {0x0244,0x0289,0x0244}, /* 0288 */ + {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, /* 028A */ + {0x0245,0x028C,0x0245}, {0x028D,0x028D,0x028D}, /* 028C */ + {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, /* 028E */ + {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, /* 0290 */ + {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, /* 0292 */ + {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, /* 0294 */ + {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, /* 0296 */ + {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, /* 0298 */ + {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, /* 029A */ + {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, /* 029C */ + {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, /* 029E */ + {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, /* 02A0 */ + {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, /* 02A2 */ + {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, /* 02A4 */ + {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, /* 02A6 */ + {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, /* 02A8 */ + {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, /* 02AA */ + {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, /* 02AC */ + {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, /* 02AE */ + {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, /* 02B0 */ + {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, /* 02B2 */ + {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, /* 02B4 */ + {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, /* 02B6 */ + {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, /* 02B8 */ + {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, /* 02BA */ + {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, /* 02BC */ + {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, /* 02BE */ + {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, /* 02C0 */ + {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, /* 02C2 */ + {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, /* 02C4 */ + {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, /* 02C6 */ + {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, /* 02C8 */ + {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, /* 02CA */ + {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, /* 02CC */ + {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, /* 02CE */ + {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, /* 02D0 */ + {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, /* 02D2 */ + {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, /* 02D4 */ + {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, /* 02D6 */ + {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, /* 02D8 */ + {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, /* 02DA */ + {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, /* 02DC */ + {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, /* 02DE */ + {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, /* 02E0 */ + {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, /* 02E2 */ + {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, /* 02E4 */ + {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, /* 02E6 */ + {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, /* 02E8 */ + {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, /* 02EA */ + {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, /* 02EC */ + {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, /* 02EE */ + {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, /* 02F0 */ + {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, /* 02F2 */ + {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, /* 02F4 */ + {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, /* 02F6 */ + {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, /* 02F8 */ + {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, /* 02FA */ + {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, /* 02FC */ + {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} /* 02FE */ +}; + +static MY_UNICASE_CHARACTER u520p03[]={ + {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, /* 0300 */ + {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, /* 0302 */ + {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, /* 0304 */ + {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, /* 0306 */ + {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, /* 0308 */ + {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, /* 030A */ + {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, /* 030C */ + {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, /* 030E */ + {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, /* 0310 */ + {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, /* 0312 */ + {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, /* 0314 */ + {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, /* 0316 */ + {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, /* 0318 */ + {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, /* 031A */ + {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, /* 031C */ + {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, /* 031E */ + {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, /* 0320 */ + {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, /* 0322 */ + {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, /* 0324 */ + {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, /* 0326 */ + {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, /* 0328 */ + {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, /* 032A */ + {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, /* 032C */ + {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, /* 032E */ + {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, /* 0330 */ + {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, /* 0332 */ + {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, /* 0334 */ + {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, /* 0336 */ + {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, /* 0338 */ + {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, /* 033A */ + {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, /* 033C */ + {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, /* 033E */ + {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, /* 0340 */ + {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, /* 0342 */ + {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, /* 0344 */ + {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, /* 0346 */ + {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, /* 0348 */ + {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, /* 034A */ + {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, /* 034C */ + {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, /* 034E */ + {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, /* 0350 */ + {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, /* 0352 */ + {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, /* 0354 */ + {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, /* 0356 */ + {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, /* 0358 */ + {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, /* 035A */ + {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, /* 035C */ + {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, /* 035E */ + {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, /* 0360 */ + {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, /* 0362 */ + {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, /* 0364 */ + {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, /* 0366 */ + {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, /* 0368 */ + {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, /* 036A */ + {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, /* 036C */ + {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, /* 036E */ + {0x0370,0x0371,0x0370}, {0x0370,0x0371,0x0370}, /* 0370 */ + {0x0372,0x0373,0x0372}, {0x0372,0x0373,0x0372}, /* 0372 */ + {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, /* 0374 */ + {0x0376,0x0377,0x0376}, {0x0376,0x0377,0x0376}, /* 0376 */ + {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, /* 0378 */ + {0x037A,0x037A,0x037A}, {0x03FD,0x037B,0x03FD}, /* 037A */ + {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF}, /* 037C */ + {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, /* 037E */ + {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, /* 0380 */ + {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, /* 0382 */ + {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, /* 0384 */ + {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, /* 0386 */ + {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, /* 0388 */ + {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, /* 038A */ + {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, /* 038C */ + {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, /* 038E */ + {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, /* 0390 */ + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 0392 */ + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 0394 */ + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 0396 */ + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 0398 */ + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 039A */ + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 039C */ + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 039E */ + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03A0 */ + {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, /* 03A2 */ + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03A4 */ + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03A6 */ + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03A8 */ + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03AA */ + {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, /* 03AC */ + {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, /* 03AE */ + {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, /* 03B0 */ + {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 03B2 */ + {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 03B4 */ + {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 03B6 */ + {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 03B8 */ + {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 03BA */ + {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 03BC */ + {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 03BE */ + {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03C0 */ + {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, /* 03C2 */ + {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03C4 */ + {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03C6 */ + {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03C8 */ + {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03CA */ + {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, /* 03CC */ + {0x038F,0x03CE,0x03A9}, {0x03CF,0x03D7,0x03CF}, /* 03CE */ + {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, /* 03D0 */ + {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, /* 03D2 */ + {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, /* 03D4 */ + {0x03A0,0x03D6,0x03A0}, {0x03CF,0x03D7,0x03CF}, /* 03D6 */ + {0x03D8,0x03D9,0x03D8}, {0x03D8,0x03D9,0x03D8}, /* 03D8 */ + {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, /* 03DA */ + {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, /* 03DC */ + {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, /* 03DE */ + {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, /* 03E0 */ + {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, /* 03E2 */ + {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, /* 03E4 */ + {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, /* 03E6 */ + {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, /* 03E8 */ + {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, /* 03EA */ + {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, /* 03EC */ + {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, /* 03EE */ + {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, /* 03F0 */ + {0x03F9,0x03F2,0x03F9}, {0x03F3,0x03F3,0x03F3}, /* 03F2 */ + {0x03F4,0x03B8,0x03F4}, {0x0395,0x03F5,0x0395}, /* 03F4 */ + {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F8,0x03F7}, /* 03F6 */ + {0x03F7,0x03F8,0x03F7}, {0x03F9,0x03F2,0x03F9}, /* 03F8 */ + {0x03FA,0x03FB,0x03FA}, {0x03FA,0x03FB,0x03FA}, /* 03FA */ + {0x03FC,0x03FC,0x03FC}, {0x03FD,0x037B,0x03FD}, /* 03FC */ + {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF} /* 03FE */ +}; + +static MY_UNICASE_CHARACTER u520p04[]={ + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0400 */ + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0402 */ + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0404 */ + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0406 */ + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0408 */ + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 040A */ + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 040C */ + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 040E */ + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0410 */ + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0412 */ + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0414 */ + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0416 */ + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0418 */ + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 041A */ + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 041C */ + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 041E */ + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0420 */ + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0422 */ + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0424 */ + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0426 */ + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0428 */ + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 042A */ + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 042C */ + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 042E */ + {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0430 */ + {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0432 */ + {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0434 */ + {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0436 */ + {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0438 */ + {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 043A */ + {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 043C */ + {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 043E */ + {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0440 */ + {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0442 */ + {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0444 */ + {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0446 */ + {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0448 */ + {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 044A */ + {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 044C */ + {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 044E */ + {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0450 */ + {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0452 */ + {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0454 */ + {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0456 */ + {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0458 */ + {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 045A */ + {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 045C */ + {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 045E */ + {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, /* 0460 */ + {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, /* 0462 */ + {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, /* 0464 */ + {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, /* 0466 */ + {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, /* 0468 */ + {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, /* 046A */ + {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, /* 046C */ + {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, /* 046E */ + {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, /* 0470 */ + {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, /* 0472 */ + {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, /* 0474 */ + {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, /* 0476 */ + {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, /* 0478 */ + {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, /* 047A */ + {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, /* 047C */ + {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, /* 047E */ + {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, /* 0480 */ + {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, /* 0482 */ + {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, /* 0484 */ + {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, /* 0486 */ + {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, /* 0488 */ + {0x048A,0x048B,0x048A}, {0x048A,0x048B,0x048A}, /* 048A */ + {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, /* 048C */ + {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, /* 048E */ + {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, /* 0490 */ + {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, /* 0492 */ + {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, /* 0494 */ + {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, /* 0496 */ + {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, /* 0498 */ + {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, /* 049A */ + {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, /* 049C */ + {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, /* 049E */ + {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, /* 04A0 */ + {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, /* 04A2 */ + {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, /* 04A4 */ + {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, /* 04A6 */ + {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, /* 04A8 */ + {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, /* 04AA */ + {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, /* 04AC */ + {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, /* 04AE */ + {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, /* 04B0 */ + {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, /* 04B2 */ + {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, /* 04B4 */ + {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, /* 04B6 */ + {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, /* 04B8 */ + {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, /* 04BA */ + {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, /* 04BC */ + {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, /* 04BE */ + {0x04C0,0x04CF,0x04C0}, {0x04C1,0x04C2,0x0416}, /* 04C0 */ + {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, /* 04C2 */ + {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C6,0x04C5}, /* 04C4 */ + {0x04C5,0x04C6,0x04C5}, {0x04C7,0x04C8,0x04C7}, /* 04C6 */ + {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04CA,0x04C9}, /* 04C8 */ + {0x04C9,0x04CA,0x04C9}, {0x04CB,0x04CC,0x04CB}, /* 04CA */ + {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CE,0x04CD}, /* 04CC */ + {0x04CD,0x04CE,0x04CD}, {0x04C0,0x04CF,0x04C0}, /* 04CE */ + {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, /* 04D0 */ + {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, /* 04D2 */ + {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, /* 04D4 */ + {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, /* 04D6 */ + {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, /* 04D8 */ + {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, /* 04DA */ + {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, /* 04DC */ + {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, /* 04DE */ + {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, /* 04E0 */ + {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, /* 04E2 */ + {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, /* 04E4 */ + {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, /* 04E6 */ + {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, /* 04E8 */ + {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, /* 04EA */ + {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, /* 04EC */ + {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, /* 04EE */ + {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, /* 04F0 */ + {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, /* 04F2 */ + {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, /* 04F4 */ + {0x04F6,0x04F7,0x04F6}, {0x04F6,0x04F7,0x04F6}, /* 04F6 */ + {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, /* 04F8 */ + {0x04FA,0x04FB,0x04FA}, {0x04FA,0x04FB,0x04FA}, /* 04FA */ + {0x04FC,0x04FD,0x04FC}, {0x04FC,0x04FD,0x04FC}, /* 04FC */ + {0x04FE,0x04FF,0x04FE}, {0x04FE,0x04FF,0x04FE} /* 04FE */ +}; + +static MY_UNICASE_CHARACTER u520p05[]={ + {0x0500,0x0501,0x0500}, {0x0500,0x0501,0x0500}, /* 0500 */ + {0x0502,0x0503,0x0502}, {0x0502,0x0503,0x0502}, /* 0502 */ + {0x0504,0x0505,0x0504}, {0x0504,0x0505,0x0504}, /* 0504 */ + {0x0506,0x0507,0x0506}, {0x0506,0x0507,0x0506}, /* 0506 */ + {0x0508,0x0509,0x0508}, {0x0508,0x0509,0x0508}, /* 0508 */ + {0x050A,0x050B,0x050A}, {0x050A,0x050B,0x050A}, /* 050A */ + {0x050C,0x050D,0x050C}, {0x050C,0x050D,0x050C}, /* 050C */ + {0x050E,0x050F,0x050E}, {0x050E,0x050F,0x050E}, /* 050E */ + {0x0510,0x0511,0x0510}, {0x0510,0x0511,0x0510}, /* 0510 */ + {0x0512,0x0513,0x0512}, {0x0512,0x0513,0x0512}, /* 0512 */ + {0x0514,0x0515,0x0514}, {0x0514,0x0515,0x0514}, /* 0514 */ + {0x0516,0x0517,0x0516}, {0x0516,0x0517,0x0516}, /* 0516 */ + {0x0518,0x0519,0x0518}, {0x0518,0x0519,0x0518}, /* 0518 */ + {0x051A,0x051B,0x051A}, {0x051A,0x051B,0x051A}, /* 051A */ + {0x051C,0x051D,0x051C}, {0x051C,0x051D,0x051C}, /* 051C */ + {0x051E,0x051F,0x051E}, {0x051E,0x051F,0x051E}, /* 051E */ + {0x0520,0x0521,0x0520}, {0x0520,0x0521,0x0520}, /* 0520 */ + {0x0522,0x0523,0x0522}, {0x0522,0x0523,0x0522}, /* 0522 */ + {0x0524,0x0525,0x0524}, {0x0524,0x0525,0x0524}, /* 0524 */ + {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, /* 0526 */ + {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, /* 0528 */ + {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, /* 052A */ + {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, /* 052C */ + {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, /* 052E */ + {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, /* 0530 */ + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0532 */ + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0534 */ + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0536 */ + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0538 */ + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 053A */ + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 053C */ + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 053E */ + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0540 */ + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0542 */ + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0544 */ + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0546 */ + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0548 */ + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 054A */ + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 054C */ + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 054E */ + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0550 */ + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0552 */ + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0554 */ + {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, /* 0556 */ + {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, /* 0558 */ + {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, /* 055A */ + {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, /* 055C */ + {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, /* 055E */ + {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, /* 0560 */ + {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0562 */ + {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0564 */ + {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0566 */ + {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0568 */ + {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 056A */ + {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 056C */ + {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 056E */ + {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0570 */ + {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0572 */ + {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0574 */ + {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0576 */ + {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0578 */ + {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 057A */ + {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 057C */ + {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 057E */ + {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0580 */ + {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0582 */ + {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0584 */ + {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, /* 0586 */ + {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, /* 0588 */ + {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, /* 058A */ + {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, /* 058C */ + {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, /* 058E */ + {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, /* 0590 */ + {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, /* 0592 */ + {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, /* 0594 */ + {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, /* 0596 */ + {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, /* 0598 */ + {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, /* 059A */ + {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, /* 059C */ + {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, /* 059E */ + {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, /* 05A0 */ + {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, /* 05A2 */ + {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, /* 05A4 */ + {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, /* 05A6 */ + {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, /* 05A8 */ + {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, /* 05AA */ + {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, /* 05AC */ + {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, /* 05AE */ + {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, /* 05B0 */ + {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, /* 05B2 */ + {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, /* 05B4 */ + {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, /* 05B6 */ + {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, /* 05B8 */ + {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, /* 05BA */ + {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, /* 05BC */ + {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, /* 05BE */ + {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, /* 05C0 */ + {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, /* 05C2 */ + {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, /* 05C4 */ + {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, /* 05C6 */ + {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, /* 05C8 */ + {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, /* 05CA */ + {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, /* 05CC */ + {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, /* 05CE */ + {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, /* 05D0 */ + {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, /* 05D2 */ + {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, /* 05D4 */ + {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, /* 05D6 */ + {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, /* 05D8 */ + {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, /* 05DA */ + {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, /* 05DC */ + {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, /* 05DE */ + {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, /* 05E0 */ + {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, /* 05E2 */ + {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, /* 05E4 */ + {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, /* 05E6 */ + {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, /* 05E8 */ + {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, /* 05EA */ + {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, /* 05EC */ + {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, /* 05EE */ + {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, /* 05F0 */ + {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, /* 05F2 */ + {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, /* 05F4 */ + {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, /* 05F6 */ + {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, /* 05F8 */ + {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, /* 05FA */ + {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, /* 05FC */ + {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} /* 05FE */ +}; + +static MY_UNICASE_CHARACTER u520p10[]={ + {0x1000,0x1000,0x1000}, {0x1001,0x1001,0x1001}, /* 1000 */ + {0x1002,0x1002,0x1002}, {0x1003,0x1003,0x1003}, /* 1002 */ + {0x1004,0x1004,0x1004}, {0x1005,0x1005,0x1005}, /* 1004 */ + {0x1006,0x1006,0x1006}, {0x1007,0x1007,0x1007}, /* 1006 */ + {0x1008,0x1008,0x1008}, {0x1009,0x1009,0x1009}, /* 1008 */ + {0x100A,0x100A,0x100A}, {0x100B,0x100B,0x100B}, /* 100A */ + {0x100C,0x100C,0x100C}, {0x100D,0x100D,0x100D}, /* 100C */ + {0x100E,0x100E,0x100E}, {0x100F,0x100F,0x100F}, /* 100E */ + {0x1010,0x1010,0x1010}, {0x1011,0x1011,0x1011}, /* 1010 */ + {0x1012,0x1012,0x1012}, {0x1013,0x1013,0x1013}, /* 1012 */ + {0x1014,0x1014,0x1014}, {0x1015,0x1015,0x1015}, /* 1014 */ + {0x1016,0x1016,0x1016}, {0x1017,0x1017,0x1017}, /* 1016 */ + {0x1018,0x1018,0x1018}, {0x1019,0x1019,0x1019}, /* 1018 */ + {0x101A,0x101A,0x101A}, {0x101B,0x101B,0x101B}, /* 101A */ + {0x101C,0x101C,0x101C}, {0x101D,0x101D,0x101D}, /* 101C */ + {0x101E,0x101E,0x101E}, {0x101F,0x101F,0x101F}, /* 101E */ + {0x1020,0x1020,0x1020}, {0x1021,0x1021,0x1021}, /* 1020 */ + {0x1022,0x1022,0x1022}, {0x1023,0x1023,0x1023}, /* 1022 */ + {0x1024,0x1024,0x1024}, {0x1025,0x1025,0x1025}, /* 1024 */ + {0x1026,0x1026,0x1026}, {0x1027,0x1027,0x1027}, /* 1026 */ + {0x1028,0x1028,0x1028}, {0x1029,0x1029,0x1029}, /* 1028 */ + {0x102A,0x102A,0x102A}, {0x102B,0x102B,0x102B}, /* 102A */ + {0x102C,0x102C,0x102C}, {0x102D,0x102D,0x102D}, /* 102C */ + {0x102E,0x102E,0x102E}, {0x102F,0x102F,0x102F}, /* 102E */ + {0x1030,0x1030,0x1030}, {0x1031,0x1031,0x1031}, /* 1030 */ + {0x1032,0x1032,0x1032}, {0x1033,0x1033,0x1033}, /* 1032 */ + {0x1034,0x1034,0x1034}, {0x1035,0x1035,0x1035}, /* 1034 */ + {0x1036,0x1036,0x1036}, {0x1037,0x1037,0x1037}, /* 1036 */ + {0x1038,0x1038,0x1038}, {0x1039,0x1039,0x1039}, /* 1038 */ + {0x103A,0x103A,0x103A}, {0x103B,0x103B,0x103B}, /* 103A */ + {0x103C,0x103C,0x103C}, {0x103D,0x103D,0x103D}, /* 103C */ + {0x103E,0x103E,0x103E}, {0x103F,0x103F,0x103F}, /* 103E */ + {0x1040,0x1040,0x1040}, {0x1041,0x1041,0x1041}, /* 1040 */ + {0x1042,0x1042,0x1042}, {0x1043,0x1043,0x1043}, /* 1042 */ + {0x1044,0x1044,0x1044}, {0x1045,0x1045,0x1045}, /* 1044 */ + {0x1046,0x1046,0x1046}, {0x1047,0x1047,0x1047}, /* 1046 */ + {0x1048,0x1048,0x1048}, {0x1049,0x1049,0x1049}, /* 1048 */ + {0x104A,0x104A,0x104A}, {0x104B,0x104B,0x104B}, /* 104A */ + {0x104C,0x104C,0x104C}, {0x104D,0x104D,0x104D}, /* 104C */ + {0x104E,0x104E,0x104E}, {0x104F,0x104F,0x104F}, /* 104E */ + {0x1050,0x1050,0x1050}, {0x1051,0x1051,0x1051}, /* 1050 */ + {0x1052,0x1052,0x1052}, {0x1053,0x1053,0x1053}, /* 1052 */ + {0x1054,0x1054,0x1054}, {0x1055,0x1055,0x1055}, /* 1054 */ + {0x1056,0x1056,0x1056}, {0x1057,0x1057,0x1057}, /* 1056 */ + {0x1058,0x1058,0x1058}, {0x1059,0x1059,0x1059}, /* 1058 */ + {0x105A,0x105A,0x105A}, {0x105B,0x105B,0x105B}, /* 105A */ + {0x105C,0x105C,0x105C}, {0x105D,0x105D,0x105D}, /* 105C */ + {0x105E,0x105E,0x105E}, {0x105F,0x105F,0x105F}, /* 105E */ + {0x1060,0x1060,0x1060}, {0x1061,0x1061,0x1061}, /* 1060 */ + {0x1062,0x1062,0x1062}, {0x1063,0x1063,0x1063}, /* 1062 */ + {0x1064,0x1064,0x1064}, {0x1065,0x1065,0x1065}, /* 1064 */ + {0x1066,0x1066,0x1066}, {0x1067,0x1067,0x1067}, /* 1066 */ + {0x1068,0x1068,0x1068}, {0x1069,0x1069,0x1069}, /* 1068 */ + {0x106A,0x106A,0x106A}, {0x106B,0x106B,0x106B}, /* 106A */ + {0x106C,0x106C,0x106C}, {0x106D,0x106D,0x106D}, /* 106C */ + {0x106E,0x106E,0x106E}, {0x106F,0x106F,0x106F}, /* 106E */ + {0x1070,0x1070,0x1070}, {0x1071,0x1071,0x1071}, /* 1070 */ + {0x1072,0x1072,0x1072}, {0x1073,0x1073,0x1073}, /* 1072 */ + {0x1074,0x1074,0x1074}, {0x1075,0x1075,0x1075}, /* 1074 */ + {0x1076,0x1076,0x1076}, {0x1077,0x1077,0x1077}, /* 1076 */ + {0x1078,0x1078,0x1078}, {0x1079,0x1079,0x1079}, /* 1078 */ + {0x107A,0x107A,0x107A}, {0x107B,0x107B,0x107B}, /* 107A */ + {0x107C,0x107C,0x107C}, {0x107D,0x107D,0x107D}, /* 107C */ + {0x107E,0x107E,0x107E}, {0x107F,0x107F,0x107F}, /* 107E */ + {0x1080,0x1080,0x1080}, {0x1081,0x1081,0x1081}, /* 1080 */ + {0x1082,0x1082,0x1082}, {0x1083,0x1083,0x1083}, /* 1082 */ + {0x1084,0x1084,0x1084}, {0x1085,0x1085,0x1085}, /* 1084 */ + {0x1086,0x1086,0x1086}, {0x1087,0x1087,0x1087}, /* 1086 */ + {0x1088,0x1088,0x1088}, {0x1089,0x1089,0x1089}, /* 1088 */ + {0x108A,0x108A,0x108A}, {0x108B,0x108B,0x108B}, /* 108A */ + {0x108C,0x108C,0x108C}, {0x108D,0x108D,0x108D}, /* 108C */ + {0x108E,0x108E,0x108E}, {0x108F,0x108F,0x108F}, /* 108E */ + {0x1090,0x1090,0x1090}, {0x1091,0x1091,0x1091}, /* 1090 */ + {0x1092,0x1092,0x1092}, {0x1093,0x1093,0x1093}, /* 1092 */ + {0x1094,0x1094,0x1094}, {0x1095,0x1095,0x1095}, /* 1094 */ + {0x1096,0x1096,0x1096}, {0x1097,0x1097,0x1097}, /* 1096 */ + {0x1098,0x1098,0x1098}, {0x1099,0x1099,0x1099}, /* 1098 */ + {0x109A,0x109A,0x109A}, {0x109B,0x109B,0x109B}, /* 109A */ + {0x109C,0x109C,0x109C}, {0x109D,0x109D,0x109D}, /* 109C */ + {0x109E,0x109E,0x109E}, {0x109F,0x109F,0x109F}, /* 109E */ + {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 10A0 */ + {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 10A2 */ + {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 10A4 */ + {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 10A6 */ + {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 10A8 */ + {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 10AA */ + {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 10AC */ + {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 10AE */ + {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 10B0 */ + {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 10B2 */ + {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 10B4 */ + {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 10B6 */ + {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 10B8 */ + {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 10BA */ + {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 10BC */ + {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 10BE */ + {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 10C0 */ + {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 10C2 */ + {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 10C4 */ + {0x10C6,0x10C6,0x10C6}, {0x10C7,0x10C7,0x10C7}, /* 10C6 */ + {0x10C8,0x10C8,0x10C8}, {0x10C9,0x10C9,0x10C9}, /* 10C8 */ + {0x10CA,0x10CA,0x10CA}, {0x10CB,0x10CB,0x10CB}, /* 10CA */ + {0x10CC,0x10CC,0x10CC}, {0x10CD,0x10CD,0x10CD}, /* 10CC */ + {0x10CE,0x10CE,0x10CE}, {0x10CF,0x10CF,0x10CF}, /* 10CE */ + {0x10D0,0x10D0,0x10D0}, {0x10D1,0x10D1,0x10D1}, /* 10D0 */ + {0x10D2,0x10D2,0x10D2}, {0x10D3,0x10D3,0x10D3}, /* 10D2 */ + {0x10D4,0x10D4,0x10D4}, {0x10D5,0x10D5,0x10D5}, /* 10D4 */ + {0x10D6,0x10D6,0x10D6}, {0x10D7,0x10D7,0x10D7}, /* 10D6 */ + {0x10D8,0x10D8,0x10D8}, {0x10D9,0x10D9,0x10D9}, /* 10D8 */ + {0x10DA,0x10DA,0x10DA}, {0x10DB,0x10DB,0x10DB}, /* 10DA */ + {0x10DC,0x10DC,0x10DC}, {0x10DD,0x10DD,0x10DD}, /* 10DC */ + {0x10DE,0x10DE,0x10DE}, {0x10DF,0x10DF,0x10DF}, /* 10DE */ + {0x10E0,0x10E0,0x10E0}, {0x10E1,0x10E1,0x10E1}, /* 10E0 */ + {0x10E2,0x10E2,0x10E2}, {0x10E3,0x10E3,0x10E3}, /* 10E2 */ + {0x10E4,0x10E4,0x10E4}, {0x10E5,0x10E5,0x10E5}, /* 10E4 */ + {0x10E6,0x10E6,0x10E6}, {0x10E7,0x10E7,0x10E7}, /* 10E6 */ + {0x10E8,0x10E8,0x10E8}, {0x10E9,0x10E9,0x10E9}, /* 10E8 */ + {0x10EA,0x10EA,0x10EA}, {0x10EB,0x10EB,0x10EB}, /* 10EA */ + {0x10EC,0x10EC,0x10EC}, {0x10ED,0x10ED,0x10ED}, /* 10EC */ + {0x10EE,0x10EE,0x10EE}, {0x10EF,0x10EF,0x10EF}, /* 10EE */ + {0x10F0,0x10F0,0x10F0}, {0x10F1,0x10F1,0x10F1}, /* 10F0 */ + {0x10F2,0x10F2,0x10F2}, {0x10F3,0x10F3,0x10F3}, /* 10F2 */ + {0x10F4,0x10F4,0x10F4}, {0x10F5,0x10F5,0x10F5}, /* 10F4 */ + {0x10F6,0x10F6,0x10F6}, {0x10F7,0x10F7,0x10F7}, /* 10F6 */ + {0x10F8,0x10F8,0x10F8}, {0x10F9,0x10F9,0x10F9}, /* 10F8 */ + {0x10FA,0x10FA,0x10FA}, {0x10FB,0x10FB,0x10FB}, /* 10FA */ + {0x10FC,0x10FC,0x10FC}, {0x10FD,0x10FD,0x10FD}, /* 10FC */ + {0x10FE,0x10FE,0x10FE}, {0x10FF,0x10FF,0x10FF} /* 10FE */ +}; + +static MY_UNICASE_CHARACTER u520p1D[]={ + {0x1D00,0x1D00,0x1D00}, {0x1D01,0x1D01,0x1D01}, /* 1D00 */ + {0x1D02,0x1D02,0x1D02}, {0x1D03,0x1D03,0x1D03}, /* 1D02 */ + {0x1D04,0x1D04,0x1D04}, {0x1D05,0x1D05,0x1D05}, /* 1D04 */ + {0x1D06,0x1D06,0x1D06}, {0x1D07,0x1D07,0x1D07}, /* 1D06 */ + {0x1D08,0x1D08,0x1D08}, {0x1D09,0x1D09,0x1D09}, /* 1D08 */ + {0x1D0A,0x1D0A,0x1D0A}, {0x1D0B,0x1D0B,0x1D0B}, /* 1D0A */ + {0x1D0C,0x1D0C,0x1D0C}, {0x1D0D,0x1D0D,0x1D0D}, /* 1D0C */ + {0x1D0E,0x1D0E,0x1D0E}, {0x1D0F,0x1D0F,0x1D0F}, /* 1D0E */ + {0x1D10,0x1D10,0x1D10}, {0x1D11,0x1D11,0x1D11}, /* 1D10 */ + {0x1D12,0x1D12,0x1D12}, {0x1D13,0x1D13,0x1D13}, /* 1D12 */ + {0x1D14,0x1D14,0x1D14}, {0x1D15,0x1D15,0x1D15}, /* 1D14 */ + {0x1D16,0x1D16,0x1D16}, {0x1D17,0x1D17,0x1D17}, /* 1D16 */ + {0x1D18,0x1D18,0x1D18}, {0x1D19,0x1D19,0x1D19}, /* 1D18 */ + {0x1D1A,0x1D1A,0x1D1A}, {0x1D1B,0x1D1B,0x1D1B}, /* 1D1A */ + {0x1D1C,0x1D1C,0x1D1C}, {0x1D1D,0x1D1D,0x1D1D}, /* 1D1C */ + {0x1D1E,0x1D1E,0x1D1E}, {0x1D1F,0x1D1F,0x1D1F}, /* 1D1E */ + {0x1D20,0x1D20,0x1D20}, {0x1D21,0x1D21,0x1D21}, /* 1D20 */ + {0x1D22,0x1D22,0x1D22}, {0x1D23,0x1D23,0x1D23}, /* 1D22 */ + {0x1D24,0x1D24,0x1D24}, {0x1D25,0x1D25,0x1D25}, /* 1D24 */ + {0x1D26,0x1D26,0x1D26}, {0x1D27,0x1D27,0x1D27}, /* 1D26 */ + {0x1D28,0x1D28,0x1D28}, {0x1D29,0x1D29,0x1D29}, /* 1D28 */ + {0x1D2A,0x1D2A,0x1D2A}, {0x1D2B,0x1D2B,0x1D2B}, /* 1D2A */ + {0x1D2C,0x1D2C,0x1D2C}, {0x1D2D,0x1D2D,0x1D2D}, /* 1D2C */ + {0x1D2E,0x1D2E,0x1D2E}, {0x1D2F,0x1D2F,0x1D2F}, /* 1D2E */ + {0x1D30,0x1D30,0x1D30}, {0x1D31,0x1D31,0x1D31}, /* 1D30 */ + {0x1D32,0x1D32,0x1D32}, {0x1D33,0x1D33,0x1D33}, /* 1D32 */ + {0x1D34,0x1D34,0x1D34}, {0x1D35,0x1D35,0x1D35}, /* 1D34 */ + {0x1D36,0x1D36,0x1D36}, {0x1D37,0x1D37,0x1D37}, /* 1D36 */ + {0x1D38,0x1D38,0x1D38}, {0x1D39,0x1D39,0x1D39}, /* 1D38 */ + {0x1D3A,0x1D3A,0x1D3A}, {0x1D3B,0x1D3B,0x1D3B}, /* 1D3A */ + {0x1D3C,0x1D3C,0x1D3C}, {0x1D3D,0x1D3D,0x1D3D}, /* 1D3C */ + {0x1D3E,0x1D3E,0x1D3E}, {0x1D3F,0x1D3F,0x1D3F}, /* 1D3E */ + {0x1D40,0x1D40,0x1D40}, {0x1D41,0x1D41,0x1D41}, /* 1D40 */ + {0x1D42,0x1D42,0x1D42}, {0x1D43,0x1D43,0x1D43}, /* 1D42 */ + {0x1D44,0x1D44,0x1D44}, {0x1D45,0x1D45,0x1D45}, /* 1D44 */ + {0x1D46,0x1D46,0x1D46}, {0x1D47,0x1D47,0x1D47}, /* 1D46 */ + {0x1D48,0x1D48,0x1D48}, {0x1D49,0x1D49,0x1D49}, /* 1D48 */ + {0x1D4A,0x1D4A,0x1D4A}, {0x1D4B,0x1D4B,0x1D4B}, /* 1D4A */ + {0x1D4C,0x1D4C,0x1D4C}, {0x1D4D,0x1D4D,0x1D4D}, /* 1D4C */ + {0x1D4E,0x1D4E,0x1D4E}, {0x1D4F,0x1D4F,0x1D4F}, /* 1D4E */ + {0x1D50,0x1D50,0x1D50}, {0x1D51,0x1D51,0x1D51}, /* 1D50 */ + {0x1D52,0x1D52,0x1D52}, {0x1D53,0x1D53,0x1D53}, /* 1D52 */ + {0x1D54,0x1D54,0x1D54}, {0x1D55,0x1D55,0x1D55}, /* 1D54 */ + {0x1D56,0x1D56,0x1D56}, {0x1D57,0x1D57,0x1D57}, /* 1D56 */ + {0x1D58,0x1D58,0x1D58}, {0x1D59,0x1D59,0x1D59}, /* 1D58 */ + {0x1D5A,0x1D5A,0x1D5A}, {0x1D5B,0x1D5B,0x1D5B}, /* 1D5A */ + {0x1D5C,0x1D5C,0x1D5C}, {0x1D5D,0x1D5D,0x1D5D}, /* 1D5C */ + {0x1D5E,0x1D5E,0x1D5E}, {0x1D5F,0x1D5F,0x1D5F}, /* 1D5E */ + {0x1D60,0x1D60,0x1D60}, {0x1D61,0x1D61,0x1D61}, /* 1D60 */ + {0x1D62,0x1D62,0x1D62}, {0x1D63,0x1D63,0x1D63}, /* 1D62 */ + {0x1D64,0x1D64,0x1D64}, {0x1D65,0x1D65,0x1D65}, /* 1D64 */ + {0x1D66,0x1D66,0x1D66}, {0x1D67,0x1D67,0x1D67}, /* 1D66 */ + {0x1D68,0x1D68,0x1D68}, {0x1D69,0x1D69,0x1D69}, /* 1D68 */ + {0x1D6A,0x1D6A,0x1D6A}, {0x1D6B,0x1D6B,0x1D6B}, /* 1D6A */ + {0x1D6C,0x1D6C,0x1D6C}, {0x1D6D,0x1D6D,0x1D6D}, /* 1D6C */ + {0x1D6E,0x1D6E,0x1D6E}, {0x1D6F,0x1D6F,0x1D6F}, /* 1D6E */ + {0x1D70,0x1D70,0x1D70}, {0x1D71,0x1D71,0x1D71}, /* 1D70 */ + {0x1D72,0x1D72,0x1D72}, {0x1D73,0x1D73,0x1D73}, /* 1D72 */ + {0x1D74,0x1D74,0x1D74}, {0x1D75,0x1D75,0x1D75}, /* 1D74 */ + {0x1D76,0x1D76,0x1D76}, {0x1D77,0x1D77,0x1D77}, /* 1D76 */ + {0x1D78,0x1D78,0x1D78}, {0xA77D,0x1D79,0xA77D}, /* 1D78 */ + {0x1D7A,0x1D7A,0x1D7A}, {0x1D7B,0x1D7B,0x1D7B}, /* 1D7A */ + {0x1D7C,0x1D7C,0x1D7C}, {0x2C63,0x1D7D,0x2C63}, /* 1D7C */ + {0x1D7E,0x1D7E,0x1D7E}, {0x1D7F,0x1D7F,0x1D7F}, /* 1D7E */ + {0x1D80,0x1D80,0x1D80}, {0x1D81,0x1D81,0x1D81}, /* 1D80 */ + {0x1D82,0x1D82,0x1D82}, {0x1D83,0x1D83,0x1D83}, /* 1D82 */ + {0x1D84,0x1D84,0x1D84}, {0x1D85,0x1D85,0x1D85}, /* 1D84 */ + {0x1D86,0x1D86,0x1D86}, {0x1D87,0x1D87,0x1D87}, /* 1D86 */ + {0x1D88,0x1D88,0x1D88}, {0x1D89,0x1D89,0x1D89}, /* 1D88 */ + {0x1D8A,0x1D8A,0x1D8A}, {0x1D8B,0x1D8B,0x1D8B}, /* 1D8A */ + {0x1D8C,0x1D8C,0x1D8C}, {0x1D8D,0x1D8D,0x1D8D}, /* 1D8C */ + {0x1D8E,0x1D8E,0x1D8E}, {0x1D8F,0x1D8F,0x1D8F}, /* 1D8E */ + {0x1D90,0x1D90,0x1D90}, {0x1D91,0x1D91,0x1D91}, /* 1D90 */ + {0x1D92,0x1D92,0x1D92}, {0x1D93,0x1D93,0x1D93}, /* 1D92 */ + {0x1D94,0x1D94,0x1D94}, {0x1D95,0x1D95,0x1D95}, /* 1D94 */ + {0x1D96,0x1D96,0x1D96}, {0x1D97,0x1D97,0x1D97}, /* 1D96 */ + {0x1D98,0x1D98,0x1D98}, {0x1D99,0x1D99,0x1D99}, /* 1D98 */ + {0x1D9A,0x1D9A,0x1D9A}, {0x1D9B,0x1D9B,0x1D9B}, /* 1D9A */ + {0x1D9C,0x1D9C,0x1D9C}, {0x1D9D,0x1D9D,0x1D9D}, /* 1D9C */ + {0x1D9E,0x1D9E,0x1D9E}, {0x1D9F,0x1D9F,0x1D9F}, /* 1D9E */ + {0x1DA0,0x1DA0,0x1DA0}, {0x1DA1,0x1DA1,0x1DA1}, /* 1DA0 */ + {0x1DA2,0x1DA2,0x1DA2}, {0x1DA3,0x1DA3,0x1DA3}, /* 1DA2 */ + {0x1DA4,0x1DA4,0x1DA4}, {0x1DA5,0x1DA5,0x1DA5}, /* 1DA4 */ + {0x1DA6,0x1DA6,0x1DA6}, {0x1DA7,0x1DA7,0x1DA7}, /* 1DA6 */ + {0x1DA8,0x1DA8,0x1DA8}, {0x1DA9,0x1DA9,0x1DA9}, /* 1DA8 */ + {0x1DAA,0x1DAA,0x1DAA}, {0x1DAB,0x1DAB,0x1DAB}, /* 1DAA */ + {0x1DAC,0x1DAC,0x1DAC}, {0x1DAD,0x1DAD,0x1DAD}, /* 1DAC */ + {0x1DAE,0x1DAE,0x1DAE}, {0x1DAF,0x1DAF,0x1DAF}, /* 1DAE */ + {0x1DB0,0x1DB0,0x1DB0}, {0x1DB1,0x1DB1,0x1DB1}, /* 1DB0 */ + {0x1DB2,0x1DB2,0x1DB2}, {0x1DB3,0x1DB3,0x1DB3}, /* 1DB2 */ + {0x1DB4,0x1DB4,0x1DB4}, {0x1DB5,0x1DB5,0x1DB5}, /* 1DB4 */ + {0x1DB6,0x1DB6,0x1DB6}, {0x1DB7,0x1DB7,0x1DB7}, /* 1DB6 */ + {0x1DB8,0x1DB8,0x1DB8}, {0x1DB9,0x1DB9,0x1DB9}, /* 1DB8 */ + {0x1DBA,0x1DBA,0x1DBA}, {0x1DBB,0x1DBB,0x1DBB}, /* 1DBA */ + {0x1DBC,0x1DBC,0x1DBC}, {0x1DBD,0x1DBD,0x1DBD}, /* 1DBC */ + {0x1DBE,0x1DBE,0x1DBE}, {0x1DBF,0x1DBF,0x1DBF}, /* 1DBE */ + {0x1DC0,0x1DC0,0x1DC0}, {0x1DC1,0x1DC1,0x1DC1}, /* 1DC0 */ + {0x1DC2,0x1DC2,0x1DC2}, {0x1DC3,0x1DC3,0x1DC3}, /* 1DC2 */ + {0x1DC4,0x1DC4,0x1DC4}, {0x1DC5,0x1DC5,0x1DC5}, /* 1DC4 */ + {0x1DC6,0x1DC6,0x1DC6}, {0x1DC7,0x1DC7,0x1DC7}, /* 1DC6 */ + {0x1DC8,0x1DC8,0x1DC8}, {0x1DC9,0x1DC9,0x1DC9}, /* 1DC8 */ + {0x1DCA,0x1DCA,0x1DCA}, {0x1DCB,0x1DCB,0x1DCB}, /* 1DCA */ + {0x1DCC,0x1DCC,0x1DCC}, {0x1DCD,0x1DCD,0x1DCD}, /* 1DCC */ + {0x1DCE,0x1DCE,0x1DCE}, {0x1DCF,0x1DCF,0x1DCF}, /* 1DCE */ + {0x1DD0,0x1DD0,0x1DD0}, {0x1DD1,0x1DD1,0x1DD1}, /* 1DD0 */ + {0x1DD2,0x1DD2,0x1DD2}, {0x1DD3,0x1DD3,0x1DD3}, /* 1DD2 */ + {0x1DD4,0x1DD4,0x1DD4}, {0x1DD5,0x1DD5,0x1DD5}, /* 1DD4 */ + {0x1DD6,0x1DD6,0x1DD6}, {0x1DD7,0x1DD7,0x1DD7}, /* 1DD6 */ + {0x1DD8,0x1DD8,0x1DD8}, {0x1DD9,0x1DD9,0x1DD9}, /* 1DD8 */ + {0x1DDA,0x1DDA,0x1DDA}, {0x1DDB,0x1DDB,0x1DDB}, /* 1DDA */ + {0x1DDC,0x1DDC,0x1DDC}, {0x1DDD,0x1DDD,0x1DDD}, /* 1DDC */ + {0x1DDE,0x1DDE,0x1DDE}, {0x1DDF,0x1DDF,0x1DDF}, /* 1DDE */ + {0x1DE0,0x1DE0,0x1DE0}, {0x1DE1,0x1DE1,0x1DE1}, /* 1DE0 */ + {0x1DE2,0x1DE2,0x1DE2}, {0x1DE3,0x1DE3,0x1DE3}, /* 1DE2 */ + {0x1DE4,0x1DE4,0x1DE4}, {0x1DE5,0x1DE5,0x1DE5}, /* 1DE4 */ + {0x1DE6,0x1DE6,0x1DE6}, {0x1DE7,0x1DE7,0x1DE7}, /* 1DE6 */ + {0x1DE8,0x1DE8,0x1DE8}, {0x1DE9,0x1DE9,0x1DE9}, /* 1DE8 */ + {0x1DEA,0x1DEA,0x1DEA}, {0x1DEB,0x1DEB,0x1DEB}, /* 1DEA */ + {0x1DEC,0x1DEC,0x1DEC}, {0x1DED,0x1DED,0x1DED}, /* 1DEC */ + {0x1DEE,0x1DEE,0x1DEE}, {0x1DEF,0x1DEF,0x1DEF}, /* 1DEE */ + {0x1DF0,0x1DF0,0x1DF0}, {0x1DF1,0x1DF1,0x1DF1}, /* 1DF0 */ + {0x1DF2,0x1DF2,0x1DF2}, {0x1DF3,0x1DF3,0x1DF3}, /* 1DF2 */ + {0x1DF4,0x1DF4,0x1DF4}, {0x1DF5,0x1DF5,0x1DF5}, /* 1DF4 */ + {0x1DF6,0x1DF6,0x1DF6}, {0x1DF7,0x1DF7,0x1DF7}, /* 1DF6 */ + {0x1DF8,0x1DF8,0x1DF8}, {0x1DF9,0x1DF9,0x1DF9}, /* 1DF8 */ + {0x1DFA,0x1DFA,0x1DFA}, {0x1DFB,0x1DFB,0x1DFB}, /* 1DFA */ + {0x1DFC,0x1DFC,0x1DFC}, {0x1DFD,0x1DFD,0x1DFD}, /* 1DFC */ + {0x1DFE,0x1DFE,0x1DFE}, {0x1DFF,0x1DFF,0x1DFF} /* 1DFE */ +}; + +static MY_UNICASE_CHARACTER u520p1E[]={ + {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, /* 1E00 */ + {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, /* 1E02 */ + {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, /* 1E04 */ + {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, /* 1E06 */ + {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, /* 1E08 */ + {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, /* 1E0A */ + {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, /* 1E0C */ + {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, /* 1E0E */ + {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, /* 1E10 */ + {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, /* 1E12 */ + {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, /* 1E14 */ + {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, /* 1E16 */ + {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, /* 1E18 */ + {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, /* 1E1A */ + {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, /* 1E1C */ + {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, /* 1E1E */ + {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, /* 1E20 */ + {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, /* 1E22 */ + {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, /* 1E24 */ + {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, /* 1E26 */ + {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, /* 1E28 */ + {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, /* 1E2A */ + {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, /* 1E2C */ + {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, /* 1E2E */ + {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, /* 1E30 */ + {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, /* 1E32 */ + {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, /* 1E34 */ + {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, /* 1E36 */ + {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, /* 1E38 */ + {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, /* 1E3A */ + {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, /* 1E3C */ + {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, /* 1E3E */ + {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, /* 1E40 */ + {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, /* 1E42 */ + {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, /* 1E44 */ + {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, /* 1E46 */ + {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, /* 1E48 */ + {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, /* 1E4A */ + {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, /* 1E4C */ + {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, /* 1E4E */ + {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, /* 1E50 */ + {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, /* 1E52 */ + {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, /* 1E54 */ + {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, /* 1E56 */ + {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, /* 1E58 */ + {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, /* 1E5A */ + {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, /* 1E5C */ + {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, /* 1E5E */ + {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, /* 1E60 */ + {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, /* 1E62 */ + {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, /* 1E64 */ + {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, /* 1E66 */ + {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, /* 1E68 */ + {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, /* 1E6A */ + {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, /* 1E6C */ + {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, /* 1E6E */ + {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, /* 1E70 */ + {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, /* 1E72 */ + {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, /* 1E74 */ + {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, /* 1E76 */ + {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, /* 1E78 */ + {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, /* 1E7A */ + {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, /* 1E7C */ + {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, /* 1E7E */ + {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, /* 1E80 */ + {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, /* 1E82 */ + {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, /* 1E84 */ + {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, /* 1E86 */ + {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, /* 1E88 */ + {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, /* 1E8A */ + {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, /* 1E8C */ + {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, /* 1E8E */ + {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, /* 1E90 */ + {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, /* 1E92 */ + {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, /* 1E94 */ + {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, /* 1E96 */ + {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, /* 1E98 */ + {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, /* 1E9A */ + {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, /* 1E9C */ + {0x1E9E,0x00DF,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, /* 1E9E */ + {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, /* 1EA0 */ + {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, /* 1EA2 */ + {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, /* 1EA4 */ + {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, /* 1EA6 */ + {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, /* 1EA8 */ + {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, /* 1EAA */ + {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, /* 1EAC */ + {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, /* 1EAE */ + {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, /* 1EB0 */ + {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, /* 1EB2 */ + {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, /* 1EB4 */ + {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, /* 1EB6 */ + {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, /* 1EB8 */ + {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, /* 1EBA */ + {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, /* 1EBC */ + {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, /* 1EBE */ + {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, /* 1EC0 */ + {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, /* 1EC2 */ + {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, /* 1EC4 */ + {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, /* 1EC6 */ + {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, /* 1EC8 */ + {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, /* 1ECA */ + {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, /* 1ECC */ + {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, /* 1ECE */ + {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, /* 1ED0 */ + {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, /* 1ED2 */ + {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, /* 1ED4 */ + {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, /* 1ED6 */ + {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, /* 1ED8 */ + {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, /* 1EDA */ + {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, /* 1EDC */ + {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, /* 1EDE */ + {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, /* 1EE0 */ + {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, /* 1EE2 */ + {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, /* 1EE4 */ + {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, /* 1EE6 */ + {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, /* 1EE8 */ + {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, /* 1EEA */ + {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, /* 1EEC */ + {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, /* 1EEE */ + {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, /* 1EF0 */ + {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, /* 1EF2 */ + {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, /* 1EF4 */ + {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, /* 1EF6 */ + {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, /* 1EF8 */ + {0x1EFA,0x1EFB,0x1EFA}, {0x1EFA,0x1EFB,0x1EFA}, /* 1EFA */ + {0x1EFC,0x1EFD,0x1EFC}, {0x1EFC,0x1EFD,0x1EFC}, /* 1EFC */ + {0x1EFE,0x1EFF,0x1EFE}, {0x1EFE,0x1EFF,0x1EFE} /* 1EFE */ +}; + +static MY_UNICASE_CHARACTER u520p1F[]={ + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F00 */ + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F02 */ + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F04 */ + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F06 */ + {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F08 */ + {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F0A */ + {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F0C */ + {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F0E */ + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F10 */ + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F12 */ + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F14 */ + {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, /* 1F16 */ + {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F18 */ + {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F1A */ + {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F1C */ + {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, /* 1F1E */ + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F20 */ + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F22 */ + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F24 */ + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F26 */ + {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F28 */ + {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F2A */ + {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F2C */ + {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F2E */ + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F30 */ + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F32 */ + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F34 */ + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F36 */ + {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F38 */ + {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F3A */ + {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F3C */ + {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F3E */ + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F40 */ + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F42 */ + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F44 */ + {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, /* 1F46 */ + {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F48 */ + {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F4A */ + {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F4C */ + {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, /* 1F4E */ + {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, /* 1F50 */ + {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, /* 1F52 */ + {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, /* 1F54 */ + {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, /* 1F56 */ + {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, /* 1F58 */ + {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, /* 1F5A */ + {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, /* 1F5C */ + {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, /* 1F5E */ + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F60 */ + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F62 */ + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F64 */ + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F66 */ + {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F68 */ + {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F6A */ + {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F6C */ + {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F6E */ + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1F70 */ + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1F72 */ + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1F74 */ + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1F76 */ + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1F78 */ + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1F7A */ + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1F7C */ + {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, /* 1F7E */ + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F80 */ + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F82 */ + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F84 */ + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F86 */ + {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F88 */ + {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F8A */ + {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F8C */ + {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F8E */ + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F90 */ + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F92 */ + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F94 */ + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F96 */ + {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F98 */ + {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F9A */ + {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F9C */ + {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F9E */ + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA0 */ + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FA2 */ + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FA4 */ + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FA6 */ + {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA8 */ + {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FAA */ + {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FAC */ + {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FAE */ + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB0 */ + {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, /* 1FB2 */ + {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, /* 1FB4 */ + {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, /* 1FB6 */ + {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB8 */ + {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1FBA */ + {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, /* 1FBC */ + {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, /* 1FBE */ + {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, /* 1FC0 */ + {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, /* 1FC2 */ + {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, /* 1FC4 */ + {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, /* 1FC6 */ + {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1FC8 */ + {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1FCA */ + {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, /* 1FCC */ + {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, /* 1FCE */ + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD0 */ + {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, /* 1FD2 */ + {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, /* 1FD4 */ + {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, /* 1FD6 */ + {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD8 */ + {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1FDA */ + {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, /* 1FDC */ + {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, /* 1FDE */ + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE0 */ + {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, /* 1FE2 */ + {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, /* 1FE4 */ + {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, /* 1FE6 */ + {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE8 */ + {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1FEA */ + {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, /* 1FEC */ + {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, /* 1FEE */ + {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, /* 1FF0 */ + {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, /* 1FF2 */ + {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, /* 1FF4 */ + {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, /* 1FF6 */ + {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1FF8 */ + {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1FFA */ + {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, /* 1FFC */ + {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} /* 1FFE */ +}; + +static MY_UNICASE_CHARACTER u520p21[]={ + {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, /* 2100 */ + {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, /* 2102 */ + {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, /* 2104 */ + {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, /* 2106 */ + {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, /* 2108 */ + {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, /* 210A */ + {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, /* 210C */ + {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, /* 210E */ + {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, /* 2110 */ + {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, /* 2112 */ + {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, /* 2114 */ + {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, /* 2116 */ + {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, /* 2118 */ + {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, /* 211A */ + {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, /* 211C */ + {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, /* 211E */ + {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, /* 2120 */ + {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, /* 2122 */ + {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, /* 2124 */ + {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, /* 2126 */ + {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, /* 2128 */ + {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, /* 212A */ + {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, /* 212C */ + {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, /* 212E */ + {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, /* 2130 */ + {0x2132,0x214E,0x2132}, {0x2133,0x2133,0x2133}, /* 2132 */ + {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, /* 2134 */ + {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, /* 2136 */ + {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, /* 2138 */ + {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, /* 213A */ + {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, /* 213C */ + {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, /* 213E */ + {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, /* 2140 */ + {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, /* 2142 */ + {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, /* 2144 */ + {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, /* 2146 */ + {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, /* 2148 */ + {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, /* 214A */ + {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, /* 214C */ + {0x2132,0x214E,0x2132}, {0x214F,0x214F,0x214F}, /* 214E */ + {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, /* 2150 */ + {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, /* 2152 */ + {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, /* 2154 */ + {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, /* 2156 */ + {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, /* 2158 */ + {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, /* 215A */ + {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, /* 215C */ + {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, /* 215E */ + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2160 */ + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2162 */ + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2164 */ + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2166 */ + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2168 */ + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 216A */ + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 216C */ + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 216E */ + {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2170 */ + {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2172 */ + {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2174 */ + {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2176 */ + {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2178 */ + {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 217A */ + {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 217C */ + {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 217E */ + {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, /* 2180 */ + {0x2182,0x2182,0x2182}, {0x2183,0x2184,0x2183}, /* 2182 */ + {0x2183,0x2184,0x2183}, {0x2185,0x2185,0x2185}, /* 2184 */ + {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, /* 2186 */ + {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, /* 2188 */ + {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, /* 218A */ + {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, /* 218C */ + {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, /* 218E */ + {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, /* 2190 */ + {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, /* 2192 */ + {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, /* 2194 */ + {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, /* 2196 */ + {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, /* 2198 */ + {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, /* 219A */ + {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, /* 219C */ + {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, /* 219E */ + {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, /* 21A0 */ + {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, /* 21A2 */ + {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, /* 21A4 */ + {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, /* 21A6 */ + {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, /* 21A8 */ + {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, /* 21AA */ + {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, /* 21AC */ + {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, /* 21AE */ + {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, /* 21B0 */ + {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, /* 21B2 */ + {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, /* 21B4 */ + {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, /* 21B6 */ + {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, /* 21B8 */ + {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, /* 21BA */ + {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, /* 21BC */ + {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, /* 21BE */ + {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, /* 21C0 */ + {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, /* 21C2 */ + {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, /* 21C4 */ + {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, /* 21C6 */ + {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, /* 21C8 */ + {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, /* 21CA */ + {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, /* 21CC */ + {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, /* 21CE */ + {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, /* 21D0 */ + {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, /* 21D2 */ + {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, /* 21D4 */ + {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, /* 21D6 */ + {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, /* 21D8 */ + {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, /* 21DA */ + {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, /* 21DC */ + {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, /* 21DE */ + {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, /* 21E0 */ + {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, /* 21E2 */ + {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, /* 21E4 */ + {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, /* 21E6 */ + {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, /* 21E8 */ + {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, /* 21EA */ + {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, /* 21EC */ + {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, /* 21EE */ + {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, /* 21F0 */ + {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, /* 21F2 */ + {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, /* 21F4 */ + {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, /* 21F6 */ + {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, /* 21F8 */ + {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, /* 21FA */ + {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, /* 21FC */ + {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} /* 21FE */ +}; + +static MY_UNICASE_CHARACTER u520p24[]={ + {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, /* 2400 */ + {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, /* 2402 */ + {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, /* 2404 */ + {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, /* 2406 */ + {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, /* 2408 */ + {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, /* 240A */ + {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, /* 240C */ + {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, /* 240E */ + {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, /* 2410 */ + {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, /* 2412 */ + {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, /* 2414 */ + {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, /* 2416 */ + {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, /* 2418 */ + {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, /* 241A */ + {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, /* 241C */ + {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, /* 241E */ + {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, /* 2420 */ + {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, /* 2422 */ + {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, /* 2424 */ + {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, /* 2426 */ + {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, /* 2428 */ + {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, /* 242A */ + {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, /* 242C */ + {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, /* 242E */ + {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, /* 2430 */ + {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, /* 2432 */ + {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, /* 2434 */ + {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, /* 2436 */ + {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, /* 2438 */ + {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, /* 243A */ + {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, /* 243C */ + {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, /* 243E */ + {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, /* 2440 */ + {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, /* 2442 */ + {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, /* 2444 */ + {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, /* 2446 */ + {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, /* 2448 */ + {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, /* 244A */ + {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, /* 244C */ + {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, /* 244E */ + {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, /* 2450 */ + {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, /* 2452 */ + {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, /* 2454 */ + {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, /* 2456 */ + {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, /* 2458 */ + {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, /* 245A */ + {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, /* 245C */ + {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, /* 245E */ + {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, /* 2460 */ + {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, /* 2462 */ + {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, /* 2464 */ + {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, /* 2466 */ + {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, /* 2468 */ + {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, /* 246A */ + {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, /* 246C */ + {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, /* 246E */ + {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, /* 2470 */ + {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, /* 2472 */ + {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, /* 2474 */ + {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, /* 2476 */ + {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, /* 2478 */ + {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, /* 247A */ + {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, /* 247C */ + {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, /* 247E */ + {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, /* 2480 */ + {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, /* 2482 */ + {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, /* 2484 */ + {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, /* 2486 */ + {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, /* 2488 */ + {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, /* 248A */ + {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, /* 248C */ + {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, /* 248E */ + {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, /* 2490 */ + {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, /* 2492 */ + {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, /* 2494 */ + {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, /* 2496 */ + {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, /* 2498 */ + {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, /* 249A */ + {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, /* 249C */ + {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, /* 249E */ + {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, /* 24A0 */ + {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, /* 24A2 */ + {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, /* 24A4 */ + {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, /* 24A6 */ + {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, /* 24A8 */ + {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, /* 24AA */ + {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, /* 24AC */ + {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, /* 24AE */ + {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, /* 24B0 */ + {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, /* 24B2 */ + {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, /* 24B4 */ + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24B6 */ + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24B8 */ + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24BA */ + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24BC */ + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24BE */ + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24C0 */ + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24C2 */ + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24C4 */ + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24C6 */ + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24C8 */ + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24CA */ + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24CC */ + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24CE */ + {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24D0 */ + {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24D2 */ + {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24D4 */ + {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24D6 */ + {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24D8 */ + {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24DA */ + {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24DC */ + {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24DE */ + {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24E0 */ + {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24E2 */ + {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24E4 */ + {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24E6 */ + {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24E8 */ + {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, /* 24EA */ + {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, /* 24EC */ + {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, /* 24EE */ + {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, /* 24F0 */ + {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, /* 24F2 */ + {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, /* 24F4 */ + {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, /* 24F6 */ + {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, /* 24F8 */ + {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, /* 24FA */ + {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, /* 24FC */ + {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} /* 24FE */ +}; + +static MY_UNICASE_CHARACTER u520p2C[]={ + {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C00 */ + {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C02 */ + {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C04 */ + {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C06 */ + {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C08 */ + {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C0A */ + {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C0C */ + {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C0E */ + {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C10 */ + {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C12 */ + {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C14 */ + {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C16 */ + {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C18 */ + {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C1A */ + {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C1C */ + {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C1E */ + {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C20 */ + {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C22 */ + {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C24 */ + {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C26 */ + {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C28 */ + {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C2A */ + {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C2C */ + {0x2C2E,0x2C5E,0x2C2E}, {0x2C2F,0x2C2F,0x2C2F}, /* 2C2E */ + {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C30 */ + {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C32 */ + {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C34 */ + {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C36 */ + {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C38 */ + {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C3A */ + {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C3C */ + {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C3E */ + {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C40 */ + {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C42 */ + {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C44 */ + {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C46 */ + {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C48 */ + {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C4A */ + {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C4C */ + {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C4E */ + {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C50 */ + {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C52 */ + {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C54 */ + {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C56 */ + {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C58 */ + {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C5A */ + {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C5C */ + {0x2C2E,0x2C5E,0x2C2E}, {0x2C5F,0x2C5F,0x2C5F}, /* 2C5E */ + {0x2C60,0x2C61,0x2C60}, {0x2C60,0x2C61,0x2C60}, /* 2C60 */ + {0x2C62,0x026B,0x2C62}, {0x2C63,0x1D7D,0x2C63}, /* 2C62 */ + {0x2C64,0x027D,0x2C64}, {0x023A,0x2C65,0x023A}, /* 2C64 */ + {0x023E,0x2C66,0x023E}, {0x2C67,0x2C68,0x2C67}, /* 2C66 */ + {0x2C67,0x2C68,0x2C67}, {0x2C69,0x2C6A,0x2C69}, /* 2C68 */ + {0x2C69,0x2C6A,0x2C69}, {0x2C6B,0x2C6C,0x2C6B}, /* 2C6A */ + {0x2C6B,0x2C6C,0x2C6B}, {0x2C6D,0x0251,0x2C6D}, /* 2C6C */ + {0x2C6E,0x0271,0x2C6E}, {0x2C6F,0x0250,0x2C6F}, /* 2C6E */ + {0x2C70,0x0252,0x2C70}, {0x2C71,0x2C71,0x2C71}, /* 2C70 */ + {0x2C72,0x2C73,0x2C72}, {0x2C72,0x2C73,0x2C72}, /* 2C72 */ + {0x2C74,0x2C74,0x2C74}, {0x2C75,0x2C76,0x2C75}, /* 2C74 */ + {0x2C75,0x2C76,0x2C75}, {0x2C77,0x2C77,0x2C77}, /* 2C76 */ + {0x2C78,0x2C78,0x2C78}, {0x2C79,0x2C79,0x2C79}, /* 2C78 */ + {0x2C7A,0x2C7A,0x2C7A}, {0x2C7B,0x2C7B,0x2C7B}, /* 2C7A */ + {0x2C7C,0x2C7C,0x2C7C}, {0x2C7D,0x2C7D,0x2C7D}, /* 2C7C */ + {0x2C7E,0x023F,0x2C7E}, {0x2C7F,0x0240,0x2C7F}, /* 2C7E */ + {0x2C80,0x2C81,0x2C80}, {0x2C80,0x2C81,0x2C80}, /* 2C80 */ + {0x2C82,0x2C83,0x2C82}, {0x2C82,0x2C83,0x2C82}, /* 2C82 */ + {0x2C84,0x2C85,0x2C84}, {0x2C84,0x2C85,0x2C84}, /* 2C84 */ + {0x2C86,0x2C87,0x2C86}, {0x2C86,0x2C87,0x2C86}, /* 2C86 */ + {0x2C88,0x2C89,0x2C88}, {0x2C88,0x2C89,0x2C88}, /* 2C88 */ + {0x2C8A,0x2C8B,0x2C8A}, {0x2C8A,0x2C8B,0x2C8A}, /* 2C8A */ + {0x2C8C,0x2C8D,0x2C8C}, {0x2C8C,0x2C8D,0x2C8C}, /* 2C8C */ + {0x2C8E,0x2C8F,0x2C8E}, {0x2C8E,0x2C8F,0x2C8E}, /* 2C8E */ + {0x2C90,0x2C91,0x2C90}, {0x2C90,0x2C91,0x2C90}, /* 2C90 */ + {0x2C92,0x2C93,0x2C92}, {0x2C92,0x2C93,0x2C92}, /* 2C92 */ + {0x2C94,0x2C95,0x2C94}, {0x2C94,0x2C95,0x2C94}, /* 2C94 */ + {0x2C96,0x2C97,0x2C96}, {0x2C96,0x2C97,0x2C96}, /* 2C96 */ + {0x2C98,0x2C99,0x2C98}, {0x2C98,0x2C99,0x2C98}, /* 2C98 */ + {0x2C9A,0x2C9B,0x2C9A}, {0x2C9A,0x2C9B,0x2C9A}, /* 2C9A */ + {0x2C9C,0x2C9D,0x2C9C}, {0x2C9C,0x2C9D,0x2C9C}, /* 2C9C */ + {0x2C9E,0x2C9F,0x2C9E}, {0x2C9E,0x2C9F,0x2C9E}, /* 2C9E */ + {0x2CA0,0x2CA1,0x2CA0}, {0x2CA0,0x2CA1,0x2CA0}, /* 2CA0 */ + {0x2CA2,0x2CA3,0x2CA2}, {0x2CA2,0x2CA3,0x2CA2}, /* 2CA2 */ + {0x2CA4,0x2CA5,0x2CA4}, {0x2CA4,0x2CA5,0x2CA4}, /* 2CA4 */ + {0x2CA6,0x2CA7,0x2CA6}, {0x2CA6,0x2CA7,0x2CA6}, /* 2CA6 */ + {0x2CA8,0x2CA9,0x2CA8}, {0x2CA8,0x2CA9,0x2CA8}, /* 2CA8 */ + {0x2CAA,0x2CAB,0x2CAA}, {0x2CAA,0x2CAB,0x2CAA}, /* 2CAA */ + {0x2CAC,0x2CAD,0x2CAC}, {0x2CAC,0x2CAD,0x2CAC}, /* 2CAC */ + {0x2CAE,0x2CAF,0x2CAE}, {0x2CAE,0x2CAF,0x2CAE}, /* 2CAE */ + {0x2CB0,0x2CB1,0x2CB0}, {0x2CB0,0x2CB1,0x2CB0}, /* 2CB0 */ + {0x2CB2,0x2CB3,0x2CB2}, {0x2CB2,0x2CB3,0x2CB2}, /* 2CB2 */ + {0x2CB4,0x2CB5,0x2CB4}, {0x2CB4,0x2CB5,0x2CB4}, /* 2CB4 */ + {0x2CB6,0x2CB7,0x2CB6}, {0x2CB6,0x2CB7,0x2CB6}, /* 2CB6 */ + {0x2CB8,0x2CB9,0x2CB8}, {0x2CB8,0x2CB9,0x2CB8}, /* 2CB8 */ + {0x2CBA,0x2CBB,0x2CBA}, {0x2CBA,0x2CBB,0x2CBA}, /* 2CBA */ + {0x2CBC,0x2CBD,0x2CBC}, {0x2CBC,0x2CBD,0x2CBC}, /* 2CBC */ + {0x2CBE,0x2CBF,0x2CBE}, {0x2CBE,0x2CBF,0x2CBE}, /* 2CBE */ + {0x2CC0,0x2CC1,0x2CC0}, {0x2CC0,0x2CC1,0x2CC0}, /* 2CC0 */ + {0x2CC2,0x2CC3,0x2CC2}, {0x2CC2,0x2CC3,0x2CC2}, /* 2CC2 */ + {0x2CC4,0x2CC5,0x2CC4}, {0x2CC4,0x2CC5,0x2CC4}, /* 2CC4 */ + {0x2CC6,0x2CC7,0x2CC6}, {0x2CC6,0x2CC7,0x2CC6}, /* 2CC6 */ + {0x2CC8,0x2CC9,0x2CC8}, {0x2CC8,0x2CC9,0x2CC8}, /* 2CC8 */ + {0x2CCA,0x2CCB,0x2CCA}, {0x2CCA,0x2CCB,0x2CCA}, /* 2CCA */ + {0x2CCC,0x2CCD,0x2CCC}, {0x2CCC,0x2CCD,0x2CCC}, /* 2CCC */ + {0x2CCE,0x2CCF,0x2CCE}, {0x2CCE,0x2CCF,0x2CCE}, /* 2CCE */ + {0x2CD0,0x2CD1,0x2CD0}, {0x2CD0,0x2CD1,0x2CD0}, /* 2CD0 */ + {0x2CD2,0x2CD3,0x2CD2}, {0x2CD2,0x2CD3,0x2CD2}, /* 2CD2 */ + {0x2CD4,0x2CD5,0x2CD4}, {0x2CD4,0x2CD5,0x2CD4}, /* 2CD4 */ + {0x2CD6,0x2CD7,0x2CD6}, {0x2CD6,0x2CD7,0x2CD6}, /* 2CD6 */ + {0x2CD8,0x2CD9,0x2CD8}, {0x2CD8,0x2CD9,0x2CD8}, /* 2CD8 */ + {0x2CDA,0x2CDB,0x2CDA}, {0x2CDA,0x2CDB,0x2CDA}, /* 2CDA */ + {0x2CDC,0x2CDD,0x2CDC}, {0x2CDC,0x2CDD,0x2CDC}, /* 2CDC */ + {0x2CDE,0x2CDF,0x2CDE}, {0x2CDE,0x2CDF,0x2CDE}, /* 2CDE */ + {0x2CE0,0x2CE1,0x2CE0}, {0x2CE0,0x2CE1,0x2CE0}, /* 2CE0 */ + {0x2CE2,0x2CE3,0x2CE2}, {0x2CE2,0x2CE3,0x2CE2}, /* 2CE2 */ + {0x2CE4,0x2CE4,0x2CE4}, {0x2CE5,0x2CE5,0x2CE5}, /* 2CE4 */ + {0x2CE6,0x2CE6,0x2CE6}, {0x2CE7,0x2CE7,0x2CE7}, /* 2CE6 */ + {0x2CE8,0x2CE8,0x2CE8}, {0x2CE9,0x2CE9,0x2CE9}, /* 2CE8 */ + {0x2CEA,0x2CEA,0x2CEA}, {0x2CEB,0x2CEC,0x2CEB}, /* 2CEA */ + {0x2CEB,0x2CEC,0x2CEB}, {0x2CED,0x2CEE,0x2CED}, /* 2CEC */ + {0x2CED,0x2CEE,0x2CED}, {0x2CEF,0x2CEF,0x2CEF}, /* 2CEE */ + {0x2CF0,0x2CF0,0x2CF0}, {0x2CF1,0x2CF1,0x2CF1}, /* 2CF0 */ + {0x2CF2,0x2CF2,0x2CF2}, {0x2CF3,0x2CF3,0x2CF3}, /* 2CF2 */ + {0x2CF4,0x2CF4,0x2CF4}, {0x2CF5,0x2CF5,0x2CF5}, /* 2CF4 */ + {0x2CF6,0x2CF6,0x2CF6}, {0x2CF7,0x2CF7,0x2CF7}, /* 2CF6 */ + {0x2CF8,0x2CF8,0x2CF8}, {0x2CF9,0x2CF9,0x2CF9}, /* 2CF8 */ + {0x2CFA,0x2CFA,0x2CFA}, {0x2CFB,0x2CFB,0x2CFB}, /* 2CFA */ + {0x2CFC,0x2CFC,0x2CFC}, {0x2CFD,0x2CFD,0x2CFD}, /* 2CFC */ + {0x2CFE,0x2CFE,0x2CFE}, {0x2CFF,0x2CFF,0x2CFF} /* 2CFE */ +}; + +static MY_UNICASE_CHARACTER u520p2D[]={ + {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 2D00 */ + {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 2D02 */ + {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 2D04 */ + {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 2D06 */ + {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 2D08 */ + {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 2D0A */ + {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 2D0C */ + {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 2D0E */ + {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 2D10 */ + {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 2D12 */ + {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 2D14 */ + {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 2D16 */ + {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 2D18 */ + {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 2D1A */ + {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 2D1C */ + {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 2D1E */ + {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 2D20 */ + {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 2D22 */ + {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 2D24 */ + {0x2D26,0x2D26,0x2D26}, {0x2D27,0x2D27,0x2D27}, /* 2D26 */ + {0x2D28,0x2D28,0x2D28}, {0x2D29,0x2D29,0x2D29}, /* 2D28 */ + {0x2D2A,0x2D2A,0x2D2A}, {0x2D2B,0x2D2B,0x2D2B}, /* 2D2A */ + {0x2D2C,0x2D2C,0x2D2C}, {0x2D2D,0x2D2D,0x2D2D}, /* 2D2C */ + {0x2D2E,0x2D2E,0x2D2E}, {0x2D2F,0x2D2F,0x2D2F}, /* 2D2E */ + {0x2D30,0x2D30,0x2D30}, {0x2D31,0x2D31,0x2D31}, /* 2D30 */ + {0x2D32,0x2D32,0x2D32}, {0x2D33,0x2D33,0x2D33}, /* 2D32 */ + {0x2D34,0x2D34,0x2D34}, {0x2D35,0x2D35,0x2D35}, /* 2D34 */ + {0x2D36,0x2D36,0x2D36}, {0x2D37,0x2D37,0x2D37}, /* 2D36 */ + {0x2D38,0x2D38,0x2D38}, {0x2D39,0x2D39,0x2D39}, /* 2D38 */ + {0x2D3A,0x2D3A,0x2D3A}, {0x2D3B,0x2D3B,0x2D3B}, /* 2D3A */ + {0x2D3C,0x2D3C,0x2D3C}, {0x2D3D,0x2D3D,0x2D3D}, /* 2D3C */ + {0x2D3E,0x2D3E,0x2D3E}, {0x2D3F,0x2D3F,0x2D3F}, /* 2D3E */ + {0x2D40,0x2D40,0x2D40}, {0x2D41,0x2D41,0x2D41}, /* 2D40 */ + {0x2D42,0x2D42,0x2D42}, {0x2D43,0x2D43,0x2D43}, /* 2D42 */ + {0x2D44,0x2D44,0x2D44}, {0x2D45,0x2D45,0x2D45}, /* 2D44 */ + {0x2D46,0x2D46,0x2D46}, {0x2D47,0x2D47,0x2D47}, /* 2D46 */ + {0x2D48,0x2D48,0x2D48}, {0x2D49,0x2D49,0x2D49}, /* 2D48 */ + {0x2D4A,0x2D4A,0x2D4A}, {0x2D4B,0x2D4B,0x2D4B}, /* 2D4A */ + {0x2D4C,0x2D4C,0x2D4C}, {0x2D4D,0x2D4D,0x2D4D}, /* 2D4C */ + {0x2D4E,0x2D4E,0x2D4E}, {0x2D4F,0x2D4F,0x2D4F}, /* 2D4E */ + {0x2D50,0x2D50,0x2D50}, {0x2D51,0x2D51,0x2D51}, /* 2D50 */ + {0x2D52,0x2D52,0x2D52}, {0x2D53,0x2D53,0x2D53}, /* 2D52 */ + {0x2D54,0x2D54,0x2D54}, {0x2D55,0x2D55,0x2D55}, /* 2D54 */ + {0x2D56,0x2D56,0x2D56}, {0x2D57,0x2D57,0x2D57}, /* 2D56 */ + {0x2D58,0x2D58,0x2D58}, {0x2D59,0x2D59,0x2D59}, /* 2D58 */ + {0x2D5A,0x2D5A,0x2D5A}, {0x2D5B,0x2D5B,0x2D5B}, /* 2D5A */ + {0x2D5C,0x2D5C,0x2D5C}, {0x2D5D,0x2D5D,0x2D5D}, /* 2D5C */ + {0x2D5E,0x2D5E,0x2D5E}, {0x2D5F,0x2D5F,0x2D5F}, /* 2D5E */ + {0x2D60,0x2D60,0x2D60}, {0x2D61,0x2D61,0x2D61}, /* 2D60 */ + {0x2D62,0x2D62,0x2D62}, {0x2D63,0x2D63,0x2D63}, /* 2D62 */ + {0x2D64,0x2D64,0x2D64}, {0x2D65,0x2D65,0x2D65}, /* 2D64 */ + {0x2D66,0x2D66,0x2D66}, {0x2D67,0x2D67,0x2D67}, /* 2D66 */ + {0x2D68,0x2D68,0x2D68}, {0x2D69,0x2D69,0x2D69}, /* 2D68 */ + {0x2D6A,0x2D6A,0x2D6A}, {0x2D6B,0x2D6B,0x2D6B}, /* 2D6A */ + {0x2D6C,0x2D6C,0x2D6C}, {0x2D6D,0x2D6D,0x2D6D}, /* 2D6C */ + {0x2D6E,0x2D6E,0x2D6E}, {0x2D6F,0x2D6F,0x2D6F}, /* 2D6E */ + {0x2D70,0x2D70,0x2D70}, {0x2D71,0x2D71,0x2D71}, /* 2D70 */ + {0x2D72,0x2D72,0x2D72}, {0x2D73,0x2D73,0x2D73}, /* 2D72 */ + {0x2D74,0x2D74,0x2D74}, {0x2D75,0x2D75,0x2D75}, /* 2D74 */ + {0x2D76,0x2D76,0x2D76}, {0x2D77,0x2D77,0x2D77}, /* 2D76 */ + {0x2D78,0x2D78,0x2D78}, {0x2D79,0x2D79,0x2D79}, /* 2D78 */ + {0x2D7A,0x2D7A,0x2D7A}, {0x2D7B,0x2D7B,0x2D7B}, /* 2D7A */ + {0x2D7C,0x2D7C,0x2D7C}, {0x2D7D,0x2D7D,0x2D7D}, /* 2D7C */ + {0x2D7E,0x2D7E,0x2D7E}, {0x2D7F,0x2D7F,0x2D7F}, /* 2D7E */ + {0x2D80,0x2D80,0x2D80}, {0x2D81,0x2D81,0x2D81}, /* 2D80 */ + {0x2D82,0x2D82,0x2D82}, {0x2D83,0x2D83,0x2D83}, /* 2D82 */ + {0x2D84,0x2D84,0x2D84}, {0x2D85,0x2D85,0x2D85}, /* 2D84 */ + {0x2D86,0x2D86,0x2D86}, {0x2D87,0x2D87,0x2D87}, /* 2D86 */ + {0x2D88,0x2D88,0x2D88}, {0x2D89,0x2D89,0x2D89}, /* 2D88 */ + {0x2D8A,0x2D8A,0x2D8A}, {0x2D8B,0x2D8B,0x2D8B}, /* 2D8A */ + {0x2D8C,0x2D8C,0x2D8C}, {0x2D8D,0x2D8D,0x2D8D}, /* 2D8C */ + {0x2D8E,0x2D8E,0x2D8E}, {0x2D8F,0x2D8F,0x2D8F}, /* 2D8E */ + {0x2D90,0x2D90,0x2D90}, {0x2D91,0x2D91,0x2D91}, /* 2D90 */ + {0x2D92,0x2D92,0x2D92}, {0x2D93,0x2D93,0x2D93}, /* 2D92 */ + {0x2D94,0x2D94,0x2D94}, {0x2D95,0x2D95,0x2D95}, /* 2D94 */ + {0x2D96,0x2D96,0x2D96}, {0x2D97,0x2D97,0x2D97}, /* 2D96 */ + {0x2D98,0x2D98,0x2D98}, {0x2D99,0x2D99,0x2D99}, /* 2D98 */ + {0x2D9A,0x2D9A,0x2D9A}, {0x2D9B,0x2D9B,0x2D9B}, /* 2D9A */ + {0x2D9C,0x2D9C,0x2D9C}, {0x2D9D,0x2D9D,0x2D9D}, /* 2D9C */ + {0x2D9E,0x2D9E,0x2D9E}, {0x2D9F,0x2D9F,0x2D9F}, /* 2D9E */ + {0x2DA0,0x2DA0,0x2DA0}, {0x2DA1,0x2DA1,0x2DA1}, /* 2DA0 */ + {0x2DA2,0x2DA2,0x2DA2}, {0x2DA3,0x2DA3,0x2DA3}, /* 2DA2 */ + {0x2DA4,0x2DA4,0x2DA4}, {0x2DA5,0x2DA5,0x2DA5}, /* 2DA4 */ + {0x2DA6,0x2DA6,0x2DA6}, {0x2DA7,0x2DA7,0x2DA7}, /* 2DA6 */ + {0x2DA8,0x2DA8,0x2DA8}, {0x2DA9,0x2DA9,0x2DA9}, /* 2DA8 */ + {0x2DAA,0x2DAA,0x2DAA}, {0x2DAB,0x2DAB,0x2DAB}, /* 2DAA */ + {0x2DAC,0x2DAC,0x2DAC}, {0x2DAD,0x2DAD,0x2DAD}, /* 2DAC */ + {0x2DAE,0x2DAE,0x2DAE}, {0x2DAF,0x2DAF,0x2DAF}, /* 2DAE */ + {0x2DB0,0x2DB0,0x2DB0}, {0x2DB1,0x2DB1,0x2DB1}, /* 2DB0 */ + {0x2DB2,0x2DB2,0x2DB2}, {0x2DB3,0x2DB3,0x2DB3}, /* 2DB2 */ + {0x2DB4,0x2DB4,0x2DB4}, {0x2DB5,0x2DB5,0x2DB5}, /* 2DB4 */ + {0x2DB6,0x2DB6,0x2DB6}, {0x2DB7,0x2DB7,0x2DB7}, /* 2DB6 */ + {0x2DB8,0x2DB8,0x2DB8}, {0x2DB9,0x2DB9,0x2DB9}, /* 2DB8 */ + {0x2DBA,0x2DBA,0x2DBA}, {0x2DBB,0x2DBB,0x2DBB}, /* 2DBA */ + {0x2DBC,0x2DBC,0x2DBC}, {0x2DBD,0x2DBD,0x2DBD}, /* 2DBC */ + {0x2DBE,0x2DBE,0x2DBE}, {0x2DBF,0x2DBF,0x2DBF}, /* 2DBE */ + {0x2DC0,0x2DC0,0x2DC0}, {0x2DC1,0x2DC1,0x2DC1}, /* 2DC0 */ + {0x2DC2,0x2DC2,0x2DC2}, {0x2DC3,0x2DC3,0x2DC3}, /* 2DC2 */ + {0x2DC4,0x2DC4,0x2DC4}, {0x2DC5,0x2DC5,0x2DC5}, /* 2DC4 */ + {0x2DC6,0x2DC6,0x2DC6}, {0x2DC7,0x2DC7,0x2DC7}, /* 2DC6 */ + {0x2DC8,0x2DC8,0x2DC8}, {0x2DC9,0x2DC9,0x2DC9}, /* 2DC8 */ + {0x2DCA,0x2DCA,0x2DCA}, {0x2DCB,0x2DCB,0x2DCB}, /* 2DCA */ + {0x2DCC,0x2DCC,0x2DCC}, {0x2DCD,0x2DCD,0x2DCD}, /* 2DCC */ + {0x2DCE,0x2DCE,0x2DCE}, {0x2DCF,0x2DCF,0x2DCF}, /* 2DCE */ + {0x2DD0,0x2DD0,0x2DD0}, {0x2DD1,0x2DD1,0x2DD1}, /* 2DD0 */ + {0x2DD2,0x2DD2,0x2DD2}, {0x2DD3,0x2DD3,0x2DD3}, /* 2DD2 */ + {0x2DD4,0x2DD4,0x2DD4}, {0x2DD5,0x2DD5,0x2DD5}, /* 2DD4 */ + {0x2DD6,0x2DD6,0x2DD6}, {0x2DD7,0x2DD7,0x2DD7}, /* 2DD6 */ + {0x2DD8,0x2DD8,0x2DD8}, {0x2DD9,0x2DD9,0x2DD9}, /* 2DD8 */ + {0x2DDA,0x2DDA,0x2DDA}, {0x2DDB,0x2DDB,0x2DDB}, /* 2DDA */ + {0x2DDC,0x2DDC,0x2DDC}, {0x2DDD,0x2DDD,0x2DDD}, /* 2DDC */ + {0x2DDE,0x2DDE,0x2DDE}, {0x2DDF,0x2DDF,0x2DDF}, /* 2DDE */ + {0x2DE0,0x2DE0,0x2DE0}, {0x2DE1,0x2DE1,0x2DE1}, /* 2DE0 */ + {0x2DE2,0x2DE2,0x2DE2}, {0x2DE3,0x2DE3,0x2DE3}, /* 2DE2 */ + {0x2DE4,0x2DE4,0x2DE4}, {0x2DE5,0x2DE5,0x2DE5}, /* 2DE4 */ + {0x2DE6,0x2DE6,0x2DE6}, {0x2DE7,0x2DE7,0x2DE7}, /* 2DE6 */ + {0x2DE8,0x2DE8,0x2DE8}, {0x2DE9,0x2DE9,0x2DE9}, /* 2DE8 */ + {0x2DEA,0x2DEA,0x2DEA}, {0x2DEB,0x2DEB,0x2DEB}, /* 2DEA */ + {0x2DEC,0x2DEC,0x2DEC}, {0x2DED,0x2DED,0x2DED}, /* 2DEC */ + {0x2DEE,0x2DEE,0x2DEE}, {0x2DEF,0x2DEF,0x2DEF}, /* 2DEE */ + {0x2DF0,0x2DF0,0x2DF0}, {0x2DF1,0x2DF1,0x2DF1}, /* 2DF0 */ + {0x2DF2,0x2DF2,0x2DF2}, {0x2DF3,0x2DF3,0x2DF3}, /* 2DF2 */ + {0x2DF4,0x2DF4,0x2DF4}, {0x2DF5,0x2DF5,0x2DF5}, /* 2DF4 */ + {0x2DF6,0x2DF6,0x2DF6}, {0x2DF7,0x2DF7,0x2DF7}, /* 2DF6 */ + {0x2DF8,0x2DF8,0x2DF8}, {0x2DF9,0x2DF9,0x2DF9}, /* 2DF8 */ + {0x2DFA,0x2DFA,0x2DFA}, {0x2DFB,0x2DFB,0x2DFB}, /* 2DFA */ + {0x2DFC,0x2DFC,0x2DFC}, {0x2DFD,0x2DFD,0x2DFD}, /* 2DFC */ + {0x2DFE,0x2DFE,0x2DFE}, {0x2DFF,0x2DFF,0x2DFF} /* 2DFE */ +}; + +static MY_UNICASE_CHARACTER u520pA6[]={ + {0xA600,0xA600,0xA600}, {0xA601,0xA601,0xA601}, /* A600 */ + {0xA602,0xA602,0xA602}, {0xA603,0xA603,0xA603}, /* A602 */ + {0xA604,0xA604,0xA604}, {0xA605,0xA605,0xA605}, /* A604 */ + {0xA606,0xA606,0xA606}, {0xA607,0xA607,0xA607}, /* A606 */ + {0xA608,0xA608,0xA608}, {0xA609,0xA609,0xA609}, /* A608 */ + {0xA60A,0xA60A,0xA60A}, {0xA60B,0xA60B,0xA60B}, /* A60A */ + {0xA60C,0xA60C,0xA60C}, {0xA60D,0xA60D,0xA60D}, /* A60C */ + {0xA60E,0xA60E,0xA60E}, {0xA60F,0xA60F,0xA60F}, /* A60E */ + {0xA610,0xA610,0xA610}, {0xA611,0xA611,0xA611}, /* A610 */ + {0xA612,0xA612,0xA612}, {0xA613,0xA613,0xA613}, /* A612 */ + {0xA614,0xA614,0xA614}, {0xA615,0xA615,0xA615}, /* A614 */ + {0xA616,0xA616,0xA616}, {0xA617,0xA617,0xA617}, /* A616 */ + {0xA618,0xA618,0xA618}, {0xA619,0xA619,0xA619}, /* A618 */ + {0xA61A,0xA61A,0xA61A}, {0xA61B,0xA61B,0xA61B}, /* A61A */ + {0xA61C,0xA61C,0xA61C}, {0xA61D,0xA61D,0xA61D}, /* A61C */ + {0xA61E,0xA61E,0xA61E}, {0xA61F,0xA61F,0xA61F}, /* A61E */ + {0xA620,0xA620,0xA620}, {0xA621,0xA621,0xA621}, /* A620 */ + {0xA622,0xA622,0xA622}, {0xA623,0xA623,0xA623}, /* A622 */ + {0xA624,0xA624,0xA624}, {0xA625,0xA625,0xA625}, /* A624 */ + {0xA626,0xA626,0xA626}, {0xA627,0xA627,0xA627}, /* A626 */ + {0xA628,0xA628,0xA628}, {0xA629,0xA629,0xA629}, /* A628 */ + {0xA62A,0xA62A,0xA62A}, {0xA62B,0xA62B,0xA62B}, /* A62A */ + {0xA62C,0xA62C,0xA62C}, {0xA62D,0xA62D,0xA62D}, /* A62C */ + {0xA62E,0xA62E,0xA62E}, {0xA62F,0xA62F,0xA62F}, /* A62E */ + {0xA630,0xA630,0xA630}, {0xA631,0xA631,0xA631}, /* A630 */ + {0xA632,0xA632,0xA632}, {0xA633,0xA633,0xA633}, /* A632 */ + {0xA634,0xA634,0xA634}, {0xA635,0xA635,0xA635}, /* A634 */ + {0xA636,0xA636,0xA636}, {0xA637,0xA637,0xA637}, /* A636 */ + {0xA638,0xA638,0xA638}, {0xA639,0xA639,0xA639}, /* A638 */ + {0xA63A,0xA63A,0xA63A}, {0xA63B,0xA63B,0xA63B}, /* A63A */ + {0xA63C,0xA63C,0xA63C}, {0xA63D,0xA63D,0xA63D}, /* A63C */ + {0xA63E,0xA63E,0xA63E}, {0xA63F,0xA63F,0xA63F}, /* A63E */ + {0xA640,0xA641,0xA640}, {0xA640,0xA641,0xA640}, /* A640 */ + {0xA642,0xA643,0xA642}, {0xA642,0xA643,0xA642}, /* A642 */ + {0xA644,0xA645,0xA644}, {0xA644,0xA645,0xA644}, /* A644 */ + {0xA646,0xA647,0xA646}, {0xA646,0xA647,0xA646}, /* A646 */ + {0xA648,0xA649,0xA648}, {0xA648,0xA649,0xA648}, /* A648 */ + {0xA64A,0xA64B,0xA64A}, {0xA64A,0xA64B,0xA64A}, /* A64A */ + {0xA64C,0xA64D,0xA64C}, {0xA64C,0xA64D,0xA64C}, /* A64C */ + {0xA64E,0xA64F,0xA64E}, {0xA64E,0xA64F,0xA64E}, /* A64E */ + {0xA650,0xA651,0xA650}, {0xA650,0xA651,0xA650}, /* A650 */ + {0xA652,0xA653,0xA652}, {0xA652,0xA653,0xA652}, /* A652 */ + {0xA654,0xA655,0xA654}, {0xA654,0xA655,0xA654}, /* A654 */ + {0xA656,0xA657,0xA656}, {0xA656,0xA657,0xA656}, /* A656 */ + {0xA658,0xA659,0xA658}, {0xA658,0xA659,0xA658}, /* A658 */ + {0xA65A,0xA65B,0xA65A}, {0xA65A,0xA65B,0xA65A}, /* A65A */ + {0xA65C,0xA65D,0xA65C}, {0xA65C,0xA65D,0xA65C}, /* A65C */ + {0xA65E,0xA65F,0xA65E}, {0xA65E,0xA65F,0xA65E}, /* A65E */ + {0xA660,0xA660,0xA660}, {0xA661,0xA661,0xA661}, /* A660 */ + {0xA662,0xA663,0xA662}, {0xA662,0xA663,0xA662}, /* A662 */ + {0xA664,0xA665,0xA664}, {0xA664,0xA665,0xA664}, /* A664 */ + {0xA666,0xA667,0xA666}, {0xA666,0xA667,0xA666}, /* A666 */ + {0xA668,0xA669,0xA668}, {0xA668,0xA669,0xA668}, /* A668 */ + {0xA66A,0xA66B,0xA66A}, {0xA66A,0xA66B,0xA66A}, /* A66A */ + {0xA66C,0xA66D,0xA66C}, {0xA66C,0xA66D,0xA66C}, /* A66C */ + {0xA66E,0xA66E,0xA66E}, {0xA66F,0xA66F,0xA66F}, /* A66E */ + {0xA670,0xA670,0xA670}, {0xA671,0xA671,0xA671}, /* A670 */ + {0xA672,0xA672,0xA672}, {0xA673,0xA673,0xA673}, /* A672 */ + {0xA674,0xA674,0xA674}, {0xA675,0xA675,0xA675}, /* A674 */ + {0xA676,0xA676,0xA676}, {0xA677,0xA677,0xA677}, /* A676 */ + {0xA678,0xA678,0xA678}, {0xA679,0xA679,0xA679}, /* A678 */ + {0xA67A,0xA67A,0xA67A}, {0xA67B,0xA67B,0xA67B}, /* A67A */ + {0xA67C,0xA67C,0xA67C}, {0xA67D,0xA67D,0xA67D}, /* A67C */ + {0xA67E,0xA67E,0xA67E}, {0xA67F,0xA67F,0xA67F}, /* A67E */ + {0xA680,0xA681,0xA680}, {0xA680,0xA681,0xA680}, /* A680 */ + {0xA682,0xA683,0xA682}, {0xA682,0xA683,0xA682}, /* A682 */ + {0xA684,0xA685,0xA684}, {0xA684,0xA685,0xA684}, /* A684 */ + {0xA686,0xA687,0xA686}, {0xA686,0xA687,0xA686}, /* A686 */ + {0xA688,0xA689,0xA688}, {0xA688,0xA689,0xA688}, /* A688 */ + {0xA68A,0xA68B,0xA68A}, {0xA68A,0xA68B,0xA68A}, /* A68A */ + {0xA68C,0xA68D,0xA68C}, {0xA68C,0xA68D,0xA68C}, /* A68C */ + {0xA68E,0xA68F,0xA68E}, {0xA68E,0xA68F,0xA68E}, /* A68E */ + {0xA690,0xA691,0xA690}, {0xA690,0xA691,0xA690}, /* A690 */ + {0xA692,0xA693,0xA692}, {0xA692,0xA693,0xA692}, /* A692 */ + {0xA694,0xA695,0xA694}, {0xA694,0xA695,0xA694}, /* A694 */ + {0xA696,0xA697,0xA696}, {0xA696,0xA697,0xA696}, /* A696 */ + {0xA698,0xA698,0xA698}, {0xA699,0xA699,0xA699}, /* A698 */ + {0xA69A,0xA69A,0xA69A}, {0xA69B,0xA69B,0xA69B}, /* A69A */ + {0xA69C,0xA69C,0xA69C}, {0xA69D,0xA69D,0xA69D}, /* A69C */ + {0xA69E,0xA69E,0xA69E}, {0xA69F,0xA69F,0xA69F}, /* A69E */ + {0xA6A0,0xA6A0,0xA6A0}, {0xA6A1,0xA6A1,0xA6A1}, /* A6A0 */ + {0xA6A2,0xA6A2,0xA6A2}, {0xA6A3,0xA6A3,0xA6A3}, /* A6A2 */ + {0xA6A4,0xA6A4,0xA6A4}, {0xA6A5,0xA6A5,0xA6A5}, /* A6A4 */ + {0xA6A6,0xA6A6,0xA6A6}, {0xA6A7,0xA6A7,0xA6A7}, /* A6A6 */ + {0xA6A8,0xA6A8,0xA6A8}, {0xA6A9,0xA6A9,0xA6A9}, /* A6A8 */ + {0xA6AA,0xA6AA,0xA6AA}, {0xA6AB,0xA6AB,0xA6AB}, /* A6AA */ + {0xA6AC,0xA6AC,0xA6AC}, {0xA6AD,0xA6AD,0xA6AD}, /* A6AC */ + {0xA6AE,0xA6AE,0xA6AE}, {0xA6AF,0xA6AF,0xA6AF}, /* A6AE */ + {0xA6B0,0xA6B0,0xA6B0}, {0xA6B1,0xA6B1,0xA6B1}, /* A6B0 */ + {0xA6B2,0xA6B2,0xA6B2}, {0xA6B3,0xA6B3,0xA6B3}, /* A6B2 */ + {0xA6B4,0xA6B4,0xA6B4}, {0xA6B5,0xA6B5,0xA6B5}, /* A6B4 */ + {0xA6B6,0xA6B6,0xA6B6}, {0xA6B7,0xA6B7,0xA6B7}, /* A6B6 */ + {0xA6B8,0xA6B8,0xA6B8}, {0xA6B9,0xA6B9,0xA6B9}, /* A6B8 */ + {0xA6BA,0xA6BA,0xA6BA}, {0xA6BB,0xA6BB,0xA6BB}, /* A6BA */ + {0xA6BC,0xA6BC,0xA6BC}, {0xA6BD,0xA6BD,0xA6BD}, /* A6BC */ + {0xA6BE,0xA6BE,0xA6BE}, {0xA6BF,0xA6BF,0xA6BF}, /* A6BE */ + {0xA6C0,0xA6C0,0xA6C0}, {0xA6C1,0xA6C1,0xA6C1}, /* A6C0 */ + {0xA6C2,0xA6C2,0xA6C2}, {0xA6C3,0xA6C3,0xA6C3}, /* A6C2 */ + {0xA6C4,0xA6C4,0xA6C4}, {0xA6C5,0xA6C5,0xA6C5}, /* A6C4 */ + {0xA6C6,0xA6C6,0xA6C6}, {0xA6C7,0xA6C7,0xA6C7}, /* A6C6 */ + {0xA6C8,0xA6C8,0xA6C8}, {0xA6C9,0xA6C9,0xA6C9}, /* A6C8 */ + {0xA6CA,0xA6CA,0xA6CA}, {0xA6CB,0xA6CB,0xA6CB}, /* A6CA */ + {0xA6CC,0xA6CC,0xA6CC}, {0xA6CD,0xA6CD,0xA6CD}, /* A6CC */ + {0xA6CE,0xA6CE,0xA6CE}, {0xA6CF,0xA6CF,0xA6CF}, /* A6CE */ + {0xA6D0,0xA6D0,0xA6D0}, {0xA6D1,0xA6D1,0xA6D1}, /* A6D0 */ + {0xA6D2,0xA6D2,0xA6D2}, {0xA6D3,0xA6D3,0xA6D3}, /* A6D2 */ + {0xA6D4,0xA6D4,0xA6D4}, {0xA6D5,0xA6D5,0xA6D5}, /* A6D4 */ + {0xA6D6,0xA6D6,0xA6D6}, {0xA6D7,0xA6D7,0xA6D7}, /* A6D6 */ + {0xA6D8,0xA6D8,0xA6D8}, {0xA6D9,0xA6D9,0xA6D9}, /* A6D8 */ + {0xA6DA,0xA6DA,0xA6DA}, {0xA6DB,0xA6DB,0xA6DB}, /* A6DA */ + {0xA6DC,0xA6DC,0xA6DC}, {0xA6DD,0xA6DD,0xA6DD}, /* A6DC */ + {0xA6DE,0xA6DE,0xA6DE}, {0xA6DF,0xA6DF,0xA6DF}, /* A6DE */ + {0xA6E0,0xA6E0,0xA6E0}, {0xA6E1,0xA6E1,0xA6E1}, /* A6E0 */ + {0xA6E2,0xA6E2,0xA6E2}, {0xA6E3,0xA6E3,0xA6E3}, /* A6E2 */ + {0xA6E4,0xA6E4,0xA6E4}, {0xA6E5,0xA6E5,0xA6E5}, /* A6E4 */ + {0xA6E6,0xA6E6,0xA6E6}, {0xA6E7,0xA6E7,0xA6E7}, /* A6E6 */ + {0xA6E8,0xA6E8,0xA6E8}, {0xA6E9,0xA6E9,0xA6E9}, /* A6E8 */ + {0xA6EA,0xA6EA,0xA6EA}, {0xA6EB,0xA6EB,0xA6EB}, /* A6EA */ + {0xA6EC,0xA6EC,0xA6EC}, {0xA6ED,0xA6ED,0xA6ED}, /* A6EC */ + {0xA6EE,0xA6EE,0xA6EE}, {0xA6EF,0xA6EF,0xA6EF}, /* A6EE */ + {0xA6F0,0xA6F0,0xA6F0}, {0xA6F1,0xA6F1,0xA6F1}, /* A6F0 */ + {0xA6F2,0xA6F2,0xA6F2}, {0xA6F3,0xA6F3,0xA6F3}, /* A6F2 */ + {0xA6F4,0xA6F4,0xA6F4}, {0xA6F5,0xA6F5,0xA6F5}, /* A6F4 */ + {0xA6F6,0xA6F6,0xA6F6}, {0xA6F7,0xA6F7,0xA6F7}, /* A6F6 */ + {0xA6F8,0xA6F8,0xA6F8}, {0xA6F9,0xA6F9,0xA6F9}, /* A6F8 */ + {0xA6FA,0xA6FA,0xA6FA}, {0xA6FB,0xA6FB,0xA6FB}, /* A6FA */ + {0xA6FC,0xA6FC,0xA6FC}, {0xA6FD,0xA6FD,0xA6FD}, /* A6FC */ + {0xA6FE,0xA6FE,0xA6FE}, {0xA6FF,0xA6FF,0xA6FF} /* A6FE */ +}; + +static MY_UNICASE_CHARACTER u520pA7[]={ + {0xA700,0xA700,0xA700}, {0xA701,0xA701,0xA701}, /* A700 */ + {0xA702,0xA702,0xA702}, {0xA703,0xA703,0xA703}, /* A702 */ + {0xA704,0xA704,0xA704}, {0xA705,0xA705,0xA705}, /* A704 */ + {0xA706,0xA706,0xA706}, {0xA707,0xA707,0xA707}, /* A706 */ + {0xA708,0xA708,0xA708}, {0xA709,0xA709,0xA709}, /* A708 */ + {0xA70A,0xA70A,0xA70A}, {0xA70B,0xA70B,0xA70B}, /* A70A */ + {0xA70C,0xA70C,0xA70C}, {0xA70D,0xA70D,0xA70D}, /* A70C */ + {0xA70E,0xA70E,0xA70E}, {0xA70F,0xA70F,0xA70F}, /* A70E */ + {0xA710,0xA710,0xA710}, {0xA711,0xA711,0xA711}, /* A710 */ + {0xA712,0xA712,0xA712}, {0xA713,0xA713,0xA713}, /* A712 */ + {0xA714,0xA714,0xA714}, {0xA715,0xA715,0xA715}, /* A714 */ + {0xA716,0xA716,0xA716}, {0xA717,0xA717,0xA717}, /* A716 */ + {0xA718,0xA718,0xA718}, {0xA719,0xA719,0xA719}, /* A718 */ + {0xA71A,0xA71A,0xA71A}, {0xA71B,0xA71B,0xA71B}, /* A71A */ + {0xA71C,0xA71C,0xA71C}, {0xA71D,0xA71D,0xA71D}, /* A71C */ + {0xA71E,0xA71E,0xA71E}, {0xA71F,0xA71F,0xA71F}, /* A71E */ + {0xA720,0xA720,0xA720}, {0xA721,0xA721,0xA721}, /* A720 */ + {0xA722,0xA723,0xA722}, {0xA722,0xA723,0xA722}, /* A722 */ + {0xA724,0xA725,0xA724}, {0xA724,0xA725,0xA724}, /* A724 */ + {0xA726,0xA727,0xA726}, {0xA726,0xA727,0xA726}, /* A726 */ + {0xA728,0xA729,0xA728}, {0xA728,0xA729,0xA728}, /* A728 */ + {0xA72A,0xA72B,0xA72A}, {0xA72A,0xA72B,0xA72A}, /* A72A */ + {0xA72C,0xA72D,0xA72C}, {0xA72C,0xA72D,0xA72C}, /* A72C */ + {0xA72E,0xA72F,0xA72E}, {0xA72E,0xA72F,0xA72E}, /* A72E */ + {0xA730,0xA730,0xA730}, {0xA731,0xA731,0xA731}, /* A730 */ + {0xA732,0xA733,0xA732}, {0xA732,0xA733,0xA732}, /* A732 */ + {0xA734,0xA735,0xA734}, {0xA734,0xA735,0xA734}, /* A734 */ + {0xA736,0xA737,0xA736}, {0xA736,0xA737,0xA736}, /* A736 */ + {0xA738,0xA739,0xA738}, {0xA738,0xA739,0xA738}, /* A738 */ + {0xA73A,0xA73B,0xA73A}, {0xA73A,0xA73B,0xA73A}, /* A73A */ + {0xA73C,0xA73D,0xA73C}, {0xA73C,0xA73D,0xA73C}, /* A73C */ + {0xA73E,0xA73F,0xA73E}, {0xA73E,0xA73F,0xA73E}, /* A73E */ + {0xA740,0xA741,0xA740}, {0xA740,0xA741,0xA740}, /* A740 */ + {0xA742,0xA743,0xA742}, {0xA742,0xA743,0xA742}, /* A742 */ + {0xA744,0xA745,0xA744}, {0xA744,0xA745,0xA744}, /* A744 */ + {0xA746,0xA747,0xA746}, {0xA746,0xA747,0xA746}, /* A746 */ + {0xA748,0xA749,0xA748}, {0xA748,0xA749,0xA748}, /* A748 */ + {0xA74A,0xA74B,0xA74A}, {0xA74A,0xA74B,0xA74A}, /* A74A */ + {0xA74C,0xA74D,0xA74C}, {0xA74C,0xA74D,0xA74C}, /* A74C */ + {0xA74E,0xA74F,0xA74E}, {0xA74E,0xA74F,0xA74E}, /* A74E */ + {0xA750,0xA751,0xA750}, {0xA750,0xA751,0xA750}, /* A750 */ + {0xA752,0xA753,0xA752}, {0xA752,0xA753,0xA752}, /* A752 */ + {0xA754,0xA755,0xA754}, {0xA754,0xA755,0xA754}, /* A754 */ + {0xA756,0xA757,0xA756}, {0xA756,0xA757,0xA756}, /* A756 */ + {0xA758,0xA759,0xA758}, {0xA758,0xA759,0xA758}, /* A758 */ + {0xA75A,0xA75B,0xA75A}, {0xA75A,0xA75B,0xA75A}, /* A75A */ + {0xA75C,0xA75D,0xA75C}, {0xA75C,0xA75D,0xA75C}, /* A75C */ + {0xA75E,0xA75F,0xA75E}, {0xA75E,0xA75F,0xA75E}, /* A75E */ + {0xA760,0xA761,0xA760}, {0xA760,0xA761,0xA760}, /* A760 */ + {0xA762,0xA763,0xA762}, {0xA762,0xA763,0xA762}, /* A762 */ + {0xA764,0xA765,0xA764}, {0xA764,0xA765,0xA764}, /* A764 */ + {0xA766,0xA767,0xA766}, {0xA766,0xA767,0xA766}, /* A766 */ + {0xA768,0xA769,0xA768}, {0xA768,0xA769,0xA768}, /* A768 */ + {0xA76A,0xA76B,0xA76A}, {0xA76A,0xA76B,0xA76A}, /* A76A */ + {0xA76C,0xA76D,0xA76C}, {0xA76C,0xA76D,0xA76C}, /* A76C */ + {0xA76E,0xA76F,0xA76E}, {0xA76E,0xA76F,0xA76E}, /* A76E */ + {0xA770,0xA770,0xA770}, {0xA771,0xA771,0xA771}, /* A770 */ + {0xA772,0xA772,0xA772}, {0xA773,0xA773,0xA773}, /* A772 */ + {0xA774,0xA774,0xA774}, {0xA775,0xA775,0xA775}, /* A774 */ + {0xA776,0xA776,0xA776}, {0xA777,0xA777,0xA777}, /* A776 */ + {0xA778,0xA778,0xA778}, {0xA779,0xA77A,0xA779}, /* A778 */ + {0xA779,0xA77A,0xA779}, {0xA77B,0xA77C,0xA77B}, /* A77A */ + {0xA77B,0xA77C,0xA77B}, {0xA77D,0x1D79,0xA77D}, /* A77C */ + {0xA77E,0xA77F,0xA77E}, {0xA77E,0xA77F,0xA77E}, /* A77E */ + {0xA780,0xA781,0xA780}, {0xA780,0xA781,0xA780}, /* A780 */ + {0xA782,0xA783,0xA782}, {0xA782,0xA783,0xA782}, /* A782 */ + {0xA784,0xA785,0xA784}, {0xA784,0xA785,0xA784}, /* A784 */ + {0xA786,0xA787,0xA786}, {0xA786,0xA787,0xA786}, /* A786 */ + {0xA788,0xA788,0xA788}, {0xA789,0xA789,0xA789}, /* A788 */ + {0xA78A,0xA78A,0xA78A}, {0xA78B,0xA78C,0xA78B}, /* A78A */ + {0xA78B,0xA78C,0xA78B}, {0xA78D,0xA78D,0xA78D}, /* A78C */ + {0xA78E,0xA78E,0xA78E}, {0xA78F,0xA78F,0xA78F}, /* A78E */ + {0xA790,0xA790,0xA790}, {0xA791,0xA791,0xA791}, /* A790 */ + {0xA792,0xA792,0xA792}, {0xA793,0xA793,0xA793}, /* A792 */ + {0xA794,0xA794,0xA794}, {0xA795,0xA795,0xA795}, /* A794 */ + {0xA796,0xA796,0xA796}, {0xA797,0xA797,0xA797}, /* A796 */ + {0xA798,0xA798,0xA798}, {0xA799,0xA799,0xA799}, /* A798 */ + {0xA79A,0xA79A,0xA79A}, {0xA79B,0xA79B,0xA79B}, /* A79A */ + {0xA79C,0xA79C,0xA79C}, {0xA79D,0xA79D,0xA79D}, /* A79C */ + {0xA79E,0xA79E,0xA79E}, {0xA79F,0xA79F,0xA79F}, /* A79E */ + {0xA7A0,0xA7A0,0xA7A0}, {0xA7A1,0xA7A1,0xA7A1}, /* A7A0 */ + {0xA7A2,0xA7A2,0xA7A2}, {0xA7A3,0xA7A3,0xA7A3}, /* A7A2 */ + {0xA7A4,0xA7A4,0xA7A4}, {0xA7A5,0xA7A5,0xA7A5}, /* A7A4 */ + {0xA7A6,0xA7A6,0xA7A6}, {0xA7A7,0xA7A7,0xA7A7}, /* A7A6 */ + {0xA7A8,0xA7A8,0xA7A8}, {0xA7A9,0xA7A9,0xA7A9}, /* A7A8 */ + {0xA7AA,0xA7AA,0xA7AA}, {0xA7AB,0xA7AB,0xA7AB}, /* A7AA */ + {0xA7AC,0xA7AC,0xA7AC}, {0xA7AD,0xA7AD,0xA7AD}, /* A7AC */ + {0xA7AE,0xA7AE,0xA7AE}, {0xA7AF,0xA7AF,0xA7AF}, /* A7AE */ + {0xA7B0,0xA7B0,0xA7B0}, {0xA7B1,0xA7B1,0xA7B1}, /* A7B0 */ + {0xA7B2,0xA7B2,0xA7B2}, {0xA7B3,0xA7B3,0xA7B3}, /* A7B2 */ + {0xA7B4,0xA7B4,0xA7B4}, {0xA7B5,0xA7B5,0xA7B5}, /* A7B4 */ + {0xA7B6,0xA7B6,0xA7B6}, {0xA7B7,0xA7B7,0xA7B7}, /* A7B6 */ + {0xA7B8,0xA7B8,0xA7B8}, {0xA7B9,0xA7B9,0xA7B9}, /* A7B8 */ + {0xA7BA,0xA7BA,0xA7BA}, {0xA7BB,0xA7BB,0xA7BB}, /* A7BA */ + {0xA7BC,0xA7BC,0xA7BC}, {0xA7BD,0xA7BD,0xA7BD}, /* A7BC */ + {0xA7BE,0xA7BE,0xA7BE}, {0xA7BF,0xA7BF,0xA7BF}, /* A7BE */ + {0xA7C0,0xA7C0,0xA7C0}, {0xA7C1,0xA7C1,0xA7C1}, /* A7C0 */ + {0xA7C2,0xA7C2,0xA7C2}, {0xA7C3,0xA7C3,0xA7C3}, /* A7C2 */ + {0xA7C4,0xA7C4,0xA7C4}, {0xA7C5,0xA7C5,0xA7C5}, /* A7C4 */ + {0xA7C6,0xA7C6,0xA7C6}, {0xA7C7,0xA7C7,0xA7C7}, /* A7C6 */ + {0xA7C8,0xA7C8,0xA7C8}, {0xA7C9,0xA7C9,0xA7C9}, /* A7C8 */ + {0xA7CA,0xA7CA,0xA7CA}, {0xA7CB,0xA7CB,0xA7CB}, /* A7CA */ + {0xA7CC,0xA7CC,0xA7CC}, {0xA7CD,0xA7CD,0xA7CD}, /* A7CC */ + {0xA7CE,0xA7CE,0xA7CE}, {0xA7CF,0xA7CF,0xA7CF}, /* A7CE */ + {0xA7D0,0xA7D0,0xA7D0}, {0xA7D1,0xA7D1,0xA7D1}, /* A7D0 */ + {0xA7D2,0xA7D2,0xA7D2}, {0xA7D3,0xA7D3,0xA7D3}, /* A7D2 */ + {0xA7D4,0xA7D4,0xA7D4}, {0xA7D5,0xA7D5,0xA7D5}, /* A7D4 */ + {0xA7D6,0xA7D6,0xA7D6}, {0xA7D7,0xA7D7,0xA7D7}, /* A7D6 */ + {0xA7D8,0xA7D8,0xA7D8}, {0xA7D9,0xA7D9,0xA7D9}, /* A7D8 */ + {0xA7DA,0xA7DA,0xA7DA}, {0xA7DB,0xA7DB,0xA7DB}, /* A7DA */ + {0xA7DC,0xA7DC,0xA7DC}, {0xA7DD,0xA7DD,0xA7DD}, /* A7DC */ + {0xA7DE,0xA7DE,0xA7DE}, {0xA7DF,0xA7DF,0xA7DF}, /* A7DE */ + {0xA7E0,0xA7E0,0xA7E0}, {0xA7E1,0xA7E1,0xA7E1}, /* A7E0 */ + {0xA7E2,0xA7E2,0xA7E2}, {0xA7E3,0xA7E3,0xA7E3}, /* A7E2 */ + {0xA7E4,0xA7E4,0xA7E4}, {0xA7E5,0xA7E5,0xA7E5}, /* A7E4 */ + {0xA7E6,0xA7E6,0xA7E6}, {0xA7E7,0xA7E7,0xA7E7}, /* A7E6 */ + {0xA7E8,0xA7E8,0xA7E8}, {0xA7E9,0xA7E9,0xA7E9}, /* A7E8 */ + {0xA7EA,0xA7EA,0xA7EA}, {0xA7EB,0xA7EB,0xA7EB}, /* A7EA */ + {0xA7EC,0xA7EC,0xA7EC}, {0xA7ED,0xA7ED,0xA7ED}, /* A7EC */ + {0xA7EE,0xA7EE,0xA7EE}, {0xA7EF,0xA7EF,0xA7EF}, /* A7EE */ + {0xA7F0,0xA7F0,0xA7F0}, {0xA7F1,0xA7F1,0xA7F1}, /* A7F0 */ + {0xA7F2,0xA7F2,0xA7F2}, {0xA7F3,0xA7F3,0xA7F3}, /* A7F2 */ + {0xA7F4,0xA7F4,0xA7F4}, {0xA7F5,0xA7F5,0xA7F5}, /* A7F4 */ + {0xA7F6,0xA7F6,0xA7F6}, {0xA7F7,0xA7F7,0xA7F7}, /* A7F6 */ + {0xA7F8,0xA7F8,0xA7F8}, {0xA7F9,0xA7F9,0xA7F9}, /* A7F8 */ + {0xA7FA,0xA7FA,0xA7FA}, {0xA7FB,0xA7FB,0xA7FB}, /* A7FA */ + {0xA7FC,0xA7FC,0xA7FC}, {0xA7FD,0xA7FD,0xA7FD}, /* A7FC */ + {0xA7FE,0xA7FE,0xA7FE}, {0xA7FF,0xA7FF,0xA7FF} /* A7FE */ +}; + +static MY_UNICASE_CHARACTER u520pFF[]={ + {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, /* FF00 */ + {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, /* FF02 */ + {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, /* FF04 */ + {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, /* FF06 */ + {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, /* FF08 */ + {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, /* FF0A */ + {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, /* FF0C */ + {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, /* FF0E */ + {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, /* FF10 */ + {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, /* FF12 */ + {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, /* FF14 */ + {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, /* FF16 */ + {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, /* FF18 */ + {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, /* FF1A */ + {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, /* FF1C */ + {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, /* FF1E */ + {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, /* FF20 */ + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF22 */ + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF24 */ + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF26 */ + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF28 */ + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF2A */ + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF2C */ + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF2E */ + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF30 */ + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF32 */ + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF34 */ + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF36 */ + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF38 */ + {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, /* FF3A */ + {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, /* FF3C */ + {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, /* FF3E */ + {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, /* FF40 */ + {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF42 */ + {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF44 */ + {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF46 */ + {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF48 */ + {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF4A */ + {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF4C */ + {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF4E */ + {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF50 */ + {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF52 */ + {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF54 */ + {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF56 */ + {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF58 */ + {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, /* FF5A */ + {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, /* FF5C */ + {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, /* FF5E */ + {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, /* FF60 */ + {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, /* FF62 */ + {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, /* FF64 */ + {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, /* FF66 */ + {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, /* FF68 */ + {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, /* FF6A */ + {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, /* FF6C */ + {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, /* FF6E */ + {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, /* FF70 */ + {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, /* FF72 */ + {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, /* FF74 */ + {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, /* FF76 */ + {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, /* FF78 */ + {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, /* FF7A */ + {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, /* FF7C */ + {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, /* FF7E */ + {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, /* FF80 */ + {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, /* FF82 */ + {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, /* FF84 */ + {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, /* FF86 */ + {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, /* FF88 */ + {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, /* FF8A */ + {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, /* FF8C */ + {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, /* FF8E */ + {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, /* FF90 */ + {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, /* FF92 */ + {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, /* FF94 */ + {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, /* FF96 */ + {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, /* FF98 */ + {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, /* FF9A */ + {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, /* FF9C */ + {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, /* FF9E */ + {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, /* FFA0 */ + {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, /* FFA2 */ + {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, /* FFA4 */ + {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, /* FFA6 */ + {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, /* FFA8 */ + {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, /* FFAA */ + {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, /* FFAC */ + {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, /* FFAE */ + {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, /* FFB0 */ + {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, /* FFB2 */ + {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, /* FFB4 */ + {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, /* FFB6 */ + {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, /* FFB8 */ + {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, /* FFBA */ + {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, /* FFBC */ + {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, /* FFBE */ + {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, /* FFC0 */ + {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, /* FFC2 */ + {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, /* FFC4 */ + {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, /* FFC6 */ + {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, /* FFC8 */ + {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, /* FFCA */ + {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, /* FFCC */ + {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, /* FFCE */ + {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, /* FFD0 */ + {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, /* FFD2 */ + {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, /* FFD4 */ + {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, /* FFD6 */ + {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, /* FFD8 */ + {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, /* FFDA */ + {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, /* FFDC */ + {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, /* FFDE */ + {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, /* FFE0 */ + {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, /* FFE2 */ + {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, /* FFE4 */ + {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, /* FFE6 */ + {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, /* FFE8 */ + {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, /* FFEA */ + {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, /* FFEC */ + {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, /* FFEE */ + {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, /* FFF0 */ + {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, /* FFF2 */ + {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, /* FFF4 */ + {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, /* FFF6 */ + {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, /* FFF8 */ + {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, /* FFFA */ + {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, /* FFFC */ + {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} /* FFFE */ +}; + +static MY_UNICASE_CHARACTER u520p104[]={ + {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10400 */ + {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 10402 */ + {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 10404 */ + {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 10406 */ + {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10408 */ + {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 1040A */ + {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 1040C */ + {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 1040E */ + {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10410 */ + {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 10412 */ + {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 10414 */ + {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 10416 */ + {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10418 */ + {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 1041A */ + {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 1041C */ + {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 1041E */ + {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10420 */ + {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 10422 */ + {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 10424 */ + {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 10426 */ + {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10428 */ + {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 1042A */ + {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 1042C */ + {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 1042E */ + {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10430 */ + {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 10432 */ + {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 10434 */ + {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 10436 */ + {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10438 */ + {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 1043A */ + {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 1043C */ + {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 1043E */ + {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10440 */ + {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 10442 */ + {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 10444 */ + {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 10446 */ + {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10448 */ + {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 1044A */ + {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 1044C */ + {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 1044E */ + {0x10450,0x10450,0x10450}, {0x10451,0x10451,0x10451}, /* 10450 */ + {0x10452,0x10452,0x10452}, {0x10453,0x10453,0x10453}, /* 10452 */ + {0x10454,0x10454,0x10454}, {0x10455,0x10455,0x10455}, /* 10454 */ + {0x10456,0x10456,0x10456}, {0x10457,0x10457,0x10457}, /* 10456 */ + {0x10458,0x10458,0x10458}, {0x10459,0x10459,0x10459}, /* 10458 */ + {0x1045A,0x1045A,0x1045A}, {0x1045B,0x1045B,0x1045B}, /* 1045A */ + {0x1045C,0x1045C,0x1045C}, {0x1045D,0x1045D,0x1045D}, /* 1045C */ + {0x1045E,0x1045E,0x1045E}, {0x1045F,0x1045F,0x1045F}, /* 1045E */ + {0x10460,0x10460,0x10460}, {0x10461,0x10461,0x10461}, /* 10460 */ + {0x10462,0x10462,0x10462}, {0x10463,0x10463,0x10463}, /* 10462 */ + {0x10464,0x10464,0x10464}, {0x10465,0x10465,0x10465}, /* 10464 */ + {0x10466,0x10466,0x10466}, {0x10467,0x10467,0x10467}, /* 10466 */ + {0x10468,0x10468,0x10468}, {0x10469,0x10469,0x10469}, /* 10468 */ + {0x1046A,0x1046A,0x1046A}, {0x1046B,0x1046B,0x1046B}, /* 1046A */ + {0x1046C,0x1046C,0x1046C}, {0x1046D,0x1046D,0x1046D}, /* 1046C */ + {0x1046E,0x1046E,0x1046E}, {0x1046F,0x1046F,0x1046F}, /* 1046E */ + {0x10470,0x10470,0x10470}, {0x10471,0x10471,0x10471}, /* 10470 */ + {0x10472,0x10472,0x10472}, {0x10473,0x10473,0x10473}, /* 10472 */ + {0x10474,0x10474,0x10474}, {0x10475,0x10475,0x10475}, /* 10474 */ + {0x10476,0x10476,0x10476}, {0x10477,0x10477,0x10477}, /* 10476 */ + {0x10478,0x10478,0x10478}, {0x10479,0x10479,0x10479}, /* 10478 */ + {0x1047A,0x1047A,0x1047A}, {0x1047B,0x1047B,0x1047B}, /* 1047A */ + {0x1047C,0x1047C,0x1047C}, {0x1047D,0x1047D,0x1047D}, /* 1047C */ + {0x1047E,0x1047E,0x1047E}, {0x1047F,0x1047F,0x1047F}, /* 1047E */ + {0x10480,0x10480,0x10480}, {0x10481,0x10481,0x10481}, /* 10480 */ + {0x10482,0x10482,0x10482}, {0x10483,0x10483,0x10483}, /* 10482 */ + {0x10484,0x10484,0x10484}, {0x10485,0x10485,0x10485}, /* 10484 */ + {0x10486,0x10486,0x10486}, {0x10487,0x10487,0x10487}, /* 10486 */ + {0x10488,0x10488,0x10488}, {0x10489,0x10489,0x10489}, /* 10488 */ + {0x1048A,0x1048A,0x1048A}, {0x1048B,0x1048B,0x1048B}, /* 1048A */ + {0x1048C,0x1048C,0x1048C}, {0x1048D,0x1048D,0x1048D}, /* 1048C */ + {0x1048E,0x1048E,0x1048E}, {0x1048F,0x1048F,0x1048F}, /* 1048E */ + {0x10490,0x10490,0x10490}, {0x10491,0x10491,0x10491}, /* 10490 */ + {0x10492,0x10492,0x10492}, {0x10493,0x10493,0x10493}, /* 10492 */ + {0x10494,0x10494,0x10494}, {0x10495,0x10495,0x10495}, /* 10494 */ + {0x10496,0x10496,0x10496}, {0x10497,0x10497,0x10497}, /* 10496 */ + {0x10498,0x10498,0x10498}, {0x10499,0x10499,0x10499}, /* 10498 */ + {0x1049A,0x1049A,0x1049A}, {0x1049B,0x1049B,0x1049B}, /* 1049A */ + {0x1049C,0x1049C,0x1049C}, {0x1049D,0x1049D,0x1049D}, /* 1049C */ + {0x1049E,0x1049E,0x1049E}, {0x1049F,0x1049F,0x1049F}, /* 1049E */ + {0x104A0,0x104A0,0x104A0}, {0x104A1,0x104A1,0x104A1}, /* 104A0 */ + {0x104A2,0x104A2,0x104A2}, {0x104A3,0x104A3,0x104A3}, /* 104A2 */ + {0x104A4,0x104A4,0x104A4}, {0x104A5,0x104A5,0x104A5}, /* 104A4 */ + {0x104A6,0x104A6,0x104A6}, {0x104A7,0x104A7,0x104A7}, /* 104A6 */ + {0x104A8,0x104A8,0x104A8}, {0x104A9,0x104A9,0x104A9}, /* 104A8 */ + {0x104AA,0x104AA,0x104AA}, {0x104AB,0x104AB,0x104AB}, /* 104AA */ + {0x104AC,0x104AC,0x104AC}, {0x104AD,0x104AD,0x104AD}, /* 104AC */ + {0x104AE,0x104AE,0x104AE}, {0x104AF,0x104AF,0x104AF}, /* 104AE */ + {0x104B0,0x104B0,0x104B0}, {0x104B1,0x104B1,0x104B1}, /* 104B0 */ + {0x104B2,0x104B2,0x104B2}, {0x104B3,0x104B3,0x104B3}, /* 104B2 */ + {0x104B4,0x104B4,0x104B4}, {0x104B5,0x104B5,0x104B5}, /* 104B4 */ + {0x104B6,0x104B6,0x104B6}, {0x104B7,0x104B7,0x104B7}, /* 104B6 */ + {0x104B8,0x104B8,0x104B8}, {0x104B9,0x104B9,0x104B9}, /* 104B8 */ + {0x104BA,0x104BA,0x104BA}, {0x104BB,0x104BB,0x104BB}, /* 104BA */ + {0x104BC,0x104BC,0x104BC}, {0x104BD,0x104BD,0x104BD}, /* 104BC */ + {0x104BE,0x104BE,0x104BE}, {0x104BF,0x104BF,0x104BF}, /* 104BE */ + {0x104C0,0x104C0,0x104C0}, {0x104C1,0x104C1,0x104C1}, /* 104C0 */ + {0x104C2,0x104C2,0x104C2}, {0x104C3,0x104C3,0x104C3}, /* 104C2 */ + {0x104C4,0x104C4,0x104C4}, {0x104C5,0x104C5,0x104C5}, /* 104C4 */ + {0x104C6,0x104C6,0x104C6}, {0x104C7,0x104C7,0x104C7}, /* 104C6 */ + {0x104C8,0x104C8,0x104C8}, {0x104C9,0x104C9,0x104C9}, /* 104C8 */ + {0x104CA,0x104CA,0x104CA}, {0x104CB,0x104CB,0x104CB}, /* 104CA */ + {0x104CC,0x104CC,0x104CC}, {0x104CD,0x104CD,0x104CD}, /* 104CC */ + {0x104CE,0x104CE,0x104CE}, {0x104CF,0x104CF,0x104CF}, /* 104CE */ + {0x104D0,0x104D0,0x104D0}, {0x104D1,0x104D1,0x104D1}, /* 104D0 */ + {0x104D2,0x104D2,0x104D2}, {0x104D3,0x104D3,0x104D3}, /* 104D2 */ + {0x104D4,0x104D4,0x104D4}, {0x104D5,0x104D5,0x104D5}, /* 104D4 */ + {0x104D6,0x104D6,0x104D6}, {0x104D7,0x104D7,0x104D7}, /* 104D6 */ + {0x104D8,0x104D8,0x104D8}, {0x104D9,0x104D9,0x104D9}, /* 104D8 */ + {0x104DA,0x104DA,0x104DA}, {0x104DB,0x104DB,0x104DB}, /* 104DA */ + {0x104DC,0x104DC,0x104DC}, {0x104DD,0x104DD,0x104DD}, /* 104DC */ + {0x104DE,0x104DE,0x104DE}, {0x104DF,0x104DF,0x104DF}, /* 104DE */ + {0x104E0,0x104E0,0x104E0}, {0x104E1,0x104E1,0x104E1}, /* 104E0 */ + {0x104E2,0x104E2,0x104E2}, {0x104E3,0x104E3,0x104E3}, /* 104E2 */ + {0x104E4,0x104E4,0x104E4}, {0x104E5,0x104E5,0x104E5}, /* 104E4 */ + {0x104E6,0x104E6,0x104E6}, {0x104E7,0x104E7,0x104E7}, /* 104E6 */ + {0x104E8,0x104E8,0x104E8}, {0x104E9,0x104E9,0x104E9}, /* 104E8 */ + {0x104EA,0x104EA,0x104EA}, {0x104EB,0x104EB,0x104EB}, /* 104EA */ + {0x104EC,0x104EC,0x104EC}, {0x104ED,0x104ED,0x104ED}, /* 104EC */ + {0x104EE,0x104EE,0x104EE}, {0x104EF,0x104EF,0x104EF}, /* 104EE */ + {0x104F0,0x104F0,0x104F0}, {0x104F1,0x104F1,0x104F1}, /* 104F0 */ + {0x104F2,0x104F2,0x104F2}, {0x104F3,0x104F3,0x104F3}, /* 104F2 */ + {0x104F4,0x104F4,0x104F4}, {0x104F5,0x104F5,0x104F5}, /* 104F4 */ + {0x104F6,0x104F6,0x104F6}, {0x104F7,0x104F7,0x104F7}, /* 104F6 */ + {0x104F8,0x104F8,0x104F8}, {0x104F9,0x104F9,0x104F9}, /* 104F8 */ + {0x104FA,0x104FA,0x104FA}, {0x104FB,0x104FB,0x104FB}, /* 104FA */ + {0x104FC,0x104FC,0x104FC}, {0x104FD,0x104FD,0x104FD}, /* 104FC */ + {0x104FE,0x104FE,0x104FE}, {0x104FF,0x104FF,0x104FF} /* 104FE */ +}; + + +MY_UNICASE_CHARACTER *my_unicase_pages_unicode520[4352]= +{ + u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + u520p10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, u520p1D, u520p1E, u520p1F, + NULL, u520p21, NULL, NULL, u520p24, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, u520p2C, u520p2D, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, u520pA6, u520pA7, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, u520pFF, + NULL, NULL, NULL, NULL,u520p104, NULL, NULL, NULL, +}; + + +MY_UNICASE_INFO my_unicase_unicode520= +{ + 0x104FF, + my_unicase_pages_unicode520 +}; + + static inline void -my_tosort_unicode(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_tosort_unicode(MY_UNICASE_INFO *uni_plane, my_wc_t *wc, uint flags) { - uint page= *wc >> 8; - if (page < 256) + if (*wc <= uni_plane->maxchar) { - if (uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].sort; + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[*wc >> 8])) + *wc= (flags & MY_CS_LOWER_SORT) ? + page[*wc & 0xFF].tolower : + page[*wc & 0xFF].sort; } else { @@ -1966,7 +4395,7 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs, const char *str,const char *str_end, const char *wildstr,const char *wildend, int escape, int w_one, int w_many, - MY_UNICASE_INFO *const *weights, int recurse_level) + MY_UNICASE_INFO *weights, int recurse_level) { int result= -1; /* Not found, using wildcards */ my_wc_t s_wc, w_wc; @@ -2015,8 +4444,8 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs, { if (weights) { - my_tosort_unicode(weights, &s_wc); - my_tosort_unicode(weights, &w_wc); + my_tosort_unicode(weights, &s_wc, cs->state); + my_tosort_unicode(weights, &w_wc, cs->state); } if (s_wc != w_wc) return 1; /* No match */ @@ -2086,8 +4515,8 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs, return 1; if (weights) { - my_tosort_unicode(weights, &s_wc); - my_tosort_unicode(weights, &w_wc); + my_tosort_unicode(weights, &s_wc, cs->state); + my_tosort_unicode(weights, &w_wc, cs->state); } if (s_wc == w_wc) @@ -2100,7 +4529,7 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs, str+= scan; result= my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend, escape, w_one, w_many, - weights, recurse_level+1); + weights, recurse_level + 1); if (result <= 0) return result; } @@ -2115,12 +4544,77 @@ my_wildcmp_unicode(CHARSET_INFO *cs, const char *str,const char *str_end, const char *wildstr,const char *wildend, int escape, int w_one, int w_many, - MY_UNICASE_INFO *const *weights) + MY_UNICASE_INFO *weights) { return my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend, escape, w_one, w_many, weights, 1); } + + +/** + Pad buffer with weights for space characters. + + @details + This functions fills the buffer pointed by "str" + with weights of space character. Not more than + "nweights" weights are put. If at some iteration + step only a half of weight can fit + (which is possible if buffer length is an odd number) + then a half of this weight is put - this gives + a little bit better ORDER BY result for long strings. + + @str Buffer + @strend End of buffer + @nweights Number of weights + + @return Result length +*/ + +static size_t +my_strxfrm_pad_nweights_unicode(uchar *str, uchar *strend, size_t nweights) +{ + uchar *str0; + DBUG_ASSERT(str && str <= strend); + for (str0= str; str < strend && nweights; nweights--) + { + *str++= 0x00; + if (str < strend) + *str++= 0x20; + } + return str - str0; +} + + +/** + Pad buffer with weights for space characters. + + @details + This functions fills the buffer pointed by "str" + with weights of space character. Putting half of weight + (when buffer length is an odd number) is OK. + + @str Buffer + @strend End of buffer + + @return Result length +*/ + +static size_t +my_strxfrm_pad_unicode(uchar *str, uchar *strend) +{ + uchar *str0= str; + DBUG_ASSERT(str && str <= strend); + for ( ; str < strend ; ) + { + *str++= 0x00; + if (str < strend) + *str++= 0x20; + } + return str - str0; +} + + /* Store sorting weights using 2 bytes per character. @@ -2132,90 +4626,117 @@ my_wildcmp_unicode(CHARSET_INFO *cs, */ size_t my_strnxfrm_unicode(CHARSET_INFO *cs, - uchar *dst, size_t dstlen, - const uchar *src, size_t srclen) + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { - my_wc_t UNINIT_VAR(wc); + my_wc_t wc; int res; + uchar *dst0= dst; uchar *de= dst + dstlen; - uchar *de_beg= de - 1; - const uchar *se = src + srclen; - MY_UNICASE_INFO * const*uni_plane= (cs->state & MY_CS_BINSORT) ? - NULL : cs->caseinfo; + const uchar *se= src + srclen; + MY_UNICASE_INFO *uni_plane= (cs->state & MY_CS_BINSORT) ? + NULL : cs->caseinfo; + LINT_INIT(wc); DBUG_ASSERT(!srclen || src); - - while (dst < de_beg) + + for (; dst < de && nweights; nweights--) { - if ((res= cs->cset->mb_wc(cs,&wc, src, se)) <= 0) + if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0) break; - src+=res; + src+= res; if (uni_plane) - my_tosort_unicode(uni_plane, &wc); + my_tosort_unicode(uni_plane, &wc, cs->state); *dst++= (uchar) (wc >> 8); if (dst < de) *dst++= (uchar) (wc & 0xFF); } - - while (dst < de_beg) /* Fill the tail with keys for space character */ - { - *dst++= 0x00; - *dst++= 0x20; - } - - if (dst < de) /* Clear the last byte, if "dstlen" was an odd number */ - *dst= 0x00; - - return dstlen; + + if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE)) + dst+= my_strxfrm_pad_nweights_unicode(dst, de, nweights); + + my_strxfrm_desc_and_reverse(dst0, dst, flags, 0); + + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de) + dst+= my_strxfrm_pad_unicode(dst, de); + return dst - dst0; } /* + For BMP-only collations that use 2 bytes per weight. +*/ +size_t +my_strnxfrmlen_unicode(CHARSET_INFO *cs, size_t len) +{ + + return ((len + cs->mbmaxlen - 1) / cs->mbmaxlen) * 2; +} + +/* Store sorting weights using 3 bytes per character. This function is shared between utf8mb4_bin, utf16_bin, utf32_bin. */ size_t my_strnxfrm_unicode_full_bin(CHARSET_INFO *cs, - uchar *dst, size_t dstlen, - const uchar *src, size_t srclen) + uchar *dst, size_t dstlen, uint nweights, + const uchar *src, size_t srclen, uint flags) { my_wc_t wc; + uchar *dst0= dst; uchar *de= dst + dstlen; - uchar *de_beg= de - 2; /* The beginning of the last chunk */ const uchar *se = src + srclen; LINT_INIT(wc); DBUG_ASSERT(!srclen || src); DBUG_ASSERT(cs->state & MY_CS_BINSORT); - while (dst < de_beg) + for ( ; dst < de && nweights; nweights--) { int res; if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0) break; src+= res; *dst++= (uchar) (wc >> 16); - *dst++= (uchar) ((wc >> 8) & 0xFF); - *dst++= (uchar) (wc & 0xFF); + if (dst < de) + { + *dst++= (uchar) ((wc >> 8) & 0xFF); + if (dst < de) + *dst++= (uchar) (wc & 0xFF); + } } - while (dst < de_beg) /* Fill the tail with keys for space character */ + if (flags & MY_STRXFRM_PAD_WITH_SPACE) { - *dst++= 0x00; - *dst++= 0x00; - *dst++= 0x20; + for ( ; dst < de && nweights; nweights--) + { + *dst++= 0x00; + if (dst < de) + { + *dst++= 0x00; + if (dst < de) + *dst++= 0x20; + } + } } + + my_strxfrm_desc_and_reverse(dst0, dst, flags, 0); - /* Clear the last one or two bytes, if "dstlen" was not divisible by 3 */ - if (dst < de) + if (flags & MY_STRXFRM_PAD_TO_MAXLEN) { - *dst++= 0x00; - if (dst < de) - *dst= 0x00; + while (dst < de) + { + *dst++= 0x00; + if (dst < de) + { + *dst++= 0x00; + if (dst < de) + *dst++= 0x20; + } + } } - - return dstlen; + return dst - dst0; } @@ -2299,7 +4820,7 @@ static inline int bincmp(const uchar *s, const uchar *se, const uchar *t, const uchar *te) { int slen= (int) (se-s), tlen= (int) (te-t); - int len=min(slen,tlen); + int len=MY_MIN(slen,tlen); int cmp= memcmp(s,t,len); return cmp ? cmp : slen-tlen; } @@ -2459,46 +4980,33 @@ static int my_utf8_uni_no_range(CHARSET_INFO *cs __attribute__((unused)), static int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)), my_wc_t wc, uchar *r, uchar *e) { - int count; - - if (r >= e) - return MY_CS_TOOSMALL; - if (wc < 0x80) - count = 1; - else if (wc < 0x800) - count = 2; - else if (wc < 0x10000) - count = 3; -#ifdef UNICODE_32BIT - else if (wc < 0x200000) - count = 4; - else if (wc < 0x4000000) - count = 5; - else if (wc <= 0x7fffffff) - count = 6; -#endif - else return MY_CS_ILUNI; - - /* - e is a character after the string r, not the last character of it. - Because of it (r+count > e), not (r+count-1 >e ) - */ - if ( r+count > e ) - return MY_CS_TOOSMALLN(count); - - switch (count) { - /* Fall through all cases!!! */ -#ifdef UNICODE_32BIT - case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000; - case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000; - case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000; -#endif - case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; - case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; - case 1: r[0] = (uchar) wc; + { + if (r >= e) + return MY_CS_TOOSMALL; + *r= (uchar) wc; + return 1; } - return count; + if (wc < 0x800) + { + if (r + 2 > e) + return MY_CS_TOOSMALLN(2); + /* U+0080..U+07FF: 00000xxx.xxyyyyyy -> 110xxxxx 10yyyyyy */ + *r++= (uchar) (0xC0 | (wc >> 6)); + *r= (uchar) (0x80 | (wc & 0x3F)); + return 2; + } + if (wc < 0x10000) + { + if (r + 3 > e) + return MY_CS_TOOSMALLN(3); + /* U+0800..U+FFFF: xxxxyyyy.yyzzzzzz -> 1110xxxx 10yyyyyy 10zzzzzz */ + *r++= (uchar) (0xE0 | (wc >> 12)); + *r++= (uchar) (0x80 | ((wc >> 6) & 0x3f)); + *r= (uchar) (0x80 | (wc & 0x3f)); + return 3; + } + return MY_CS_ILUNI; } @@ -2530,20 +5038,45 @@ static int my_uni_utf8_no_range(CHARSET_INFO *cs __attribute__((unused)), } +static inline void +my_tolower_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].tolower; +} + + +static inline void +my_toupper_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].toupper; +} + + +static inline void +my_tosort_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) +{ + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8) & 0xFF])) + *wc= page[*wc & 0xFF].sort; +} + static size_t my_caseup_utf8(CHARSET_INFO *cs, char *src, size_t srclen, char *dst, size_t dstlen) { my_wc_t wc; int srcres, dstres; char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); while ((src < srcend) && (srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc; + my_toupper_utf8mb3(uni_plane, &wc); if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) break; src+= srcres; @@ -2554,12 +5087,13 @@ static size_t my_caseup_utf8(CHARSET_INFO *cs, char *src, size_t srclen, static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { my_wc_t wc; int res; const uchar *e=s+slen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; + register ulong m1= *nr1, m2= *nr2; /* Remove end space. We have to do this to be able to compare @@ -2570,14 +5104,12 @@ static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, size_t slen, while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 ) { - int plane = (wc>>8) & 0xFF; - wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc; - n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8); - n2[0]+=3; - n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8); - n2[0]+=3; + my_tosort_unicode(uni_plane, &wc, cs->state); + MY_HASH_ADD_16(m1, m2, wc); s+=res; } + *nr1= m1; + *nr2= m2; } @@ -2586,14 +5118,13 @@ static size_t my_caseup_str_utf8(CHARSET_INFO *cs, char *src) my_wc_t wc; int srcres, dstres; char *dst= src, *dst0= src; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(cs->caseup_multiply == 1); while (*src && (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc; + my_toupper_utf8mb3(uni_plane, &wc); if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0) break; src+= srcres; @@ -2610,14 +5141,13 @@ static size_t my_casedn_utf8(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int srcres, dstres; char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); while ((src < srcend) && (srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc; + my_tolower_utf8mb3(uni_plane, &wc); if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0) break; src+= srcres; @@ -2632,14 +5162,13 @@ static size_t my_casedn_str_utf8(CHARSET_INFO *cs, char *src) my_wc_t wc; int srcres, dstres; char *dst= src, *dst0= src; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(cs->casedn_multiply == 1); while (*src && (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0) { - int plane= (wc>>8) & 0xFF; - wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc; + my_tolower_utf8mb3(uni_plane, &wc); if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0) break; src+= srcres; @@ -2675,11 +5204,10 @@ static int my_strnncoll_utf8(CHARSET_INFO *cs, my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); const uchar *se=s+slen; const uchar *te=t+tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while ( s < se && t < te ) { - int plane; s_res=my_utf8_uni(cs,&s_wc, s, se); t_res=my_utf8_uni(cs,&t_wc, t, te); @@ -2689,10 +5217,9 @@ static int my_strnncoll_utf8(CHARSET_INFO *cs, return bincmp(s, se, t, te); } - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc; - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc; + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + if ( s_wc != t_wc ) { return s_wc > t_wc ? 1 : -1; @@ -2744,7 +5271,7 @@ static int my_strnncollsp_utf8(CHARSET_INFO *cs, int s_res, t_res, res; my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc); const uchar *se= s+slen, *te= t+tlen; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE diff_if_only_endspace_difference= 0; @@ -2752,7 +5279,6 @@ static int my_strnncollsp_utf8(CHARSET_INFO *cs, while ( s < se && t < te ) { - int plane; s_res=my_utf8_uni(cs,&s_wc, s, se); t_res=my_utf8_uni(cs,&t_wc, t, te); @@ -2762,10 +5288,9 @@ static int my_strnncollsp_utf8(CHARSET_INFO *cs, return bincmp(s, se, t, te); } - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc; - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc; + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + if ( s_wc != t_wc ) { return s_wc > t_wc ? 1 : -1; @@ -2832,7 +5357,7 @@ static int my_strnncollsp_utf8(CHARSET_INFO *cs, static int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t) { - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while (s[0] && t[0]) { my_wc_t s_wc,t_wc; @@ -2849,7 +5374,7 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t) } else { - int plane, res; + int res; /* Scan a multibyte character. @@ -2877,8 +5402,7 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t) s+= res; /* Convert Unicode code into weight according to collation */ - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].tolower : s_wc; + my_tolower_utf8mb3(uni_plane, &s_wc); } @@ -2892,15 +5416,13 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t) } else { - int plane; int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3); if (res <= 0) return strcmp(s, t); t+= res; /* Convert code into weight */ - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].tolower : t_wc; + my_tolower_utf8mb3(uni_plane, &t_wc); } /* Now we have two weights, let's compare them */ @@ -2917,21 +5439,13 @@ int my_wildcmp_utf8(CHARSET_INFO *cs, const char *wildstr,const char *wildend, int escape, int w_one, int w_many) { - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend, escape,w_one,w_many,uni_plane); } static -size_t my_strnxfrmlen_utf8(CHARSET_INFO *cs __attribute__((unused)), - size_t len) -{ - return (len * 2 + 2) / 3; -} - - -static int my_valid_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)), const uchar *s, const uchar *e) { @@ -3041,13 +5555,13 @@ static uint my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)), } -static MY_COLLATION_HANDLER my_collation_ci_handler = +static MY_COLLATION_HANDLER my_collation_utf8_general_ci_handler = { NULL, /* init */ my_strnncoll_utf8, my_strnncollsp_utf8, my_strnxfrm_unicode, - my_strnxfrmlen_utf8, + my_strnxfrmlen_unicode, my_like_range_mb, my_wildcmp_utf8, my_strcasecmp_utf8, @@ -3056,6 +5570,22 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = my_propagate_complex }; + +static MY_COLLATION_HANDLER my_collation_utf8_bin_handler = +{ + NULL, /* init */ + my_strnncoll_mb_bin, + my_strnncollsp_mb_bin, + my_strnxfrm_unicode, + my_strnxfrmlen_unicode, + my_like_range_mb, + my_wildcmp_mb_bin, + my_strcasecmp_mb_bin, + my_instr_mb, + my_hash_sort_mb_bin, + my_propagate_simple +}; + MY_CHARSET_HANDLER my_charset_utf8_handler= { NULL, /* init */ @@ -3101,11 +5631,10 @@ struct charset_info_st my_charset_utf8_general_ci= to_lower_utf8, /* to_lower */ to_upper_utf8, /* to_upper */ to_upper_utf8, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3117,8 +5646,9 @@ struct charset_info_st my_charset_utf8_general_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, - &my_collation_ci_handler + &my_collation_utf8_general_ci_handler }; @@ -3134,11 +5664,10 @@ struct charset_info_st my_charset_utf8_general_mysql500_ci= to_lower_utf8, /* to_lower */ to_upper_utf8, /* to_upper */ to_upper_utf8, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big */ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_mysql500, /* caseinfo */ + &my_unicase_mysql500, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3150,15 +5679,16 @@ struct charset_info_st my_charset_utf8_general_mysql500_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, - &my_collation_ci_handler + &my_collation_utf8_general_ci_handler }; struct charset_info_st my_charset_utf8_bin= { 83,0,0, /* number */ - MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE, /* state */ "utf8", /* cs name */ "utf8_bin", /* name */ "", /* comment */ @@ -3167,11 +5697,10 @@ struct charset_info_st my_charset_utf8_bin= to_lower_utf8, /* to_lower */ to_upper_utf8, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3183,8 +5712,9 @@ struct charset_info_st my_charset_utf8_bin= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, - &my_collation_mb_bin_handler + &my_collation_utf8_bin_handler }; #ifdef HAVE_UTF8_GENERAL_CS @@ -3211,7 +5741,6 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs, while ( s < se && t < te ) { - int plane; s_res=my_utf8_uni(cs,&s_wc, s, se); t_res=my_utf8_uni(cs,&t_wc, t, te); @@ -3226,10 +5755,10 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs, { save_diff = ((int)s_wc) - ((int)t_wc); } - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc; - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc; + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + if ( s_wc != t_wc ) { return ((int) s_wc) - ((int) t_wc); @@ -3252,7 +5781,7 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs, const uchar *se= s + slen; const uchar *te= t + tlen; int save_diff= 0; - MY_UNICASE_INFO *const *uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE diff_if_only_endspace_difference= 0; @@ -3260,7 +5789,6 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs, while ( s < se && t < te ) { - int plane; s_res=my_utf8_uni(cs,&s_wc, s, se); t_res=my_utf8_uni(cs,&t_wc, t, te); @@ -3274,10 +5802,10 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs, { save_diff = ((int)s_wc) - ((int)t_wc); } - plane=(s_wc>>8) & 0xFF; - s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc; - plane=(t_wc>>8) & 0xFF; - t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc; + + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + if ( s_wc != t_wc ) { return ((int) s_wc) - ((int) t_wc); @@ -3329,7 +5857,7 @@ static MY_COLLATION_HANDLER my_collation_cs_handler = my_strnncoll_utf8_cs, my_strnncollsp_utf8_cs, my_strnxfrm_unicode, - my_strnxfrmlen_utf8, + my_strnxfrmlen_unicode, my_like_range_simple, my_wildcmp_mb, my_strcasecmp_utf8, @@ -3350,11 +5878,10 @@ struct charset_info_st my_charset_utf8_general_cs= to_lower_utf8, /* to_lower */ to_upper_utf8, /* to_upper */ to_upper_utf8, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -3366,6 +5893,7 @@ struct charset_info_st my_charset_utf8_general_cs= 255, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8_handler, &my_collation_cs_handler }; @@ -4602,7 +7130,7 @@ static MY_COLLATION_HANDLER my_collation_filename_handler = my_strnncoll_utf8, my_strnncollsp_utf8, my_strnxfrm_unicode, - my_strnxfrmlen_utf8, + my_strnxfrmlen_unicode, my_like_range_mb, my_wildcmp_utf8, my_strcasecmp_utf8, @@ -4656,11 +7184,10 @@ struct charset_info_st my_charset_filename= to_lower_utf8, /* to_lower */ to_upper_utf8, /* to_upper */ to_upper_utf8, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -4672,6 +7199,7 @@ struct charset_info_st my_charset_filename= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_filename_handler, &my_collation_filename_handler }; @@ -4809,7 +7337,7 @@ bincmp_utf8mb4(const uchar *s, const uchar *se, const uchar *t, const uchar *te) { int slen= (int) (se - s), tlen= (int) (te - t); - int len= min(slen, tlen); + int len= MY_MIN(slen, tlen); int cmp= memcmp(s, t, len); return cmp ? cmp : slen - tlen; } @@ -5022,20 +7550,26 @@ my_wc_mb_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)), static inline void -my_tolower_utf8mb4(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_tolower_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].tolower; + if (*wc <= uni_plane->maxchar) + { + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8)])) + *wc= page[*wc & 0xFF].tolower; + } } static inline void -my_toupper_utf8mb4(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc) +my_toupper_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) { - uint page= *wc >> 8; - if (page < 256 && uni_plane[page]) - *wc= uni_plane[page][*wc & 0xFF].toupper; + if (*wc <= uni_plane->maxchar) + { + MY_UNICASE_CHARACTER *page; + if ((page= uni_plane->page[(*wc >> 8)])) + *wc= page[*wc & 0xFF].toupper; + } } @@ -5046,7 +7580,7 @@ my_caseup_utf8mb4(CHARSET_INFO *cs, char *src, size_t srclen, my_wc_t wc; int srcres, dstres; char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src != dst || cs->caseup_multiply == 1); while ((src < srcend) && @@ -5063,22 +7597,15 @@ my_caseup_utf8mb4(CHARSET_INFO *cs, char *src, size_t srclen, } -static inline void -my_hash_add(ulong *n1, ulong *n2, uint ch) -{ - n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8); - n2[0]+= 3; -} - - static void my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen, - ulong *n1, ulong *n2) + ulong *nr1, ulong *nr2) { my_wc_t wc; int res; const uchar *e= s + slen; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; + register ulong m1= *nr1, m2= *nr2; /* Remove end space. We do this to be able to compare @@ -5089,9 +7616,8 @@ my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen, while ((res= my_mb_wc_utf8mb4(cs, &wc, (uchar*) s, (uchar*) e)) > 0) { - my_tosort_unicode(uni_plane, &wc); - my_hash_add(n1, n2, (uint) (wc & 0xFF)); - my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF); + my_tosort_unicode(uni_plane, &wc, cs->state); + MY_HASH_ADD_16(m1, m2, (uint) (wc & 0xFFFF)); if (wc > 0xFFFF) { /* @@ -5101,10 +7627,12 @@ my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen, This is useful to keep order of records in test results, e.g. for "SHOW GRANTS". */ - my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF); + MY_HASH_ADD(m1, m2, (uint) ((wc >> 16) & 0xFF)); } s+= res; } + *nr1= m1; + *nr2= m2; } @@ -5114,7 +7642,7 @@ my_caseup_str_utf8mb4(CHARSET_INFO *cs, char *src) my_wc_t wc; int srcres, dstres; char *dst= src, *dst0= src; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(cs->caseup_multiply == 1); while (*src && @@ -5139,7 +7667,7 @@ my_casedn_utf8mb4(CHARSET_INFO *cs, my_wc_t wc; int srcres, dstres; char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(src != dst || cs->casedn_multiply == 1); while ((src < srcend) && @@ -5162,7 +7690,7 @@ my_casedn_str_utf8mb4(CHARSET_INFO *cs, char *src) my_wc_t wc; int srcres, dstres; char *dst= src, *dst0= src; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; DBUG_ASSERT(cs->casedn_multiply == 1); while (*src && @@ -5204,7 +7732,7 @@ my_strnncoll_utf8mb4(CHARSET_INFO *cs, my_wc_t s_wc,t_wc; const uchar *se= s + slen; const uchar *te= t + tlen; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; LINT_INIT(s_wc); LINT_INIT(t_wc); @@ -5219,9 +7747,9 @@ my_strnncoll_utf8mb4(CHARSET_INFO *cs, return bincmp_utf8mb4(s, se, t, te); } - my_tosort_unicode(uni_plane, &s_wc); - my_tosort_unicode(uni_plane, &t_wc); - + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); + if ( s_wc != t_wc ) { return s_wc > t_wc ? 1 : -1; @@ -5271,7 +7799,7 @@ my_strnncollsp_utf8mb4(CHARSET_INFO *cs, int res; my_wc_t s_wc, t_wc; const uchar *se= s + slen, *te= t + tlen; - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; LINT_INIT(s_wc); LINT_INIT(t_wc); @@ -5290,8 +7818,8 @@ my_strnncollsp_utf8mb4(CHARSET_INFO *cs, return bincmp_utf8mb4(s, se, t, te); } - my_tosort_unicode(uni_plane, &s_wc); - my_tosort_unicode(uni_plane, &t_wc); + my_tosort_unicode(uni_plane, &s_wc, cs->state); + my_tosort_unicode(uni_plane, &t_wc, cs->state); if ( s_wc != t_wc ) { @@ -5355,7 +7883,7 @@ my_strnncollsp_utf8mb4(CHARSET_INFO *cs, static int my_strcasecmp_utf8mb4(CHARSET_INFO *cs, const char *s, const char *t) { - MY_UNICASE_INFO * const* uni_plane= cs->caseinfo; + MY_UNICASE_INFO *uni_plane= cs->caseinfo; while (s[0] && t[0]) { my_wc_t s_wc,t_wc; @@ -5423,14 +7951,6 @@ my_wildcmp_utf8mb4(CHARSET_INFO *cs, } -static size_t -my_strnxfrmlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), size_t len) -{ - /* TODO: fix when working on WL "Unicode new version" */ - return (len * 2 + 2) / 4; -} - - static int my_valid_mbcharlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), const uchar *s, const uchar *e) @@ -5536,7 +8056,7 @@ static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler= my_strnncoll_utf8mb4, my_strnncollsp_utf8mb4, my_strnxfrm_unicode, - my_strnxfrmlen_utf8mb4, + my_strnxfrmlen_unicode, my_like_range_mb, my_wildcmp_utf8mb4, my_strcasecmp_utf8mb4, @@ -5607,11 +8127,10 @@ struct charset_info_st my_charset_utf8mb4_general_ci= to_lower_utf8mb4, /* to_lower */ to_upper_utf8mb4, /* to_upper */ to_upper_utf8mb4, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -5623,6 +8142,7 @@ struct charset_info_st my_charset_utf8mb4_general_ci= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_utf8mb4_general_ci_handler }; @@ -5641,11 +8161,10 @@ struct charset_info_st my_charset_utf8mb4_bin= to_lower_utf8mb4, /* to_lower */ to_upper_utf8mb4, /* to_upper */ NULL, /* sort_order */ - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ NULL, /* tab_to_uni */ NULL, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default,/* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 1, /* strxfrm_multiply */ @@ -5657,6 +8176,7 @@ struct charset_info_st my_charset_utf8mb4_bin= 0xFFFF, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ &my_charset_utf8mb4_handler, &my_collation_utf8mb4_bin_handler }; diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c index 5e33d9ccbd6..27e6a94f67b 100644 --- a/strings/ctype-win1250ch.c +++ b/strings/ctype-win1250ch.c @@ -488,9 +488,11 @@ int my_strnncollsp_win1250ch(CHARSET_INFO * cs, } -static size_t my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)), - uchar *dest, size_t len, - const uchar *src, size_t srclen) +static size_t +my_strnxfrm_win1250ch(CHARSET_INFO *cs __attribute__((unused)), + uchar *dest, size_t len, + uint nweights_arg __attribute__((unused)), + const uchar *src, size_t srclen, uint flags) { int value; const uchar *p; @@ -498,15 +500,23 @@ static size_t my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)), size_t totlen = 0; p = src; - do { + if (!(flags & 0x0F)) /* All levels by default */ + flags|= 0x0F; + + while (totlen < len) + { NEXT_CMP_VALUE(src, p, pass, value, (int)srclen); - if (totlen < len) - dest[totlen] = value; - totlen++; - } while (value) ; - if (len > totlen) - bfill(dest + totlen, len - totlen, ' '); - return len; + if (!value) + break; + if ((1 << pass) & flags) + dest[totlen++] = value; + } + if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen) + { + memset(dest + totlen, 0x00, len - totlen); + totlen= len; + } + return totlen; } #undef IS_END @@ -680,7 +690,7 @@ static MY_COLLATION_HANDLER my_collation_czech_ci_handler = struct charset_info_st my_charset_cp1250_czech_ci = { 34,0,0, /* number */ - MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */ + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|MY_CS_STRNXFRM_BAD_NWEIGHTS, /* state */ "cp1250", /* cs name */ "cp1250_czech_cs", /* name */ "", /* comment */ @@ -689,11 +699,10 @@ struct charset_info_st my_charset_cp1250_czech_ci = to_lower_win1250ch, to_upper_win1250ch, sort_order_win1250ch, - NULL, /* contractions */ - NULL, /* sort_order_big*/ + NULL, /* uca */ tab_cp1250_uni, /* tab_to_uni */ idx_uni_cp1250, /* tab_from_uni */ - my_unicase_default, /* caseinfo */ + &my_unicase_default, /* caseinfo */ NULL, /* state_map */ NULL, /* ident_map */ 2, /* strxfrm_multiply */ @@ -705,6 +714,7 @@ struct charset_info_st my_charset_cp1250_czech_ci = 0, /* max_sort_char */ ' ', /* pad char */ 0, /* escape_with_backslash_is_dangerous */ + 2, /* levels_for_order */ &my_charset_8bit_handler, &my_collation_czech_ci_handler }; diff --git a/strings/ctype.c b/strings/ctype.c index df22d0f19e5..d8a1dd7502b 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -36,6 +36,18 @@ */ + +/* + Avoid using my_snprintf + We cannot use my_snprintf() here, because ctype.o is + used to build conf_to_src, which must require minimun + dependency. +*/ + +#undef my_snprinf +#define my_snprintf "We cannot use my_snprintf in this file" + + int (*my_string_stack_guard)(int)= NULL; static char *mstr(char *str,const char *src,size_t l1,size_t l2) @@ -69,11 +81,75 @@ struct my_cs_file_section_st #define _CS_PRIMARY_ID 15 #define _CS_BINARY_ID 16 #define _CS_CSDESCRIPT 17 -#define _CS_RESET 18 -#define _CS_DIFF1 19 -#define _CS_DIFF2 20 -#define _CS_DIFF3 21 -#define _CS_IDENTICAL 22 + + +/* Special purpose commands */ +#define _CS_UCA_VERSION 100 +#define _CS_CL_SUPPRESS_CONTRACTIONS 101 +#define _CS_CL_OPTIMIZE 102 +#define _CS_CL_SHIFT_AFTER_METHOD 103 + + +/* Collation Settings */ +#define _CS_ST_SETTINGS 200 +#define _CS_ST_STRENGTH 201 +#define _CS_ST_ALTERNATE 202 +#define _CS_ST_BACKWARDS 203 +#define _CS_ST_NORMALIZATION 204 +#define _CS_ST_CASE_LEVEL 205 +#define _CS_ST_CASE_FIRST 206 +#define _CS_ST_HIRAGANA_QUATERNARY 207 +#define _CS_ST_NUMERIC 208 +#define _CS_ST_VARIABLE_TOP 209 +#define _CS_ST_MATCH_BOUNDARIES 210 +#define _CS_ST_MATCH_STYLE 211 + + +/* Rules */ +#define _CS_RULES 300 +#define _CS_RESET 301 +#define _CS_DIFF1 302 +#define _CS_DIFF2 303 +#define _CS_DIFF3 304 +#define _CS_DIFF4 305 +#define _CS_IDENTICAL 306 + +/* Rules: Expansions */ +#define _CS_EXP_X 320 +#define _CS_EXP_EXTEND 321 +#define _CS_EXP_DIFF1 322 +#define _CS_EXP_DIFF2 323 +#define _CS_EXP_DIFF3 324 +#define _CS_EXP_DIFF4 325 +#define _CS_EXP_IDENTICAL 326 + +/* Rules: Abbreviating Ordering Specifications */ +#define _CS_A_DIFF1 351 +#define _CS_A_DIFF2 352 +#define _CS_A_DIFF3 353 +#define _CS_A_DIFF4 354 +#define _CS_A_IDENTICAL 355 + +/* Rules: previous context */ +#define _CS_CONTEXT 370 + +/* Rules: Placing Characters Before Others*/ +#define _CS_RESET_BEFORE 380 + +/* Rules: Logical Reset Positions */ +#define _CS_RESET_FIRST_PRIMARY_IGNORABLE 401 +#define _CS_RESET_LAST_PRIMARY_IGNORABLE 402 +#define _CS_RESET_FIRST_SECONDARY_IGNORABLE 403 +#define _CS_RESET_LAST_SECONDARY_IGNORABLE 404 +#define _CS_RESET_FIRST_TERTIARY_IGNORABLE 405 +#define _CS_RESET_LAST_TERTIARY_IGNORABLE 406 +#define _CS_RESET_FIRST_TRAILING 407 +#define _CS_RESET_LAST_TRAILING 408 +#define _CS_RESET_FIRST_VARIABLE 409 +#define _CS_RESET_LAST_VARIABLE 410 +#define _CS_RESET_FIRST_NON_IGNORABLE 411 +#define _CS_RESET_LAST_NON_IGNORABLE 412 + static const struct my_cs_file_section_st sec[] = @@ -83,6 +159,8 @@ static const struct my_cs_file_section_st sec[] = {_CS_MISC, "xml/encoding"}, {_CS_MISC, "charsets"}, {_CS_MISC, "charsets/max-id"}, + {_CS_MISC, "charsets/copyright"}, + {_CS_MISC, "charsets/description"}, {_CS_CHARSET, "charsets/charset"}, {_CS_PRIMARY_ID, "charsets/charset/primary-id"}, {_CS_BINARY_ID, "charsets/charset/binary-id"}, @@ -104,11 +182,72 @@ static const struct my_cs_file_section_st sec[] = {_CS_ORDER, "charsets/charset/collation/order"}, {_CS_FLAG, "charsets/charset/collation/flag"}, {_CS_COLLMAP, "charsets/charset/collation/map"}, - {_CS_RESET, "charsets/charset/collation/rules/reset"}, - {_CS_DIFF1, "charsets/charset/collation/rules/p"}, - {_CS_DIFF2, "charsets/charset/collation/rules/s"}, - {_CS_DIFF3, "charsets/charset/collation/rules/t"}, - {_CS_IDENTICAL, "charsets/charset/collation/rules/i"}, + + /* Special purpose commands */ + {_CS_UCA_VERSION, "charsets/charset/collation/version"}, + {_CS_CL_SUPPRESS_CONTRACTIONS, "charsets/charset/collation/suppress_contractions"}, + {_CS_CL_OPTIMIZE, "charsets/charset/collation/optimize"}, + {_CS_CL_SHIFT_AFTER_METHOD, "charsets/charset/collation/shift-after-method"}, + + /* Collation Settings */ + {_CS_ST_SETTINGS, "charsets/charset/collation/settings"}, + {_CS_ST_STRENGTH, "charsets/charset/collation/settings/strength"}, + {_CS_ST_ALTERNATE, "charsets/charset/collation/settings/alternate"}, + {_CS_ST_BACKWARDS, "charsets/charset/collation/settings/backwards"}, + {_CS_ST_NORMALIZATION, "charsets/charset/collation/settings/normalization"}, + {_CS_ST_CASE_LEVEL, "charsets/charset/collation/settings/caseLevel"}, + {_CS_ST_CASE_FIRST, "charsets/charset/collation/settings/caseFirst"}, + {_CS_ST_HIRAGANA_QUATERNARY, "charsets/charset/collation/settings/hiraganaQuaternary"}, + {_CS_ST_NUMERIC, "charsets/charset/collation/settings/numeric"}, + {_CS_ST_VARIABLE_TOP, "charsets/charset/collation/settings/variableTop"}, + {_CS_ST_MATCH_BOUNDARIES, "charsets/charset/collation/settings/match-boundaries"}, + {_CS_ST_MATCH_STYLE, "charsets/charset/collation/settings/match-style"}, + + /* Rules */ + {_CS_RULES, "charsets/charset/collation/rules"}, + {_CS_RESET, "charsets/charset/collation/rules/reset"}, + {_CS_DIFF1, "charsets/charset/collation/rules/p"}, + {_CS_DIFF2, "charsets/charset/collation/rules/s"}, + {_CS_DIFF3, "charsets/charset/collation/rules/t"}, + {_CS_DIFF4, "charsets/charset/collation/rules/q"}, + {_CS_IDENTICAL, "charsets/charset/collation/rules/i"}, + + /* Rules: expansions */ + {_CS_EXP_X, "charsets/charset/collation/rules/x"}, + {_CS_EXP_EXTEND, "charsets/charset/collation/rules/x/extend"}, + {_CS_EXP_DIFF1, "charsets/charset/collation/rules/x/p"}, + {_CS_EXP_DIFF2, "charsets/charset/collation/rules/x/s"}, + {_CS_EXP_DIFF3, "charsets/charset/collation/rules/x/t"}, + {_CS_EXP_DIFF4, "charsets/charset/collation/rules/x/q"}, + {_CS_EXP_IDENTICAL, "charsets/charset/collation/rules/x/i"}, + + /* Rules: previous context */ + {_CS_CONTEXT, "charsets/charset/collation/rules/x/context"}, + + /* Rules: Abbreviating Ordering Specifications */ + {_CS_A_DIFF1, "charsets/charset/collation/rules/pc"}, + {_CS_A_DIFF2, "charsets/charset/collation/rules/sc"}, + {_CS_A_DIFF3, "charsets/charset/collation/rules/tc"}, + {_CS_A_DIFF4, "charsets/charset/collation/rules/qc"}, + {_CS_A_IDENTICAL, "charsets/charset/collation/rules/ic"}, + + /* Rules: Placing Characters Before Others*/ + {_CS_RESET_BEFORE, "charsets/charset/collation/rules/reset/before"}, + + /* Rules: Logical Reset Positions */ + {_CS_RESET_FIRST_NON_IGNORABLE, "charsets/charset/collation/rules/reset/first_non_ignorable"}, + {_CS_RESET_LAST_NON_IGNORABLE, "charsets/charset/collation/rules/reset/last_non_ignorable"}, + {_CS_RESET_FIRST_PRIMARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_primary_ignorable"}, + {_CS_RESET_LAST_PRIMARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_primary_ignorable"}, + {_CS_RESET_FIRST_SECONDARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_secondary_ignorable"}, + {_CS_RESET_LAST_SECONDARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_secondary_ignorable"}, + {_CS_RESET_FIRST_TERTIARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_tertiary_ignorable"}, + {_CS_RESET_LAST_TERTIARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_tertiary_ignorable"}, + {_CS_RESET_FIRST_TRAILING, "charsets/charset/collation/rules/reset/first_trailing"}, + {_CS_RESET_LAST_TRAILING, "charsets/charset/collation/rules/reset/last_trailing"}, + {_CS_RESET_FIRST_VARIABLE, "charsets/charset/collation/rules/reset/first_variable"}, + {_CS_RESET_LAST_VARIABLE, "charsets/charset/collation/rules/reset/last_variable"}, + {0, NULL} }; @@ -118,14 +257,16 @@ static const struct my_cs_file_section_st const struct my_cs_file_section_st *s; for (s=sec; s->str; s++) { - if (!strncmp(attr,s->str,len)) + if (!strncmp(attr, s->str, len) && s->str[len] == 0) return s; } return NULL; } #define MY_CS_CSDESCR_SIZE 64 -#define MY_CS_TAILORING_SIZE 1024 +#define MY_CS_TAILORING_SIZE (32*1024) +#define MY_CS_UCA_VERSION_SIZE 64 +#define MY_CS_CONTEXT_SIZE 64 typedef struct my_cs_file_info { @@ -137,13 +278,60 @@ typedef struct my_cs_file_info uchar sort_order[MY_CS_SORT_ORDER_TABLE_SIZE]; uint16 tab_to_uni[MY_CS_TO_UNI_TABLE_SIZE]; char comment[MY_CS_CSDESCR_SIZE]; - char tailoring[MY_CS_TAILORING_SIZE]; + char *tailoring; size_t tailoring_length; + size_t tailoring_alloced_length; + char context[MY_CS_CONTEXT_SIZE]; struct charset_info_st cs; - int (*add_collation)(struct charset_info_st *cs); -} MY_CHARSET_LOADER; + MY_CHARSET_LOADER *loader; +} MY_CHARSET_FILE; + + +static void +my_charset_file_reset_charset(MY_CHARSET_FILE *i) +{ + memset(&i->cs, 0, sizeof(i->cs)); +} +static void +my_charset_file_reset_collation(MY_CHARSET_FILE *i) +{ + i->tailoring_length= 0; + i->context[0]= '\0'; +} + + +static void +my_charset_file_init(MY_CHARSET_FILE *i) +{ + my_charset_file_reset_charset(i); + my_charset_file_reset_collation(i); + i->tailoring= NULL; + i->tailoring_alloced_length= 0; +} + + +static void +my_charset_file_free(MY_CHARSET_FILE *i) +{ + i->loader->free(i->tailoring); +} + + +static int +my_charset_file_tailoring_realloc(MY_CHARSET_FILE *i, size_t newlen) +{ + if (i->tailoring_alloced_length > newlen || + (i->tailoring= i->loader->realloc(i->tailoring, + (i->tailoring_alloced_length= + (newlen + 32*1024))))) + { + return MY_XML_OK; + } + return MY_XML_ERROR; +} + static int fill_uchar(uchar *a,uint size,const char *str, size_t len) { @@ -180,17 +368,119 @@ static int fill_uint16(uint16 *a,uint size,const char *str, size_t len) } + + +static int +tailoring_append(MY_XML_PARSER *st, + const char *fmt, size_t len, const char *attr) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data; + size_t newlen= i->tailoring_length + len + 64; /* 64 for format */ + if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) + { + char *dst= i->tailoring + i->tailoring_length; + sprintf(dst, fmt, (int) len, attr); + i->tailoring_length+= strlen(dst); + return MY_XML_OK; + } + return MY_XML_ERROR; +} + + +static int +tailoring_append2(MY_XML_PARSER *st, + const char *fmt, + size_t len1, const char *attr1, + size_t len2, const char *attr2) +{ + struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data; + size_t newlen= i->tailoring_length + len1 + len2 + 64; /* 64 for format */ + if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) + { + char *dst= i->tailoring + i->tailoring_length; + sprintf(dst, fmt, (int) len1, attr1, (int) len2, attr2); + i->tailoring_length+= strlen(dst); + return MY_XML_OK; + } + return MY_XML_ERROR; +} + + +static size_t +scan_one_character(const char *s, const char *e, my_wc_t *wc) +{ + CHARSET_INFO *cs= &my_charset_utf8_general_ci; + if (s >= e) + return 0; + + /* Escape sequence: \uXXXX */ + if (s[0] == '\\' && s + 2 < e && s[1] == 'u' && my_isxdigit(cs, s[2])) + { + size_t len= 3; /* We have at least one digit */ + for (s+= 3; s < e && my_isxdigit(cs, s[0]); s++, len++) + { + } + wc[0]= 0; + return len; + } + else if ((int8) s[0] > 0) /* 7-bit character */ + { + wc[0]= 0; + return 1; + } + else /* Non-escaped character */ + { + int rc= cs->cset->mb_wc(cs, wc, (uchar *) s, (uchar *) e); + if (rc > 0) + return (size_t) rc; + } + return 0; +} + + +static int +tailoring_append_abbreviation(MY_XML_PARSER *st, + const char *fmt, size_t len, const char *attr) +{ + size_t clen; + const char *attrend= attr + len; + my_wc_t wc; + + for ( ; (clen= scan_one_character(attr, attrend, &wc)) > 0; attr+= clen) + { + DBUG_ASSERT(attr < attrend); + if (tailoring_append(st, fmt, clen, attr) != MY_XML_OK) + return MY_XML_ERROR; + } + return MY_XML_OK; +} + + static int cs_enter(MY_XML_PARSER *st,const char *attr, size_t len) { struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data; const struct my_cs_file_section_st *s= cs_file_sec(attr,len); + int state= s ? s->state : 0; - if ( s && (s->state == _CS_CHARSET)) - bzero(&i->cs,sizeof(i->cs)); - - if (s && (s->state == _CS_COLLATION)) - i->tailoring_length= 0; + switch (state) { + case 0: + i->loader->reporter(WARNING_LEVEL, "Unknown LDML tag: '%.*s'", len, attr); + break; + + case _CS_CHARSET: + my_charset_file_reset_charset(i); + break; + case _CS_COLLATION: + my_charset_file_reset_collation(i); + break; + + case _CS_RESET: + return tailoring_append(st, " &", 0, NULL); + + default: + break; + } return MY_XML_OK; } @@ -204,8 +494,60 @@ static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len) switch(state){ case _CS_COLLATION: - rc= i->add_collation ? i->add_collation(&i->cs) : MY_XML_OK; + if (i->tailoring_length) + i->cs.tailoring= i->tailoring; + rc= i->loader->add_collation ? i->loader->add_collation(&i->cs) : MY_XML_OK; + break; + + /* Rules: Logical Reset Positions */ + case _CS_RESET_FIRST_NON_IGNORABLE: + rc= tailoring_append(st, "[first non-ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_NON_IGNORABLE: + rc= tailoring_append(st, "[last non-ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_PRIMARY_IGNORABLE: + rc= tailoring_append(st, "[first primary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_PRIMARY_IGNORABLE: + rc= tailoring_append(st, "[last primary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_SECONDARY_IGNORABLE: + rc= tailoring_append(st, "[first secondary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_SECONDARY_IGNORABLE: + rc= tailoring_append(st, "[last secondary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_TERTIARY_IGNORABLE: + rc= tailoring_append(st, "[first tertiary ignorable]", 0, NULL); + break; + + case _CS_RESET_LAST_TERTIARY_IGNORABLE: + rc= tailoring_append(st, "[last tertiary ignorable]", 0, NULL); + break; + + case _CS_RESET_FIRST_TRAILING: + rc= tailoring_append(st, "[first trailing]", 0, NULL); break; + + case _CS_RESET_LAST_TRAILING: + rc= tailoring_append(st, "[last trailing]", 0, NULL); + break; + + case _CS_RESET_FIRST_VARIABLE: + rc= tailoring_append(st, "[first variable]", 0, NULL); + break; + + case _CS_RESET_LAST_VARIABLE: + rc= tailoring_append(st, "[last variable]", 0, NULL); + break; + default: rc=MY_XML_OK; } @@ -213,14 +555,40 @@ static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len) } +static const char *diff_fmt[5]= +{ + "<%.*s", + "<<%.*s", + "<<<%.*s", + "<<<<%.*s", + "=%.*s" +}; + + +static const char *context_diff_fmt[5]= +{ + "<%.*s|%.*s", + "<<%.*s|%.*s", + "<<<%.*s|%.*s", + "<<<<%.*s|%.*s", + "=%.*s|%.*s" +}; + + static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len) { struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data; const struct my_cs_file_section_st *s; - int state= (int)((s= cs_file_sec(st->attr, strlen(st->attr))) ? s->state : - 0); - + int state= (int)((s= cs_file_sec(st->attr.start, + st->attr.end - st->attr.start)) ? + s->state : 0); + int rc= MY_XML_OK; + switch (state) { + case _CS_MISC: + case _CS_FAMILY: + case _CS_ORDER: + break; case _CS_ID: i->cs.number= strtol(attr,(char**)NULL,10); break; @@ -267,68 +635,285 @@ static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len) fill_uchar(i->ctype,MY_CS_CTYPE_TABLE_SIZE,attr,len); i->cs.ctype=i->ctype; break; + + /* Special purpose commands */ + case _CS_UCA_VERSION: + rc= tailoring_append(st, "[version %.*s]", len, attr); + break; + + case _CS_CL_SUPPRESS_CONTRACTIONS: + rc= tailoring_append(st, "[suppress contractions %.*s]", len, attr); + break; + + case _CS_CL_OPTIMIZE: + rc= tailoring_append(st, "[optimize %.*s]", len, attr); + break; + + case _CS_CL_SHIFT_AFTER_METHOD: + rc= tailoring_append(st, "[shift-after-method %.*s]", len, attr); + break; + + /* Collation Settings */ + case _CS_ST_STRENGTH: + /* 1, 2, 3, 4, 5, or primary, secondary, tertiary, quaternary, identical */ + rc= tailoring_append(st, "[strength %.*s]", len, attr); + break; + + case _CS_ST_ALTERNATE: + /* non-ignorable, shifted */ + rc= tailoring_append(st, "[alternate %.*s]", len, attr); + break; + + case _CS_ST_BACKWARDS: + /* on, off, 2 */ + rc= tailoring_append(st, "[backwards %.*s]", len, attr); + break; + + case _CS_ST_NORMALIZATION: + /* + TODO for WL#896: check collations for normalization: vi.xml + We want precomposed characters work well at this point. + */ + /* on, off */ + rc= tailoring_append(st, "[normalization %.*s]", len, attr); + break; + + case _CS_ST_CASE_LEVEL: + /* on, off */ + rc= tailoring_append(st, "[caseLevel %.*s]", len, attr); + break; + + case _CS_ST_CASE_FIRST: + /* upper, lower, off */ + rc= tailoring_append(st, "[caseFirst %.*s]", len, attr); + break; + + case _CS_ST_HIRAGANA_QUATERNARY: + /* on, off */ + rc= tailoring_append(st, "[hiraganaQ %.*s]", len, attr); + break; + + case _CS_ST_NUMERIC: + /* on, off */ + rc= tailoring_append(st, "[numeric %.*s]", len, attr); + break; + + case _CS_ST_VARIABLE_TOP: + /* TODO for WL#896: check value format */ + rc= tailoring_append(st, "[variableTop %.*s]", len, attr); + break; + + case _CS_ST_MATCH_BOUNDARIES: + /* none, whole-character, whole-word */ + rc= tailoring_append(st, "[match-boundaries %.*s]", len, attr); + break; + + case _CS_ST_MATCH_STYLE: + /* minimal, medial, maximal */ + rc= tailoring_append(st, "[match-style %.*s]", len, attr); + break; + + + /* Rules */ case _CS_RESET: + rc= tailoring_append(st, "%.*s", len, attr); + break; + case _CS_DIFF1: case _CS_DIFF2: case _CS_DIFF3: + case _CS_DIFF4: case _CS_IDENTICAL: + rc= tailoring_append(st, diff_fmt[state - _CS_DIFF1], len, attr); + break; + + + /* Rules: Expansion */ + case _CS_EXP_EXTEND: + rc= tailoring_append(st, " / %.*s", len, attr); + break; + + case _CS_EXP_DIFF1: + case _CS_EXP_DIFF2: + case _CS_EXP_DIFF3: + case _CS_EXP_DIFF4: + case _CS_EXP_IDENTICAL: + if (i->context[0]) { - /* - Convert collation description from - Locale Data Markup Language (LDML) - into ICU Collation Customization expression. - */ - char arg[16]; - const char *cmd[]= {"&","<","<<","<<<","="}; - i->cs.tailoring= i->tailoring; - mstr(arg,attr,len,sizeof(arg)-1); - if (i->tailoring_length + 20 < sizeof(i->tailoring)) - { - char *dst= i->tailoring_length + i->tailoring; - i->tailoring_length+= sprintf(dst," %s %s",cmd[state-_CS_RESET],arg); - } + rc= tailoring_append2(st, context_diff_fmt[state - _CS_EXP_DIFF1], + strlen(i->context), i->context, len, attr); + i->context[0]= 0; + } + else + rc= tailoring_append(st, diff_fmt[state - _CS_EXP_DIFF1], len, attr); + break; + + /* Rules: Context */ + case _CS_CONTEXT: + if (len < sizeof(i->context) + 1) + { + memcpy(i->context, attr, len); + i->context[len]= '\0'; } + break; + + /* Rules: Abbreviating Ordering Specifications */ + case _CS_A_DIFF1: + case _CS_A_DIFF2: + case _CS_A_DIFF3: + case _CS_A_DIFF4: + case _CS_A_IDENTICAL: + rc= tailoring_append_abbreviation(st, diff_fmt[state - _CS_A_DIFF1], len, attr); + break; + + /* Rules: Placing Characters Before Others */ + case _CS_RESET_BEFORE: + /* + TODO for WL#896: Add this check into text customization parser: + It is an error if the strength of the before relation is not identical + to the relation after the reset. We'll need this for WL#896. + */ + rc= tailoring_append(st, "[before %.*s]", len, attr); + break; + + + default: + break; } - return MY_XML_OK; + + return rc; } -my_bool my_parse_charset_xml(const char *buf, size_t len, - int (*add_collation)(struct charset_info_st *cs)) +my_bool +my_parse_charset_xml(MY_CHARSET_LOADER *loader, const char *buf, size_t len) { MY_XML_PARSER p; - struct my_cs_file_info i; + struct my_cs_file_info info; my_bool rc; + my_charset_file_init(&info); my_xml_parser_create(&p); my_xml_set_enter_handler(&p,cs_enter); my_xml_set_value_handler(&p,cs_value); my_xml_set_leave_handler(&p,cs_leave); - i.add_collation= add_collation; - my_xml_set_user_data(&p,(void*)&i); + info.loader= loader; + my_xml_set_user_data(&p, (void *) &info); rc= (my_xml_parse(&p,buf,len) == MY_XML_OK) ? FALSE : TRUE; my_xml_parser_free(&p); + my_charset_file_free(&info); + if (rc != MY_XML_OK) + { + const char *errstr= my_xml_error_string(&p); + if (sizeof(loader->error) > 32 + strlen(errstr)) + { + /* We cannot use my_snprintf() here. See previous comment. */ + sprintf(loader->error, "at line %d pos %d: %s", + my_xml_error_lineno(&p)+1, + (int) my_xml_error_pos(&p), + my_xml_error_string(&p)); + } + } return rc; } +uint +my_string_repertoire_8bit(CHARSET_INFO *cs, const char *str, ulong length) +{ + const char *strend; + if ((cs->state & MY_CS_NONASCII) && length > 0) + return MY_REPERTOIRE_UNICODE30; + for (strend= str + length; str < strend; str++) + { + if (((uchar) *str) > 0x7F) + return MY_REPERTOIRE_UNICODE30; + } + return MY_REPERTOIRE_ASCII; +} + + +static void +my_string_metadata_init(MY_STRING_METADATA *metadata) +{ + metadata->repertoire= MY_REPERTOIRE_ASCII; + metadata->char_length= 0; +} + + +/** + This should probably eventually go as a virtual function into + MY_CHARSET_HANDLER or MY_COLLATION_HANDLER. +*/ +static void +my_string_metadata_get_mb(MY_STRING_METADATA *metadata, + CHARSET_INFO *cs, const char *str, ulong length) +{ + const char *strend= str + length; + for (my_string_metadata_init(metadata) ; + str < strend; + metadata->char_length++) + { + my_wc_t wc; + int mblen= cs->cset->mb_wc(cs, &wc, (const uchar *) str, + (const uchar *) strend); + if (mblen > 0) /* Assigned character */ + { + if (wc > 0x7F) + metadata->repertoire|= MY_REPERTOIRE_EXTENDED; + str+= mblen; + } + else if (mblen == MY_CS_ILSEQ) /* Bad byte sequence */ + { + metadata->repertoire|= MY_REPERTOIRE_EXTENDED; + str++; + } + else if (mblen > MY_CS_TOOSMALL) /* Unassigned character */ + { + metadata->repertoire|= MY_REPERTOIRE_EXTENDED; + str+= (-mblen); + } + else /* Incomplete character, premature end-of-line */ + { + metadata->repertoire|= MY_REPERTOIRE_EXTENDED; /* Just in case */ + break; + } + } +} + + +/** + Collect string metadata: length in characters and repertoire. +*/ +void +my_string_metadata_get(MY_STRING_METADATA *metadata, + CHARSET_INFO *cs, const char *str, size_t length) +{ + if (cs->mbmaxlen == 1 && !(cs->state & MY_CS_NONASCII)) + { + metadata->char_length= length; + metadata->repertoire= my_string_repertoire_8bit(cs, str, length); + } + else + { + my_string_metadata_get_mb(metadata, cs, str, length); + } +} + + /* Check repertoire: detect pure ascii strings */ uint my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong length) { - const char *strend= str + length; - if (cs->mbminlen == 1) + if (cs->mbminlen == 1 && !(cs->state & MY_CS_NONASCII)) { - for ( ; str < strend; str++) - { - if (((uchar) *str) > 0x7F) - return MY_REPERTOIRE_UNICODE30; - } + return my_string_repertoire_8bit(cs, str, length); } else { + const char *strend= str + length; my_wc_t wc; int chlen; for (; @@ -428,3 +1013,151 @@ my_charset_is_ascii_compatible(CHARSET_INFO *cs) } return 1; } + + +/* + Convert a string between two character sets. + 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes. + + @param to[OUT] Store result here + @param to_length Size of "to" buffer + @param to_cs Character set of result string + @param from Copy from here + @param from_length Length of the "from" string + @param from_cs Character set of the "from" string + @param errors[OUT] Number of conversion errors + + @return Number of bytes copied to 'to' string +*/ + +static uint32 +my_convert_internal(char *to, uint32 to_length, + CHARSET_INFO *to_cs, + const char *from, uint32 from_length, + CHARSET_INFO *from_cs, uint *errors) +{ + int cnvres; + my_wc_t wc; + const uchar *from_end= (const uchar*) from + from_length; + char *to_start= to; + uchar *to_end= (uchar*) to + to_length; + my_charset_conv_mb_wc mb_wc= from_cs->cset->mb_wc; + my_charset_conv_wc_mb wc_mb= to_cs->cset->wc_mb; + uint error_count= 0; + + while (1) + { + if ((cnvres= (*mb_wc)(from_cs, &wc, (uchar*) from, from_end)) > 0) + from+= cnvres; + else if (cnvres == MY_CS_ILSEQ) + { + error_count++; + from++; + wc= '?'; + } + else if (cnvres > MY_CS_TOOSMALL) + { + /* + A correct multibyte sequence detected + But it doesn't have Unicode mapping. + */ + error_count++; + from+= (-cnvres); + wc= '?'; + } + else + { + if ((uchar *) from >= from_end) + break; /* End of line */ + /* Incomplete byte sequence */ + error_count++; + from++; + wc= '?'; + } + +outp: + if ((cnvres= (*wc_mb)(to_cs, wc, (uchar*) to, to_end)) > 0) + to+= cnvres; + else if (cnvres == MY_CS_ILUNI && wc != '?') + { + error_count++; + wc= '?'; + goto outp; + } + else + break; + } + *errors= error_count; + return (uint32) (to - to_start); +} + + +/* + Convert a string between two character sets. + Optimized for quick copying of ASCII characters in the range 0x00..0x7F. + 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes. + + @param to[OUT] Store result here + @param to_length Size of "to" buffer + @param to_cs Character set of result string + @param from Copy from here + @param from_length Length of the "from" string + @param from_cs Character set of the "from" string + @param errors[OUT] Number of conversion errors + + @return Number of bytes copied to 'to' string +*/ + +uint32 +my_convert(char *to, uint32 to_length, CHARSET_INFO *to_cs, + const char *from, uint32 from_length, + CHARSET_INFO *from_cs, uint *errors) +{ + uint32 length, length2; + /* + If any of the character sets is not ASCII compatible, + immediately switch to slow mb_wc->wc_mb method. + */ + if ((to_cs->state | from_cs->state) & MY_CS_NONASCII) + return my_convert_internal(to, to_length, to_cs, + from, from_length, from_cs, errors); + + length= length2= MY_MIN(to_length, from_length); + +#if defined(__i386__) || defined(__x86_64__) + /* + Special loop for i386, it allows to refer to a + non-aligned memory block as UINT32, which makes + it possible to copy four bytes at once. This + gives about 10% performance improvement comparing + to byte-by-byte loop. + */ + for ( ; length >= 4; length-= 4, from+= 4, to+= 4) + { + if ((*(uint32*)from) & 0x80808080) + break; + *((uint32*) to)= *((const uint32*) from); + } +#endif /* __i386__ */ + + for (; ; *to++= *from++, length--) + { + if (!length) + { + *errors= 0; + return length2; + } + if (*((unsigned char*) from) > 0x7F) /* A non-ASCII character */ + { + uint32 copied_length= length2 - length; + to_length-= copied_length; + from_length-= copied_length; + return copied_length + my_convert_internal(to, to_length, to_cs, + from, from_length, from_cs, + errors); + } + } + + DBUG_ASSERT(FALSE); // Should never get to here + return 0; // Make compiler happy +} diff --git a/strings/decimal.c b/strings/decimal.c index 3d90a58ea8a..c6898cd099f 100644 --- a/strings/decimal.c +++ b/strings/decimal.c @@ -357,7 +357,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len, if (!(intg_len= fixed_precision ? fixed_intg : intg)) intg_len= 1; frac_len= fixed_precision ? fixed_decimals : frac; - len= from->sign + intg_len + test(frac) + frac_len; + len= from->sign + intg_len + MY_TEST(frac) + frac_len; if (fixed_precision) { if (frac > fixed_decimals) @@ -384,7 +384,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len, else frac-=j; frac_len= frac; - len= from->sign + intg_len + test(frac) + frac; + len= from->sign + intg_len + MY_TEST(frac) + frac_len; } *to_len=len; s[len]=0; @@ -401,7 +401,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len, for (; frac>0; frac-=DIG_PER_DEC1) { dec1 x=*buf++; - for (i=min(frac, DIG_PER_DEC1); i; i--) + for (i=MY_MIN(frac, DIG_PER_DEC1); i; i--) { dec1 y=x/DIG_MASK; *s1++='0'+(uchar)y; @@ -424,7 +424,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len, for (buf=buf0+ROUND_UP(intg); intg>0; intg-=DIG_PER_DEC1) { dec1 x=*--buf; - for (i=min(intg, DIG_PER_DEC1); i; i--) + for (i=MY_MIN(intg, DIG_PER_DEC1); i; i--) { dec1 y=x/10; *--s='0'+(uchar)(x-y*10); @@ -1043,7 +1043,7 @@ int decimal2ulonglong(const decimal_t *from, ulonglong *to) if (from->sign) { - *to=ULL(0); + *to= 0; return E_DEC_OVERFLOW; } @@ -1524,8 +1524,8 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, if (to != from) { - dec1 *p0= buf0+intg0+max(frac1, frac0); - dec1 *p1= buf1+intg0+max(frac1, frac0); + dec1 *p0= buf0+intg0+MY_MAX(frac1, frac0); + dec1 *p1= buf1+intg0+MY_MAX(frac1, frac0); DBUG_ASSERT(p0 - buf0 <= len); DBUG_ASSERT(p1 - buf1 <= len); @@ -1536,7 +1536,7 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, buf0=to->buf; buf1=to->buf; to->sign=from->sign; - to->intg=min(intg0, len)*DIG_PER_DEC1; + to->intg=MY_MIN(intg0, len)*DIG_PER_DEC1; } if (frac0 > frac1) @@ -1605,24 +1605,6 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, x+=10; *buf1=powers10[pos]*(x-y); } - /* - In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside - the buffer are as follows. - - Before <1, 5e8> - After <2, 5e8> - - Hence we need to set the 2nd field to 0. - The same holds if we round 1.5e-9 to 2e-9. - */ - if (frac0 < frac1) - { - dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0); - dec1 *end= to->buf + len; - - while (buf < end) - *buf++=0; - } if (*buf1 >= DIG_BASE) { carry=1; @@ -1638,12 +1620,13 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, scale=frac0*DIG_PER_DEC1; error=E_DEC_TRUNCATED; /* XXX */ } - for (buf1=to->buf+intg0+max(frac0,0); buf1 > to->buf; buf1--) + for (buf1=to->buf+intg0+MY_MAX(frac0,0); buf1 > to->buf; buf1--) { buf1[0]=buf1[-1]; } *buf1=1; to->intg++; + intg0++; } } else @@ -1657,7 +1640,7 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, /* making 'zero' with the proper scale */ dec1 *p0= to->buf + frac0 + 1; to->intg=1; - to->frac= max(scale, 0); + to->frac= MY_MAX(scale, 0); to->sign= 0; for (buf1= to->buf; buf1<p0; buf1++) *buf1= 0; @@ -1665,6 +1648,24 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale, } } } + /* + In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside + the buffer are as follows. + + Before <1, 5e8> + After <2, 5e8> + + Hence we need to set the 2nd field to 0. + The same holds if we round 1.5e-9 to 2e-9. + */ + if (frac0 < frac1) + { + dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0); + dec1 *end= to->buf + len; + + while (buf < end) + *buf++=0; + } /* Here we check 999.9 -> 1000 case when we need to increase intg */ first_dig= to->intg % DIG_PER_DEC1; @@ -1706,11 +1707,11 @@ int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, int param) { switch (op) { case '-': - return ROUND_UP(max(from1->intg, from2->intg)) + - ROUND_UP(max(from1->frac, from2->frac)); + return ROUND_UP(MY_MAX(from1->intg, from2->intg)) + + ROUND_UP(MY_MAX(from1->frac, from2->frac)); case '+': - return ROUND_UP(max(from1->intg, from2->intg)+1) + - ROUND_UP(max(from1->frac, from2->frac)); + return ROUND_UP(MY_MAX(from1->intg, from2->intg)+1) + + ROUND_UP(MY_MAX(from1->frac, from2->frac)); case '*': return ROUND_UP(from1->intg+from2->intg)+ ROUND_UP(from1->frac)+ROUND_UP(from2->frac); @@ -1725,7 +1726,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) { int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg), frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac), - frac0=max(frac1, frac2), intg0=max(intg1, intg2), error; + frac0=MY_MAX(frac1, frac2), intg0=MY_MAX(intg1, intg2), error; dec1 *buf1, *buf2, *buf0, *stop, *stop2, x, carry; sanity(to); @@ -1750,7 +1751,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) buf0=to->buf+intg0+frac0; to->sign=from1->sign; - to->frac=max(from1->frac, from2->frac); + to->frac=MY_MAX(from1->frac, from2->frac); to->intg=intg0*DIG_PER_DEC1; if (unlikely(error)) { @@ -1761,7 +1762,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) set_if_smaller(intg2, intg0); } - /* part 1 - max(frac) ... min (frac) */ + /* part 1 - MY_MAX(frac) ... min (frac) */ if (frac1 > frac2) { buf1=from1->buf+intg1+frac1; @@ -1779,14 +1780,14 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to) while (buf1 > stop) *--buf0=*--buf1; - /* part 2 - min(frac) ... min(intg) */ + /* part 2 - MY_MIN(frac) ... MY_MIN(intg) */ carry=0; while (buf1 > stop2) { ADD(*--buf0, *--buf1, *--buf2, carry); } - /* part 3 - min(intg) ... max(intg) */ + /* part 3 - MY_MIN(intg) ... MY_MAX(intg) */ buf1= intg1 > intg2 ? ((stop=from1->buf)+intg1-intg2) : ((stop=from2->buf)+intg2-intg1) ; while (buf1 > stop) @@ -1807,7 +1808,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) { int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg), frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac); - int frac0=max(frac1, frac2), error; + int frac0=MY_MAX(frac1, frac2), error; dec1 *buf1, *buf2, *buf0, *stop1, *stop2, *start1, *start2; my_bool carry=0; @@ -1883,7 +1884,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) FIX_INTG_FRAC_ERROR(to->len, intg1, frac0, error); buf0=to->buf+intg1+frac0; - to->frac=max(from1->frac, from2->frac); + to->frac=MY_MAX(from1->frac, from2->frac); to->intg=intg1*DIG_PER_DEC1; if (unlikely(error)) { @@ -1894,7 +1895,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) } carry=0; - /* part 1 - max(frac) ... min (frac) */ + /* part 1 - MY_MAX(frac) ... min (frac) */ if (frac1 > frac2) { buf1=start1+intg1+frac1; @@ -1918,7 +1919,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to) } } - /* part 2 - min(frac) ... intg2 */ + /* part 2 - MY_MIN(frac) ... intg2 */ while (buf2 > start2) { SUB(*--buf0, *--buf1, *--buf2, carry); @@ -2181,11 +2182,11 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2, { /* we're calculating N1 % N2. The result will have - frac=max(frac1, frac2), as for subtraction + frac=MY_MAX(frac1, frac2), as for subtraction intg=intg2 */ to->sign=from1->sign; - to->frac=max(from1->frac, from2->frac); + to->frac=MY_MAX(from1->frac, from2->frac); frac0=0; } else @@ -2318,7 +2319,7 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2, /* now the result is in tmp1, it has intg=prec1-frac1 - frac=max(frac1, frac2)=to->frac + frac=MY_MAX(frac1, frac2)=to->frac */ if (dcarry) *--start1=dcarry; @@ -2356,7 +2357,7 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2, } DBUG_ASSERT(intg0 <= ROUND_UP(from2->intg)); stop1=start1+frac0+intg0; - to->intg=min(intg0*DIG_PER_DEC1, from2->intg); + to->intg=MY_MIN(intg0*DIG_PER_DEC1, from2->intg); } if (unlikely(intg0+frac0 > to->len)) { diff --git a/strings/dtoa.c b/strings/dtoa.c index 6b216056f66..c3ab347f94c 100644 --- a/strings/dtoa.c +++ b/strings/dtoa.c @@ -132,7 +132,7 @@ size_t my_fcvt(double x, int precision, char *to, my_bool *error) if (len <= decpt) *dst++= '.'; - for (i= precision - max(0, (len - decpt)); i > 0; i--) + for (i= precision - MY_MAX(0, (len - decpt)); i > 0; i--) *dst++= '0'; } @@ -221,7 +221,7 @@ size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, if (x < 0.) width--; - res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : min(width, FLT_DIG), + res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : MY_MIN(width, FLT_DIG), &decpt, &sign, &end, buf, sizeof(buf)); if (decpt == DTOA_OVERFLOW) { @@ -1410,7 +1410,7 @@ static double my_strtod_int(const char *s00, char **se, int *error, char *buf, s else if (nd < 16) z= 10*z + c - '0'; nd0= nd; - if (s < end - 1 && c == '.') + if (s < end && c == '.') { ++s; if (!nd) @@ -2182,7 +2182,7 @@ static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, 1 ==> like 0, but with Steele & White stopping rule; e.g. with IEEE P754 arithmetic , mode 0 gives 1e23 whereas mode 1 gives 9.999999999999999e22. - 2 ==> max(1,ndigits) significant digits. This gives a + 2 ==> MY_MAX(1,ndigits) significant digits. This gives a return value similar to that of ecvt, except that trailing zeros are suppressed. 3 ==> through ndigits past the decimal point. This diff --git a/strings/my_strtoll10.c b/strings/my_strtoll10.c index 89450f15c9f..ea556cea127 100644 --- a/strings/my_strtoll10.c +++ b/strings/my_strtoll10.c @@ -1,5 +1,5 @@ /* Copyright (c) 2003 TXT DataKonsult Ab - Copyright (c) 2009-2011, Monty Program Ab + Copyright (c) 2009, 2013, Monty Program Ab. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -29,11 +29,11 @@ #include "strings_def.h" #include <my_sys.h> /* Needed for MY_ERRNO_ERANGE */ -#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000)) +#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000ULL) #define INIT_CNT 9 -#define LFACTOR ULL(1000000000) -#define LFACTOR1 ULL(10000000000) -#define LFACTOR2 ULL(100000000000) +#define LFACTOR 1000000000ULL +#define LFACTOR1 10000000000ULL +#define LFACTOR2 100000000000ULL static unsigned long lfactor[9]= { diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c index 3ac4156da22..1584a9e2cef 100644 --- a/strings/my_vsnprintf.c +++ b/strings/my_vsnprintf.c @@ -17,10 +17,14 @@ #include "strings_def.h" #include <m_ctype.h> #include <stdarg.h> +#include <my_sys.h> +#include <my_base.h> +#include <my_handler_errors.h> #define MAX_ARGS 32 /* max positional args count*/ #define MAX_PRINT_INFO 32 /* max print position count */ +#define MAX_WIDTH 65535 #define LENGTH_ARG 1 #define WIDTH_ARG 2 @@ -65,6 +69,7 @@ struct print_info static const char *get_length(const char *fmt, size_t *length, uint *pre_zero) { + for (; my_isdigit(&my_charset_latin1, *fmt); fmt++) { *length= *length * 10 + (uint)(*fmt - '0'); @@ -75,23 +80,28 @@ static const char *get_length(const char *fmt, size_t *length, uint *pre_zero) } -/** - Calculates print width or index of positional argument +/* + Get argument for '*' parameter @param fmt processed string - @param width print width or index of positional argument + @param args_arr Arguments to printf + @param arg_count Number of arguments to printf + @param length returns length of argument + @param flag returns flags with PREZERO_ARG set if necessary - @retval - string position right after width digits + @return new fmt */ -static const char *get_width(const char *fmt, size_t *width) +static const char *get_length_arg(const char *fmt, ARGS_INFO *args_arr, + uint *arg_count, size_t *length, uint *flags) { - for (; my_isdigit(&my_charset_latin1, *fmt); fmt++) - { - *width= *width * 10 + (uint)(*fmt - '0'); - } - return fmt; + fmt= get_length(fmt+1, length, flags); + *arg_count= MY_MAX(*arg_count, (uint) *length); + (*length)--; + DBUG_ASSERT(*fmt == '$' && *length < MAX_ARGS); + args_arr[*length].arg_type= 'd'; + args_arr[*length].have_longlong= 0; + return fmt+1; } /** @@ -123,6 +133,8 @@ static const char *check_longlong(const char *fmt, uint *have_longlong) fmt++; *have_longlong= (sizeof(size_t) == sizeof(longlong)); } + else if (*fmt == 'p') + *have_longlong= (sizeof(void *) == sizeof(longlong)); return fmt; } @@ -141,7 +153,7 @@ static const char *check_longlong(const char *fmt, uint *have_longlong) position in buffer which points on the end of escaped string */ -static char *backtick_string(CHARSET_INFO *cs, char *to, char *end, +static char *backtick_string(CHARSET_INFO *cs, char *to, const char *end, char *par, size_t par_len, char quote_char) { uint char_len; @@ -184,7 +196,7 @@ err: Prints string argument */ -static char *process_str_arg(CHARSET_INFO *cs, char *to, char *end, +static char *process_str_arg(CHARSET_INFO *cs, char *to, const char *end, size_t width, char *par, uint print_type) { int well_formed_error; @@ -227,11 +239,11 @@ static char *process_bin_arg(char *to, char *end, size_t width, char *par) static char *process_dbl_arg(char *to, char *end, size_t width, double par, char arg_type) { - if (width == SIZE_T_MAX) + if (width == MAX_WIDTH) width= FLT_DIG; /* width not set, use default */ else if (width >= NOT_FIXED_DEC) width= NOT_FIXED_DEC - 1; /* max.precision for my_fcvt() */ - width= min(width, (size_t)(end-to) - 1); + width= MY_MIN(width, (size_t)(end-to) - 1); if (arg_type == 'f') to+= my_fcvt(par, (int)width , to, NULL); @@ -245,7 +257,7 @@ static char *process_dbl_arg(char *to, char *end, size_t width, Prints integer argument */ -static char *process_int_arg(char *to, char *end, size_t length, +static char *process_int_arg(char *to, const char *end, size_t length, longlong par, char arg_type, uint print_type) { size_t res_length, to_length; @@ -280,7 +292,7 @@ static char *process_int_arg(char *to, char *end, size_t length, /* If %#d syntax was used, we have to pre-zero/pre-space the string */ if (store_start == buff) { - length= min(length, to_length); + length= MY_MIN(length, to_length); if (res_length < length) { size_t diff= (length- res_length); @@ -338,44 +350,31 @@ start: /* Get print length */ if (*fmt == '*') { - fmt++; - fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); - print_arr[idx].length--; - DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS); - args_arr[print_arr[idx].length].arg_type= 'd'; - args_arr[print_arr[idx].length].have_longlong= 0; + fmt= get_length_arg(fmt, args_arr, &arg_count, &print_arr[idx].length, + &print_arr[idx].flags); print_arr[idx].flags|= LENGTH_ARG; - arg_count= max(arg_count, print_arr[idx].length + 1); - fmt++; } else fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); if (*fmt == '.') { + uint unused_flags= 0; fmt++; /* Get print width */ if (*fmt == '*') { - fmt++; - fmt= get_width(fmt, &print_arr[idx].width); - print_arr[idx].width--; - DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS); - args_arr[print_arr[idx].width].arg_type= 'd'; - args_arr[print_arr[idx].width].have_longlong= 0; + fmt= get_length_arg(fmt, args_arr, &arg_count, &print_arr[idx].width, + &unused_flags); print_arr[idx].flags|= WIDTH_ARG; - arg_count= max(arg_count, print_arr[idx].width + 1); - fmt++; } else - fmt= get_width(fmt, &print_arr[idx].width); + fmt= get_length(fmt, &print_arr[idx].width, &unused_flags); } else - print_arr[idx].width= SIZE_T_MAX; + print_arr[idx].width= MAX_WIDTH; fmt= check_longlong(fmt, &args_arr[arg_index].have_longlong); - if (*fmt == 'p') - args_arr[arg_index].have_longlong= (sizeof(void *) == sizeof(longlong)); args_arr[arg_index].arg_type= print_arr[idx].arg_type= *fmt; print_arr[idx].arg_idx= arg_index; @@ -414,6 +413,7 @@ start: else args_arr[i].longlong_arg= va_arg(ap, uint); break; + case 'M': case 'c': args_arr[i].longlong_arg= va_arg(ap, int); break; @@ -474,17 +474,36 @@ start: ? (size_t)args_arr[print_arr[i].length].longlong_arg : print_arr[i].length; - if (args_arr[print_arr[i].arg_idx].have_longlong) - larg = args_arr[print_arr[i].arg_idx].longlong_arg; - else if (print_arr[i].arg_type == 'd' || print_arr[i].arg_type == 'i' ) - larg = (int) args_arr[print_arr[i].arg_idx].longlong_arg; - else - larg= (uint) args_arr[print_arr[i].arg_idx].longlong_arg; - + larg = args_arr[print_arr[i].arg_idx].longlong_arg; to= process_int_arg(to, end, length, larg, print_arr[i].arg_type, print_arr[i].flags); break; } + case 'M': + { + longlong larg; + const char *real_end; + + width= (print_arr[i].flags & WIDTH_ARG) + ? (size_t)args_arr[print_arr[i].width].longlong_arg + : print_arr[i].width; + + real_end= MY_MIN(to + width, end); + + larg = args_arr[print_arr[i].arg_idx].longlong_arg; + to= process_int_arg(to, real_end, 0, larg, 'd', print_arr[i].flags); + if (real_end - to >= 3) + { + char errmsg_buff[MYSYS_STRERROR_SIZE]; + *to++= ' '; + *to++= '"'; + my_strerror(errmsg_buff, sizeof(errmsg_buff), larg); + to= process_str_arg(cs, to, real_end, width, errmsg_buff, + print_arr[i].flags); + if (real_end > to) *to++= '"'; + } + break; + } default: break; } @@ -492,7 +511,8 @@ start: if (to == end) break; - length= min(end - to , print_arr[i].end - print_arr[i].begin); + /* Copy data after the % format expression until next % */ + length= MY_MIN(end - to , print_arr[i].end - print_arr[i].begin); if (to + length < end) length++; to= strnmov(to, print_arr[i].begin, length); @@ -503,16 +523,17 @@ start: } else { + uint unused_flags= 0; /* Process next positional argument*/ DBUG_ASSERT(*fmt == '%'); print_arr[idx].end= fmt - 1; idx++; fmt++; arg_index= 0; - fmt= get_width(fmt, &arg_index); + fmt= get_length(fmt, &arg_index, &unused_flags); DBUG_ASSERT(*fmt == '$'); fmt++; - arg_count= max(arg_count, arg_index); + arg_count= MY_MAX(arg_count, arg_index); goto start; } @@ -587,6 +608,7 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, if (*fmt == '.') { + uint unused_flags= 0; fmt++; if (*fmt == '*') { @@ -594,10 +616,10 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, width= va_arg(ap, int); } else - fmt= get_width(fmt, &width); + fmt= get_length(fmt, &width, &unused_flags); } else - width= SIZE_T_MAX; + width= MAX_WIDTH; fmt= check_longlong(fmt, &have_longlong); @@ -624,8 +646,6 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, { /* Integer parameter */ longlong larg; - if (*fmt == 'p') - have_longlong= (sizeof(void *) == sizeof(longlong)); if (have_longlong) larg = va_arg(ap,longlong); @@ -646,9 +666,26 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, *to++= (char) larg; continue; } + else if (*fmt == 'M') + { + int larg= va_arg(ap, int); + const char *real_end= MY_MIN(to + width, end); + + to= process_int_arg(to, real_end, 0, larg, 'd', print_type); + if (real_end - to >= 3) + { + char errmsg_buff[MYSYS_STRERROR_SIZE]; + *to++= ' '; + *to++= '"'; + my_strerror(errmsg_buff, sizeof(errmsg_buff), larg); + to= process_str_arg(cs, to, real_end, width, errmsg_buff, print_type); + if (real_end > to) *to++= '"'; + } + continue; + } /* We come here on '%%', unknown code or too long parameter */ - if (to == end) + if (to >= end) break; *to++='%'; /* % used as % or unknown code */ } @@ -698,7 +735,7 @@ int my_vfprintf(FILE *stream, const char* format, va_list args) char cvtbuf[1024]; int alloc= 0; char *p= cvtbuf; - size_t cur_len= sizeof(cvtbuf); + size_t cur_len= sizeof(cvtbuf), actual; int ret; /* @@ -709,7 +746,7 @@ int my_vfprintf(FILE *stream, const char* format, va_list args) for (;;) { size_t new_len; - size_t actual= my_vsnprintf(p, cur_len, format, args); + actual= my_vsnprintf(p, cur_len, format, args); if (actual < cur_len - 1) break; /* @@ -729,7 +766,9 @@ int my_vfprintf(FILE *stream, const char* format, va_list args) if (!p) return 0; } - ret= fprintf(stream, "%s", p); + ret= (int) actual; + if (fputs(p, stream) < 0) + ret= -1; if (alloc) (*my_str_free)(p); return ret; @@ -744,3 +783,67 @@ int my_fprintf(FILE *stream, const char* format, ...) va_end(args); return result; } + + +/* + Return system error text for given error number + + @param buf Buffer (of size MYSYS_STRERROR_SIZE) + @param len Length of buffer + @param nr Error number +*/ + +void my_strerror(char *buf, size_t len, int nr) +{ + char *msg= NULL; + + buf[0]= '\0'; /* failsafe */ + + if (nr <= 0) + { + strmake(buf, (nr == 0 ? + "Internal error/check (Not system error)" : + "Internal error < 0 (Not system error)"), + len-1); + return; + } + + /* + These (handler-) error messages are shared by perror, as required + by the principle of least surprise. + */ + if ((nr >= HA_ERR_FIRST) && (nr <= HA_ERR_LAST)) + { + msg= (char *) handler_error_messages[nr - HA_ERR_FIRST]; + strmake(buf, msg, len - 1); + } + else + { + /* + On Windows, do things the Windows way. On a system that supports both + the GNU and the XSI variant, use whichever was configured (GNU); if + this choice is not advertised, use the default (POSIX/XSI). Testing + for __GNUC__ is not sufficient to determine whether this choice exists. + */ +#if defined(__WIN__) + strerror_s(buf, len, nr); +#elif ((defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE >= 200112L)) || \ + (defined _XOPEN_SOURCE && (_XOPEN_SOURCE >= 600))) && \ + ! defined _GNU_SOURCE + strerror_r(nr, buf, len); /* I can build with or without GNU */ +#elif defined _GNU_SOURCE + char *r= strerror_r(nr, buf, len); + if (r != buf) /* Want to help, GNU? */ + strmake(buf, r, len - 1); /* Then don't. */ +#else + strerror_r(nr, buf, len); +#endif + } + + /* + strerror() return values are implementation-dependent, so let's + be pragmatic. + */ + if (!buf[0]) + strmake(buf, "unknown error", len - 1); +} diff --git a/strings/str2int.c b/strings/str2int.c index 64d4e169891..fe6cd6b793e 100644 --- a/strings/str2int.c +++ b/strings/str2int.c @@ -45,7 +45,7 @@ easy task. Coping with integer overflow and the asymmetric range of twos complement machines is anything but easy. - So that users of atoi and atol can check whether an error occured, + So that users of atoi and atol can check whether an error occurred, I have taken a wholly unprecedented step: errno is CLEARED if this call has no problems. */ @@ -94,7 +94,7 @@ char *str2int(register const char *src, register int radix, long int lower, machines all, if +|n| is representable, so is -|n|, but on twos complement machines the converse is not true. So the "maximum" representable number has a negative representative. - Limit is set to min(-|lower|,-|upper|); this is the "largest" + Limit is set to MY_MIN(-|lower|,-|upper|); this is the "largest" number we are concerned with. */ /* Calculate Limit using Scale as a scratch variable */ diff --git a/strings/str_alloc.c b/strings/str_alloc.c index 17139e7b773..91246603f2e 100644 --- a/strings/str_alloc.c +++ b/strings/str_alloc.c @@ -31,5 +31,11 @@ static void my_str_free_default(void *ptr) free(ptr); } +void *my_str_realloc_default(void *ptr, size_t size) +{ + return realloc(ptr, size); +} + void *(*my_str_malloc)(size_t)= &my_str_malloc_default; void (*my_str_free)(void *)= &my_str_free_default; +void *(*my_str_realloc)(void *, size_t)= &my_str_realloc_default; diff --git a/strings/strings_def.h b/strings/strings_def.h index 6bd8e8f5575..fb280b6bb6b 100644 --- a/strings/strings_def.h +++ b/strings/strings_def.h @@ -100,4 +100,13 @@ static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len) end--; return (end); } + +/* Macros for hashing characters */ + +#define MY_HASH_ADD(A, B, value) \ + do { A^= (((A & 63)+B)*((value)))+ (A << 8); B+=3; } while(0) + +#define MY_HASH_ADD_16(A, B, value) \ + do { MY_HASH_ADD(A, B, ((value) & 0xFF)) ; MY_HASH_ADD(A, B, ((value >>8 ))); } while(0) + #endif diff --git a/strings/xml.c b/strings/xml.c index 531fdc83eaa..4685a04faec 100644 --- a/strings/xml.c +++ b/strings/xml.c @@ -15,6 +15,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "strings_def.h" +#include "m_string.h" #include "my_xml.h" @@ -207,25 +208,71 @@ static int my_xml_value(MY_XML_PARSER *st, const char *str, size_t len) } -static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len) +/** + Ensure the attr buffer is wide enough to hold the new value + + Expand and/or allocate dynamic buffer as needed to hold the concatenated + path and the terminating zero. + + @attr st the parser instance + @attr len the length of the attribute to be added + @return state + @retval 1 failed + @retval 0 success +*/ +static int my_xml_attr_ensure_space(MY_XML_PARSER *st, size_t len) { - if ((size_t) (st->attrend-st->attr+len+1) > sizeof(st->attr)) + size_t ofs= st->attr.end - st->attr.start; + len++; // Add terminating zero. + if (ofs + len > st->attr.buffer_size) { - sprintf(st->errstr,"To deep XML"); - return MY_XML_ERROR; + st->attr.buffer_size= (SIZE_T_MAX - len) / 2 > st->attr.buffer_size ? + st->attr.buffer_size * 2 + len : SIZE_T_MAX; + + if (!st->attr.buffer) + { + st->attr.buffer= (char *) my_str_malloc(st->attr.buffer_size); + if (st->attr.buffer) + memcpy(st->attr.buffer, st->attr.static_buffer, ofs + 1 /*term. zero */); + } + else + st->attr.buffer= (char *) my_str_realloc(st->attr.buffer, + st->attr.buffer_size); + st->attr.start= st->attr.buffer; + st->attr.end= st->attr.start + ofs; + + return st->attr.buffer ? MY_XML_OK : MY_XML_ERROR; } - if (st->attrend > st->attr) + return MY_XML_OK; +} + + +/** rewind the attr buffer to initial state */ +static void my_xml_attr_rewind(MY_XML_PARSER *p) +{ + /* keep the buffer already allocated */ + p->attr.end= p->attr.start; +} + + +static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len) +{ + if (my_xml_attr_ensure_space(st, len + 1 /* the separator char */)) + return MY_XML_ERROR; + + if (st->attr.end > st->attr.start) { - st->attrend[0]= '/'; - st->attrend++; + st->attr.end[0]= '/'; + st->attr.end++; } - memcpy(st->attrend,str,len); - st->attrend+=len; - st->attrend[0]='\0'; + memcpy(st->attr.end, str, len); + st->attr.end+= len; + st->attr.end[0]= '\0'; if (st->flags & MY_XML_FLAG_RELATIVE_NAMES) return st->enter ? st->enter(st, str, len) : MY_XML_OK; else - return st->enter ? st->enter(st,st->attr,st->attrend-st->attr) : MY_XML_OK; + return st->enter ? + st->enter(st, st->attr.start, st->attr.end - st->attr.start) : MY_XML_OK; } @@ -246,10 +293,10 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen) int rc; /* Find previous '/' or beginning */ - for (e=p->attrend; (e>p->attr) && (e[0] != '/') ; e--); - glen = (size_t) ((e[0] == '/') ? (p->attrend-e-1) : p->attrend-e); + for (e= p->attr.end; (e > p->attr.start) && (e[0] != '/') ; e--); + glen= (size_t) ((e[0] == '/') ? (p->attr.end - e - 1) : p->attr.end - e); tag= e[0] == '/' ? e + 1 : e; - + if (str && (slen != glen || memcmp(str, tag, slen))) { mstr(s,str,sizeof(s)-1,slen); @@ -266,11 +313,12 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen) if (p->flags & MY_XML_FLAG_RELATIVE_NAMES) rc= p->leave_xml ? p->leave_xml(p, str, slen) : MY_XML_OK; else - rc= (p->leave_xml ? p->leave_xml(p,p->attr,p->attrend-p->attr) : + rc= (p->leave_xml ? + p->leave_xml(p, p->attr.start, p->attr.end - p->attr.start) : MY_XML_OK); *e='\0'; - p->attrend=e; + p->attr.end= e; return rc; } @@ -278,7 +326,9 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen) int my_xml_parse(MY_XML_PARSER *p,const char *str, size_t len) { - p->attrend=p->attr; + + my_xml_attr_rewind(p); + p->beg=str; p->cur=str; p->end=str+len; @@ -433,7 +483,7 @@ gt: } } - if (p->attr[0]) + if (p->attr.start[0]) { sprintf(p->errstr,"unexpected END-OF-INPUT"); return MY_XML_ERROR; @@ -444,12 +494,22 @@ gt: void my_xml_parser_create(MY_XML_PARSER *p) { - bzero((void*)p,sizeof(p[0])); + memset(p, 0, sizeof(p[0])); + /* + Use static buffer while it's sufficient. + */ + p->attr.start= p->attr.end= p->attr.static_buffer; + p->attr.buffer_size= sizeof(p->attr.static_buffer); } -void my_xml_parser_free(MY_XML_PARSER *p __attribute__((unused))) +void my_xml_parser_free(MY_XML_PARSER *p) { + if (p->attr.buffer) + { + my_str_free(p->attr.buffer); + p->attr.buffer= NULL; + } } |