From 12c74a4400080369dbb2d71d547f1ce6a62d1271 Mon Sep 17 00:00:00 2001 From: Vladimir Weinstein Date: Tue, 6 Nov 2001 22:55:29 +0000 Subject: [PATCH] ICU-1043 Fractional UCA now canonicaly closes suplementary codepoints. Builder checks canonical closure for suplementary ranges. Element lookup in UCA needs to distinguish between implict suplementary codepoint and codepoint redefined in the UCA. X-SVN-Rev: 6642 --- icu4c/data/unidata/FractionalUCA.txt | 963 +++++++++++++++++++- icu4c/source/common/ucmpe32.c | 122 ++- icu4c/source/common/ucmpe32.h | 15 + icu4c/source/data/unidata/FractionalUCA.txt | 963 +++++++++++++++++++- icu4c/source/i18n/ucol.cpp | 3 + icu4c/source/i18n/ucol_bld.cpp | 63 +- icu4c/source/i18n/ucol_elm.cpp | 17 - icu4c/source/i18n/ucol_elm.h | 2 - icu4c/source/test/cintltst/citertst.c | 4 +- icu4c/source/tools/genuca/genuca.cpp | 43 +- 10 files changed, 2138 insertions(+), 57 deletions(-) diff --git a/icu4c/data/unidata/FractionalUCA.txt b/icu4c/data/unidata/FractionalUCA.txt index a78dcce9706..33606857f6c 100644 --- a/icu4c/data/unidata/FractionalUCA.txt +++ b/icu4c/data/unidata/FractionalUCA.txt @@ -1,5 +1,5 @@ # Fractional UCA Table, Generated from UCA -# M. Davis, Thu May 17 17:06:54 PDT 2001 +# M. Davis, Tue Oct 30 15:53:58 PST 2001 # Generated processed version, as described in design document. # Notes # - Bugs in UCA data are NOT FIXED, except for the following problems: @@ -13570,6 +13570,139 @@ FF9D; [75 7E, 05, A5] 3129; [76 7C, 05, 05] +D87E DC0C; [E9 04 43, 05, 05] + +D87E DC13; [E9 04 79, 05, 05] + +D87E DDCA; [E9 04 7D, 05, 05] + +D87E DC1F; [E9 04 C5, 05, 05] + +D87E DC24; [E9 05 35, 05, 05] + +D87E DC67; [E9 08 F3, 05, 05] + +D87E DC76; [E9 0A 21, 05, 05] + +D87E DC83; [E9 0B 81, 05, 05] + +D87E DC88; [E9 0B E7, 05, 05] + +D87E DC8A; [E9 0C 1F, 05, 05] + +D87E DC96; [E9 0C B5, 05, 05] + +D87E DC9B; [E9 0C ED, 05, 05] + +D87E DCA2; [E9 0D 63, 05, 05] + +D87E DCA1; [E9 0D 9F, 05, 05] + +D87E DCC2; [E9 0F 8F, 05, 05] + +D87E DCC7; [E9 10 0F, 05, 05] + +D87E DCD1; [E9 11 03, 05, 05] + +D87E DCD0; [E9 11 4B, 05, 05] + +D87E DCCE; [E9 11 6D, 05, 05] + +D87E DCDE; [E9 11 CD, 05, 05] + +D87E DCE7; [E9 12 79, 05, 05] + +D87E DCEE; [E9 13 73, 05, 05] + +D87E DCF2; [E9 13 DF, 05, 05] + +D87E DD0A; [E9 15 B1, 05, 05] + +D87E DD16; [E9 16 7B, 05, 05] + +D87E DD2A; [E9 18 AF, 05, 05] + +D87E DD2C; [E9 18 C7, 05, 05] +D87E DD2D; [E9 18 C7, 05, 05] + +D87E DD33; [E9 19 91, 05, 05] + +D87E DD3E; [E9 1B 5B, 05, 05] + +D87E DD3F; [E9 1B 73, 05, 05] + +D87E DD49; [E9 1B D5, 05, 05] + +D87E DD4B; [E9 1B EF, 05, 05] + +D87E DD4C; [E9 1C 93, 05, 05] + +D87E DD51; [E9 1D 31, 05, 05] + +D87E DD58; [E9 1D C9, 05, 05] + +D87E DD60; [E9 1F 77, 05, 05] + +D87E DD64; [E9 1F C1, 05, 05] + +D87E DD67; [E9 20 B7, 05, 05] + +D87E DD6D; [E9 21 7D, 05, 05] + +D87E DD71; [E9 21 E3, 05, 05] + +D87E DD74; [E9 22 31, 05, 05] + +D87E DD1F; [E9 22 D5, 05, 05] + +D87E DD81; [E9 23 2D, 05, 05] + +D87E DCD7; [E9 23 35, 05, 05] + +D87E DD84; [E9 23 99, 05, 05] + +D87E DD8E; [E9 24 5D, 05, 05] + +D87E DDA7; [E9 25 E1, 05, 05] + +D87E DDAE; [E9 26 49, 05, 05] + +D87E DDAF; [E9 26 51, 05, 05] + +D87E DDB2; [E9 26 65, 05, 05] + +D87E DDC2; [E9 27 85, 05, 05] + +D87E DDC8; [E9 27 FD, 05, 05] + +D87E DDCD; [E9 29 17, 05, 05] + +D87E DDCE; [E9 29 29, 05, 05] + +D87E DDEF; [E9 2E D9, 05, 05] + +D87E DDF2; [E9 2F 7F, 05, 05] + +D87E DDF8; [E9 30 93, 05, 05] + +D87E DDF9; [E9 30 A3, 05, 05] + +D87E DDFC; [E9 31 1F, 05, 05] + +D87E DE03; [E9 32 25, 05, 05] + +D87E DE08; [E9 33 5F, 05, 05] + +D87E DE0D; [E9 35 67, 05, 05] + +D87E DE0E; [E9 35 A5, 05, 05] + +D87E DE11; [E9 35 BB, 05, 05] + +D87E DE16; [E9 36 7B, 05, 05] + +D87E DDBF; [E9 36 7D, 05, 05] + 2F00; [E9 37 D3, 05, 09] 3280; [E9 37 D3, 05, 0D] 3192; [E9 37 D3, 05, 29] @@ -13603,10 +13736,16 @@ F905; [E9 38 3B, 05, 05] 2F02; [E9 38 43, 05, 09] 2E80; [E9 38 43, DF D9, 09] +D87E DC01; [E9 38 47, 05, 05] + F95E; [E9 38 49, 05, 05] +D87E DC00; [E9 38 51, 05, 05] + 2F03; [E9 38 55, 05, 09] +D87E DC02; [E9 38 59, 05, 05] + 2F04; [E9 38 89, 05, 09] 319A; [E9 38 89, 05, 29] 2E84; [E9 38 89, DF D9, 09] @@ -13640,30 +13779,56 @@ F977; [E9 39 37, 05, 05] F9FD; [E9 39 5B, 05, 05] +D87E DC19; [E9 39 73, 05, 05] + F9A8; [E9 39 A3, 05, 05] 32AD; [E9 39 DD, 05, 0D] 32A1; [E9 39 FD, 05, 0D] +D87E DC04; [E9 3A 9F, 05, 05] + F92D; [E9 3A EB, 05, 05] F9B5; [E9 3A F5, 05, 05] +D87E DC05; [E9 3B 3F, 05, 05] + +D87E DC06; [E9 3B 59, 05, 05] + F965; [E9 3B 61, 05, 05] +D87E DC07; [E9 3B E7, 05, 05] + F9D4; [E9 3C 3D, 05, 05] +D87E DC08; [E9 3C DB, 05, 05] + +D87E DC09; [E9 3D 1D, 05, 05] + +D87E DC0B; [E9 3D 89, 05, 05] + F9BB; [E9 3D 9F, 05, 05] +D87E DC0A; [E9 3D B9, 05, 05] + 329D; [E9 3E 43, 05, 0D] 2F09; [E9 3E 6D, 05, 09] FA0C; [E9 3E 6F, 05, 05] +D87E DC0E; [E9 3E 89, 05, 05] + +D87E DC0F; [E9 3E 97, 05, 05] + +D87E DC10; [E9 3E B7, 05, 05] + 2F0A; [E9 3E B9, 05, 09] +D87E DC14; [E9 3E BD, 05, 05] + F978; [E9 3E C1, 05, 05] 2F0B; [E9 3E C5, 05, 09] @@ -13672,15 +13837,31 @@ F978; [E9 3E C1, 05, 05] F9D1; [E9 3E C9, 05, 05] 3285; [E9 3E C9, 05, 0D] +D87E DC11; [E9 3E DD, 05, 05] + 2F0C; [E9 3E F3, 05, 09] 2E86; [E9 3E F3, DF D9, 09] +D87E DC15; [E9 3F 0D, 05, 05] + +D87E DCD2; [E9 3F 17, 05, 05] + +D87E DCD3; [E9 3F 1D, 05, 05] + 2F0D; [E9 3F 1F, 05, 09] +D87E DC17; [E9 3F 21, 05, 05] + 32A2; [E9 3F 25, 05, 0D] +D87E DC18; [E9 3F 3B, 05, 05] + 2F0E; [E9 3F 49, 05, 09] +D87E DC1A; [E9 3F 4B, 05, 05] + +D87E DC1B; [E9 3F 5D, 05, 05] + F92E; [E9 3F 61, 05, 05] F979; [E9 3F 85, 05, 05] @@ -13694,6 +13875,7 @@ FA15; [E9 3F AF, 05, 05] 2F0F; [E9 3F B3, 05, 09] 2E87; [E9 3F B3, DF D9, 09] +D87E DC1D; [E9 3F DD, 05, 05] 2F10; [E9 3F DD, 05, 09] 2F11; [E9 3F F3, 05, 09] @@ -13701,6 +13883,9 @@ FA15; [E9 3F AF, 05, 05] 2E89; [E9 3F F7, 05, 05] +D87E DC1E; [E9 3F F9, 05, 05] + +D87E DC50; [E9 40 05, 05, 05] FA00; [E9 40 05, 05, 05] F99C; [E9 40 25, 05, 05] @@ -13709,6 +13894,14 @@ F9DD; [E9 40 49, 05, 05] F9FF; [E9 40 6B, 05, 05] +D87E DC20; [E9 40 6D, 05, 05] + +D87E DC21; [E9 40 83, 05, 05] + +D87E DC22; [E9 40 DB, 05, 05] + +D87E DC23; [E9 40 E5, 05, 05] + F9C7; [E9 41 0D, 05, 05] F98A; [E9 41 31, 05, 05] @@ -13716,18 +13909,33 @@ F98A; [E9 41 31, 05, 05] F99D; [E9 41 41, 05, 05] +D87E DD92; [E9 41 61, 05, 05] + 3298; [E9 41 63, 05, 0D] +D87E DC25; [E9 41 89, 05, 05] + +D87E DC26; [E9 41 8D, 05, 05] + F952; [E9 41 9F, 05, 05] F92F; [E9 41 B7, 05, 05] +D87E DC27; [E9 41 C3, 05, 05] + F97F; [E9 41 E5, 05, 05] 2F13; [E9 41 ED, 05, 09] +D87E DC28; [E9 41 EF, 05, 05] + +D87E DC29; [E9 42 09, 05, 05] + +D87E DC2A; [E9 42 0B, 05, 05] + 2F14; [E9 42 29, 05, 09] +D87E DC2B; [E9 42 2D, 05, 05] F963; [E9 42 2D, 05, 05] 2F15; [E9 42 33, 05, 09] @@ -13746,8 +13954,14 @@ F9EB; [E9 42 7D, 05, 05] 303A; [E9 42 89, 05, 09] +D87E DC2C; [E9 42 91, 05, 05] + +D87E DC2D; [E9 42 A1, 05, 05] + 32AF; [E9 42 A7, 05, 0D] +D87E DC2E; [E9 42 B3, 05, 05] + 2F18; [E9 42 B7, 05, 09] 2E8A; [E9 42 B7, DF D9, 09] @@ -13756,8 +13970,16 @@ F9EB; [E9 42 7D, 05, 05] 329E; [E9 42 DF, 05, 0D] +D87E DC2F; [E9 42 E5, 05, 05] + F91C; [E9 42 E9, 05, 05] +D87E DC30; [E9 42 F9, 05, 05] + +D87E DC31; [E9 42 FD, 05, 05] +D87E DC32; [E9 42 FD, 05, 05] +D87E DC33; [E9 42 FD, 05, 05] + 2F1A; [E9 43 07, 05, 09] 2E81; [E9 43 07, DF D9, 09] @@ -13767,26 +13989,71 @@ F96B; [E9 43 89, 05, 05] 2F1C; [E9 43 93, 05, 09] +D87E DC36; [E9 43 97, 05, 05] + +D87E DC37; [E9 43 C1, 05, 05] + 2F1D; [E9 43 C9, 05, 09] F906; [E9 43 CD, 05, 05] +D87E DC39; [E9 43 D9, 05, 05] + +D87E DC3A; [E9 43 E5, 05, 05] + 32A8; [E9 43 E9, 05, 0D] +D87E DC3B; [E9 44 13, 05, 05] + 3294; [E9 44 21, 05, 0D] F9DE; [E9 44 25, 05, 05] F9ED; [E9 44 41, 05, 05] +D87E DC3D; [E9 44 77, 05, 05] + F980; [E9 44 8B, 05, 05] +D87E DC3E; [E9 44 97, 05, 05] + +D87E DC3F; [E9 44 D7, 05, 05] + +D87E DC3C; [E9 45 47, 05, 05] + +D87E DC40; [E9 45 4F, 05, 05] + F99E; [E9 45 85, 05, 05] +D87E DC41; [E9 45 F7, 05, 05] + +D87E DC42; [E9 46 2F, 05, 05] + +D87E DC43; [E9 46 B5, 05, 05] + +D87E DC44; [E9 46 D5, 05, 05] + +D87E DC45; [E9 47 1B, 05, 05] +D87E DC46; [E9 47 1B, 05, 05] + F90B; [E9 47 21, 05, 05] +D87E DC47; [E9 47 45, 05, 05] + +D87E DC48; [E9 47 69, 05, 05] + +D87E DC49; [E9 47 79, 05, 05] + FA0D; [E9 47 93, 05, 05] +D87E DC4A; [E9 47 97, 05, 05] + +D87E DC4C; [E9 48 23, 05, 05] + +D87E DC4E; [E9 48 B9, 05, 05] + +D87E DC4F; [E9 49 03, 05, 05] + 2F1E; [E9 49 C9, 05, 09] 3283; [E9 49 D1, 05, 0D] @@ -13794,29 +14061,59 @@ FA0D; [E9 47 93, 05, 05] F9A9; [E9 4A 11, 05, 05] +D87E DC4B; [E9 4A 4B, 05, 05] + +D87E DC4D; [E9 4A 4D, 05, 05] + 2F1F; [E9 4A 5D, 05, 09] 328F; [E9 4A 5D, 05, 0D] 319E; [E9 4A 7F, 05, 29] +D87E DC55; [E9 4B 39, 05, 05] + +D87E DC52; [E9 4B BF, 05, 05] + +D87E DC53; [E9 4C 0F, 05, 05] + +D87E DC54; [E9 4C 41, 05, 05] + +D87E DC57; [E9 4C 89, 05, 05] + +D87E DC56; [E9 4C 8B, 05, 05] + FA10; [E9 4C DB, 05, 05] F96C; [E9 4C E3, 05, 05] +D87E DC58; [E9 4D 83, 05, 05] + F94A; [E9 4D DB, 05, 05] F942; [E9 4D E9, 05, 05] 2F20; [E9 4E 05, 05, 09] +D87E DC51; [E9 4E 0B, 05, 05] + +D87E DC5A; [E9 4E 13, 05, 05] + +D87E DC5B; [E9 4E 1D, 05, 05] + 2F21; [E9 4E 33, 05, 09] +D87E DC5C; [E9 4E 3B, 05, 05] + 2F22; [E9 4E 43, 05, 09] 2F23; [E9 4E 59, 05, 09] +D87E DC5D; [E9 4E 63, 05, 05] + 32B0; [E9 4E 67, 05, 0D] +D87E DC5E; [E9 4E 73, 05, 05] + 2F24; [E9 4E 7D, 05, 09] 337D; [E9 4E 7D, 05, 39][E9 73 89, 05, 39] @@ -13826,10 +14123,29 @@ F90C; [E9 4E BF, 05, 05] F909; [E9 4E D1, 05, 05] +D87E DC5F; [E9 4E F3, 05, 05] + F981; [E9 4F 19, 05, 05] 2F25; [E9 4F 19, 05, 09] 329B; [E9 4F 19, 05, 0D] +D87E DC65; [E9 4F E3, 05, 05] + +D87E DC62; [E9 50 0F, 05, 05] + +D87E DC63; [E9 50 6D, 05, 05] + +D87E DC64; [E9 50 85, 05, 05] + +D87E DC66; [E9 51 07, 05, 05] + +D87E DD86; [E9 51 A5, 05, 05] + +D87E DC69; [E9 52 4F, 05, 05] + +D87E DC6A; [E9 52 BB, 05, 05] +D87E DC6B; [E9 52 BB, 05, 05] + 2F26; [E9 52 DF, 05, 09] 32AB; [E9 53 0F, 05, 0D] @@ -13840,18 +14156,30 @@ FA04; [E9 53 4D, 05, 05] 32AA; [E9 53 71, 05, 0D] +D87E DC6D; [E9 53 C9, 05, 05] + +D87E DC6E; [E9 53 F3, 05, 05] + +D87E DC6F; [E9 54 15, 05, 05] F95F; [E9 54 15, 05, 05] F9AA; [E9 54 15, 05, 05] F9BC; [E9 54 23, 05, 05] +D87E DC70; [E9 54 2D, 05, 05] + 2F28; [E9 54 37, 05, 09] +D87E DC72; [E9 54 45, 05, 05] + +D87E DC73; [E9 54 53, 05, 05] + 2F29; [E9 54 65, 05, 09] 2E8C; [E9 54 65, DF D9, 09] 2E8D; [E9 54 65, DF E9, 09] 2E90; [E9 54 8B, 05, 05] +D87E DC75; [E9 54 8B, 05, 05] 2F2A; [E9 54 8B, 05, 09] 2E8E; [E9 54 8B, DF D9, 09] @@ -13862,22 +14190,43 @@ F9BC; [E9 54 23, 05, 05] F9BD; [E9 54 C5, 05, 05] +D87E DC77; [E9 55 0B, 05, 05] + F94B; [E9 55 0F, 05, 05] F9DF; [E9 55 15, 05, 05] +D87E DC78; [E9 55 27, 05, 05] 2F2C; [E9 55 27, 05, 09] 2F2D; [E9 55 2D, 05, 09] +D87E DC7A; [E9 55 65, 05, 05] + +D87E DC79; [E9 55 CB, 05, 05] + F9D5; [E9 56 81, 05, 05] +D87E DC7C; [E9 56 D5, 05, 05] + F921; [E9 56 EF, 05, 05] +D87E DC7F; [E9 57 29, 05, 05] + +D87E DC7E; [E9 57 2F, 05, 05] + +D87E DC80; [E9 57 4B, 05, 05] + +D87E DDF4; [E9 57 B7, 05, 05] + F9AB; [E9 57 C7, 05, 05] 2F2E; [E9 58 0D, 05, 09] +D87E DC81; [E9 58 19, 05, 05] + +D87E DC82; [E9 58 1B, 05, 05] + 2F2F; [E9 58 21, 05, 09] 32A7; [E9 58 23, 05, 0D] @@ -13886,8 +14235,16 @@ F9AB; [E9 57 C7, 05, 05] 2E92; [E9 58 3D, 05, 05] +D87E DC84; [E9 58 51, 05, 05] + 2F31; [E9 58 53, 05, 09] +D87E DC85; [E9 58 A7, 05, 05] + +D87E DC86; [E9 58 D1, 05, 05] + +D87E DC87; [E9 59 2D, 05, 05] + 2F32; [E9 59 3F, 05, 09] 337B; [E9 59 41, 05, 39][E9 60 97, 05, 39] @@ -13901,8 +14258,15 @@ F98E; [E9 59 43, 05, 05] FA01; [E9 59 A7, 05, 05] +D87E DC8B; [E9 59 BB, 05, 05] + +D87E DC8C; [E9 59 C1, 05, 05] + +D87E DC8D; [E9 59 C7, 05, 05] + F9A2; [E9 59 ED, 05, 05] +D87E DC8E; [E9 59 EF, 05, 05] F928; [E9 59 EF, 05, 05] FA0B; [E9 5A 05, 05, 05] @@ -13911,6 +14275,7 @@ F982; [E9 5A 37, 05, 05] 2F35; [E9 5A 47, 05, 09] +D87E DC90; [E9 5A 5B, 05, 05] 2F36; [E9 5A 5B, 05, 09] F943; [E9 5A 67, 05, 05] @@ -13919,6 +14284,11 @@ F943; [E9 5A 67, 05, 05] 2F38; [E9 5A 85, 05, 09] +D87E DC94; [E9 5A A3, 05, 05] +D87E DC95; [E9 5A A3, 05, 05] + +D87E DC74; [E9 5A C5, 05, 05] + 2F39; [E9 5B 03, 05, 09] 2E95; [E9 5B 03, DF D9, 09] @@ -13926,10 +14296,16 @@ F943; [E9 5A 67, 05, 05] 2F3A; [E9 5B 25, 05, 09] +D87E DC99; [E9 5B 27, 05, 05] + +D87E DC9A; [E9 5B 39, 05, 05] + 2F3B; [E9 5B 49, 05, 09] F9D8; [E9 5B 79, 05, 05] +D87E DC9C; [E9 5B 97, 05, 05] + F966; [E9 5B B5, 05, 05] 2F3C; [E9 5B E9, 05, 09] @@ -13937,24 +14313,62 @@ F966; [E9 5B B5, 05, 05] 2E96; [E9 5B EB, 05, 05] +D87E DC9D; [E9 5B FD, 05, 05] + +D87E DC9E; [E9 5C 15, 05, 05] + F9A3; [E9 5C 51, 05, 05] +D87E DC9F; [E9 5C 59, 05, 05] + F960; [E9 5C 8B, 05, 05] F9AC; [E9 5C 9F, 05, 05] +D87E DCA0; [E9 5D 6D, 05, 05] + +D87E DCA3; [E9 5D 93, 05, 05] + +D87E DCA5; [E9 5D F9, 05, 05] + F9B9; [E9 5E 31, 05, 05] F9D9; [E9 5E F7, 05, 05] +D87E DCA6; [E9 5F 03, 05, 05] + +D87E DCA7; [E9 5F 0B, 05, 05] +D87E DCA9; [E9 5F 0B, 05, 05] + +D87E DCA8; [E9 5F 0F, 05, 05] + +D87E DCAA; [E9 5F 67, 05, 05] + +D87E DCAB; [E9 5F 8F, 05, 05] + F98F; [E9 5F 93, 05, 05] +D87E DCAD; [E9 5F BB, 05, 05] + +D87E DCAE; [E9 5F D1, 05, 05] + +D87E DCAC; [E9 5F D7, 05, 05] + +D87E DCAF; [E9 60 33, 05, 05] + +D87E DCB0; [E9 60 5B, 05, 05] + +D87E DCB1; [E9 60 63, 05, 05] F90D; [E9 60 63, 05, 05] F990; [E9 60 77, 05, 05] 2F3D; [E9 60 87, 05, 09] +D87E DCB2; [E9 60 97, 05, 05] + +D87E DCB3; [E9 60 AD, 05, 05] + F9D2; [E9 60 D3, 05, 05] 2F3E; [E9 60 E3, 05, 09] @@ -13963,20 +14377,52 @@ F9D2; [E9 60 D3, 05, 05] 2E98; [E9 61 13, 05, 05] +D87E DCB4; [E9 61 35, 05, 05] + +D87E DCB5; [E9 61 DD, 05, 05] + F925; [E9 62 11, 05, 05] F95B; [E9 62 1D, 05, 05] FA02; [E9 62 25, 05, 05] +D87E DCB6; [E9 62 27, 05, 05] + +D87E DCBA; [E9 62 77, 05, 05] + F973; [E9 62 7B, 05, 05] +D87E DCB9; [E9 62 F9, 05, 05] + +D87E DCB7; [E9 63 23, 05, 05] + +D87E DCBB; [E9 63 53, 05, 05] + F9A4; [E9 63 79, 05, 05] +D87E DCBC; [E9 63 89, 05, 05] + F975; [E9 63 C3, 05, 05] +D87E DCC1; [E9 63 D5, 05, 05] + +D87E DCC0; [E9 64 11, 05, 05] + +D87E DCBD; [E9 64 4F, 05, 05] + +D87E DCBF; [E9 64 CB, 05, 05] + +D87E DCC3; [E9 65 5D, 05, 05] + +D87E DCC6; [E9 65 79, 05, 05] + +D87E DCC4; [E9 65 87, 05, 05] + F991; [E9 65 BF, 05, 05] +D87E DCC5; [E9 65 C5, 05, 05] + F930; [E9 66 17, 05, 05] 2F40; [E9 66 ED, 05, 09] @@ -13985,6 +14431,10 @@ F930; [E9 66 17, 05, 05] 2E99; [E9 66 F9, 05, 05] +D87E DCC8; [E9 67 31, 05, 05] + +D87E DCC9; [E9 67 6B, 05, 05] + F969; [E9 67 83, 05, 05] 2F42; [E9 67 A1, 05, 09] @@ -14003,6 +14453,8 @@ F983; [E9 68 21, 05, 05] 2E9B; [E9 68 59, 05, 05] +D87E DCCB; [E9 68 5D, 05, 05] + 2F47; [E9 68 61, 05, 09] 3290; [E9 68 61, 05, 0D] 2E9C; [E9 68 61, DF D9, 09] @@ -14013,10 +14465,16 @@ F9E0; [E9 68 BD, 05, 05] 337C; [E9 68 F1, 05, 39][E9 45 23, 05, 39] +D87E DCCD; [E9 69 2D, 05, 05] + FA12; [E9 69 83, 05, 05] F9C5; [E9 69 AB, 05, 05] +D87E DCCF; [E9 69 BD, 05, 05] + +D87E DCD5; [E9 69 D3, 05, 05] + FA06; [E9 6A 07, 05, 05] F98B; [E9 6A 2B, 05, 05] @@ -14025,62 +14483,110 @@ F98B; [E9 6A 2B, 05, 05] F901; [E9 6A 87, 05, 05] +D87E DCCC; [E9 6A 8F, 05, 05] + +D87E DCD4; [E9 6A 9F, 05, 05] + 2F49; [E9 6A AF, 05, 09] 328A; [E9 6A AF, 05, 0D] 2E9D; [E9 6A AF, DF D9, 09] 3292; [E9 6A B1, 05, 0D] +D87E DCD8; [E9 6A CD, 05, 05] F929; [E9 6A CD, 05, 05] +D87E DCD9; [E9 6A D5, 05, 05] + +D87E DCDA; [E9 6A E1, 05, 05] + 2F4A; [E9 6A EF, 05, 09] 328D; [E9 6A EF, 05, 0D] F9E1; [E9 6B 3F, 05, 05] +D87E DCDC; [E9 6B 49, 05, 05] + +D87E DCDB; [E9 6B 5F, 05, 05] + F9C8; [E9 6B 99, 05, 05] +D87E DCE0; [E9 6B AD, 05, 05] + F9F4; [E9 6B D1, 05, 05] F9C9; [E9 6C 8D, 05, 05] +D87E DCDF; [E9 6C 9B, 05, 05] + F9DA; [E9 6C D5, 05, 05] +D87E DCE5; [E9 6C E5, 05, 05] + 3291; [E9 6C FB, 05, 0D] 337F; [E9 6C FB, 05, 39][E9 5A 7D, 05, 39][E9 3A 13, 05, 39][E9 8F AF, 05, 39] +D87E DCE1; [E9 6D 4F, 05, 05] + F97A; [E9 6D AD, 05, 05] +D87E DCE2; [E9 6D B5, 05, 05] + +D87E DCE4; [E9 6D C7, 05, 05] + F9E2; [E9 6D FB, 05, 05] +D87E DCE6; [E9 6E D7, 05, 05] + +D87E DCE8; [E9 6F 37, 05, 05] + +D87E DCE9; [E9 6F F9, 05, 05] + +D87E DCEA; [E9 70 8B, 05, 05] + F914; [E9 70 BB, 05, 05] F95C; [E9 70 BB, 05, 05] F9BF; [E9 70 BB, 05, 05] F94C; [E9 70 DD, 05, 05] +D87E DCEB; [E9 72 0F, 05, 05] + F931; [E9 72 65, 05, 05] +D87E DCED; [E9 72 75, 05, 05] + F91D; [E9 72 C7, 05, 05] 2F4B; [E9 73 03, 05, 09] +D87E DCEF; [E9 73 05, 05, 05] + +D87E DCF1; [E9 73 6B, 05, 05] + 2F4C; [E9 73 87, 05, 09] 32A3; [E9 73 89, 05, 0D] +D87E DCF3; [E9 73 A7, 05, 05] + F98C; [E9 73 B1, 05, 05] 2F4D; [E9 73 B5, 05, 09] 2E9E; [E9 73 B7, DF D9, 09] +D87E DCF4; [E9 74 05, 05, 05] + F9A5; [E9 74 23, 05, 05] 2F4E; [E9 74 2D, 05, 09] +D87E DCF5; [E9 74 3B, 05, 05] F970; [E9 74 3B, 05, 05] +D87E DCF6; [E9 74 3D, 05, 05] + 2F4F; [E9 74 5D, 05, 09] 2E9F; [E9 74 61, 05, 09] @@ -14102,55 +14608,112 @@ F970; [E9 74 3B, 05, 05] 2EA2; [E9 75 3F, 05, 05] +D87E DCFA; [E9 75 67, 05, 05] + +D87E DCFE; [E9 75 99, 05, 05] + F972; [E9 75 DB, 05, 05] +D87E DCFC; [E9 76 4D, 05, 05] + F968; [E9 76 67, 05, 05] +D87E DCFD; [E9 76 69, 05, 05] + F9E3; [E9 76 99, 05, 05] 329F; [E9 76 9F, 05, 0D] +D87E DCFF; [E9 76 FB, 05, 05] + F915; [E9 77 09, 05, 05] FA05; [E9 77 0F, 05, 05] +D87E DD07; [E9 77 3B, 05, 05] + +D87E DD00; [E9 77 4F, 05, 05] + +D87E DD02; [E9 77 55, 05, 05] F9CA; [E9 77 55, 05, 05] +D87E DD03; [E9 77 A5, 05, 05] + F92A; [E9 77 A7, 05, 05] +D87E DD01; [E9 77 C1, 05, 05] + +D87E DD04; [E9 77 C3, 05, 05] + +D87E DD05; [E9 77 DD, 05, 05] + F9F5; [E9 78 6D, 05, 05] F94D; [E9 78 8B, 05, 05] F9D6; [E9 78 AB, 05, 05] +D87E DD0E; [E9 78 C9, 05, 05] + +D87E DD08; [E9 79 39, 05, 05] + +D87E DD09; [E9 79 B7, 05, 05] + F9CB; [E9 7A 17, 05, 05] F9EC; [E9 7A 53, 05, 05] +D87E DD0C; [E9 7A 6D, 05, 05] + +D87E DD0B; [E9 7A 75, 05, 05] + F904; [E9 7A 81, 05, 05] F94E; [E9 7A FD, 05, 05] F992; [E9 7B 29, 05, 05] +D87E DD0F; [E9 7B BF, 05, 05] + +D87E DD12; [E9 7C 73, 05, 05] + F922; [E9 7C BD, 05, 05] F984; [E9 7C E3, 05, 05] +D87E DD15; [E9 7D 21, 05, 05] + +D87E DD14; [E9 7D 27, 05, 05] + +D87E DD13; [E9 7D 5D, 05, 05] + +D87E DD17; [E9 7D 7F, 05, 05] + 2F55; [E9 7D C1, 05, 09] 328B; [E9 7D C1, 05, 0D] 2EA3; [E9 7D C3, 05, 05] +D87E DC35; [E9 7D CB, 05, 05] + +D87E DD19; [E9 7D D9, 05, 05] + +D87E DD18; [E9 7D E5, 05, 05] + F9FB; [E9 7E 21, 05, 05] +D87E DD1A; [E9 7E 49, 05, 05] + F99F; [E9 7E 7F, 05, 05] F916; [E9 7E A1, 05, 05] +D87E DD1C; [E9 7F 7D, 05, 05] + F993; [E9 7F 85, 05, 05] +D87E DD1E; [E9 80 2F, 05, 05] + F9C0; [E9 80 93, 05, 05] F9EE; [E9 80 97, 05, 05] @@ -14159,11 +14722,15 @@ F932; [E9 81 1B, 05, 05] F91E; [E9 81 31, 05, 05] +D87E DD20; [E9 81 4B, 05, 05] + 2F56; [E9 81 4F, 05, 09] 2EA4; [E9 81 51, 05, 05] 2EA5; [E9 81 51, DF D9, 09] +D87E DD21; [E9 81 65, 05, 05] + 2F57; [E9 81 67, 05, 09] 2F58; [E9 81 71, 05, 09] @@ -14172,6 +14739,8 @@ F91E; [E9 81 31, 05, 05] 2F5A; [E9 81 89, 05, 09] +D87E DD22; [E9 81 9B, 05, 05] + 2F5B; [E9 81 AD, 05, 09] 2F5C; [E9 81 B1, 05, 09] @@ -14181,6 +14750,10 @@ F946; [E9 81 BF, 05, 05] 3295; [E9 81 ED, 05, 0D] +D87E DD24; [E9 81 FB, 05, 05] + +D87E DD25; [E9 82 29, 05, 05] + 2F5D; [E9 82 57, 05, 09] 2EA8; [E9 82 59, 05, 05] @@ -14193,6 +14766,8 @@ FA16; [E9 83 57, 05, 05] F9A7; [E9 83 ED, 05, 05] +D87E DD28; [E9 83 F7, 05, 05] + 2F5E; [E9 84 0F, 05, 09] F961; [E9 84 15, 05, 05] @@ -14200,8 +14775,11 @@ F9DB; [E9 84 15, 05, 05] 2F5F; [E9 84 19, 05, 09] +D87E DD29; [E9 84 1D, 05, 05] 2EA9; [E9 84 1D, DF D9, 09] +D87E DD2B; [E9 84 51, 05, 05] + F9AD; [E9 84 6B, 05, 05] F917; [E9 84 C3, 05, 05] @@ -14210,12 +14788,22 @@ F9E4; [E9 85 17, 05, 05] F9CC; [E9 85 1D, 05, 05] +D87E DD2E; [E9 85 99, 05, 05] + +D87E DD2F; [E9 85 C3, 05, 05] + F9AE; [E9 85 DD, 05, 05] +D87E DD30; [E9 85 ED, 05, 05] + +D87E DD31; [E9 86 19, 05, 05] + F994; [E9 86 21, 05, 05] F9EF; [E9 86 3F, 05, 05] +D87E DD32; [E9 86 A3, 05, 05] + 2F60; [E9 86 C7, 05, 09] 2F61; [E9 86 DB, 05, 09] @@ -14224,6 +14812,8 @@ F9EF; [E9 86 3F, 05, 05] 2F63; [E9 87 51, 05, 09] +D87E DD34; [E9 87 5B, 05, 05] + 2F64; [E9 87 63, 05, 09] 2F65; [E9 87 73, 05, 09] @@ -14232,10 +14822,13 @@ F9EF; [E9 86 3F, 05, 05] 329A; [E9 87 81, 05, 0D] +D87E DD36; [E9 87 8F, 05, 05] + F9CD; [E9 87 C5, 05, 05] F976; [E9 87 DD, 05, 05] +D87E DD38; [E9 87 F3, 05, 05] F962; [E9 87 F3, 05, 05] 2F66; [E9 88 2D, 05, 09] @@ -14245,6 +14838,8 @@ F962; [E9 87 F3, 05, 05] F9E5; [E9 88 DB, 05, 05] +D87E DD3A; [E9 89 3B, 05, 05] + F9C1; [E9 89 9F, 05, 05] F90E; [E9 89 ED, 05, 05] @@ -14266,20 +14861,36 @@ F933; [E9 8A ED, 05, 05] 2F6C; [E9 8A FB, 05, 09] 2EAB; [E9 8A FB, DF D9, 09] +D87E DD40; [E9 8B 0B, 05, 05] + F96D; [E9 8B 25, 05, 05] +D87E DD45; [E9 8B 5F, 05, 05] + +D87E DD46; [E9 8B 61, 05, 05] +D87E DD47; [E9 8B 61, 05, 05] + +D87E DD48; [E9 8B B7, 05, 05] + +D87E DD4A; [E9 8C 3D, 05, 05] + 2F6D; [E9 8C DD, 05, 09] 2F6E; [E9 8C EB, 05, 09] 2F6F; [E9 8D 11, 05, 09] +D87E DD4E; [E9 8D C7, 05, 05] + F9CE; [E9 8E 05, 05, 05] +D87E DD4F; [E9 8E 47, 05, 05] F93B; [E9 8E 47, 05, 05] F947; [E9 8E C3, 05, 05] +D87E DD50; [E9 8E C7, 05, 05] + F964; [E9 8F 29, 05, 05] F985; [E9 8F 87, 05, 05] @@ -14293,6 +14904,8 @@ FA18; [E9 8F AB, 05, 05] 3293; [E9 8F AF, 05, 0D] +D87E DD53; [E9 8F DF, 05, 05] + 3297; [E9 8F ED, 05, 0D] FA19; [E9 8F EF, 05, 05] @@ -14301,6 +14914,7 @@ FA1A; [E9 8F FD, 05, 05] F93C; [E9 90 35, 05, 05] +D87E DD56; [E9 90 55, 05, 05] FA1B; [E9 90 55, 05, 05] F9B6; [E9 90 93, 05, 05] @@ -14313,10 +14927,20 @@ F995; [E9 90 CB, 05, 05] 3299; [E9 90 E7, 05, 0D] +D87E DD57; [E9 91 11, 05, 05] + F956; [E9 91 73, 05, 05] +D87E DD59; [E9 91 BB, 05, 05] + +D87E DD5A; [E9 91 CF, 05, 05] + +D87E DD5B; [E9 91 D9, 05, 05] + 2F73; [E9 92 27, 05, 09] +D87E DD5F; [E9 92 9B, 05, 05] + F9F7; [E9 92 D5, 05, 05] 2F74; [E9 92 D5, 05, 09] @@ -14325,6 +14949,10 @@ F9F7; [E9 92 D5, 05, 05] F9F8; [E9 93 83, 05, 05] +D87E DD62; [E9 94 D3, 05, 05] + +D87E DD63; [E9 94 D9, 05, 05] + F9A6; [E9 95 C7, 05, 05] F944; [E9 96 0F, 05, 05] @@ -14335,28 +14963,44 @@ F9F9; [E9 96 73, 05, 05] FA1D; [E9 96 CB, 05, 05] +D87E DD66; [E9 96 F3, 05, 05] + FA03; [E9 96 FB, 05, 05] +D87E DD69; [E9 97 19, 05, 05] + F97B; [E9 97 21, 05, 05] +D87E DD68; [E9 97 23, 05, 05] + 2F77; [E9 97 43, 05, 09] 2EAF; [E9 97 45, 05, 05] +D87E DD6A; [E9 97 53, 05, 05] + F9CF; [E9 97 73, 05, 05] F96A; [E9 97 97, 05, 05] F94F; [E9 97 B1, 05, 05] +D87E DD6C; [E9 98 1D, 05, 05] + F93D; [E9 98 97, 05, 05] F957; [E9 98 D3, 05, 05] +D87E DD6E; [E9 98 E5, 05, 05] + F996; [E9 99 43, 05, 05] +D87E DD6F; [E9 99 5F, 05, 05] + F950; [E9 99 C9, 05, 05] +D87E DD70; [E9 99 E5, 05, 05] + 2EB0; [E9 9A 9D, 05, 05] 2F78; [E9 9B CF, 05, 09] @@ -14372,6 +15016,8 @@ F950; [E9 99 C9, 05, 05] F9E6; [E9 9C 59, 05, 05] +D87E DD76; [E9 9C 5B, 05, 05] + F90F; [E9 9C 71, 05, 05] 2F7A; [E9 9C 7B, 05, 09] @@ -14380,16 +15026,22 @@ F90F; [E9 9C 71, 05, 05] 2EB8; [E9 9C 7D, 05, 05] +D87E DD78; [E9 9C 91, 05, 05] + F9AF; [E9 9C 9B, 05, 05] FA1E; [E9 9C E1, 05, 05] 2F7B; [E9 9C E1, 05, 09] +D87E DD79; [E9 9D 5F, 05, 05] + F934; [E9 9D 6D, 05, 05] 2F7C; [E9 9D 6D, 05, 09] 2EB9; [E9 9D 6F, 05, 05] +D87E DD7A; [E9 9D 75, 05, 05] + 2F7D; [E9 9D 83, 05, 09] 2F7E; [E9 9D 8F, 05, 09] @@ -14398,8 +15050,12 @@ F934; [E9 9D 6D, 05, 05] F9B0; [E9 9D F7, 05, 05] +D87E DD7D; [E9 9E 2F, 05, 05] + F997; [E9 9E 4D, 05, 05] +D87E DD7F; [E9 9E 4F, 05, 05] + F945; [E9 9E 6B, 05, 05] 2F80; [E9 9E 6D, 05, 09] @@ -14412,6 +15068,14 @@ F945; [E9 9E 6B, 05, 05] F953; [E9 9E 85, 05, 05] +D87E DCD6; [E9 9E C9, 05, 05] + +D87E DD82; [E9 9E D3, 05, 05] + +D87E DD83; [E9 9F 79, 05, 05] + +D87E DD85; [E9 9F EF, 05, 05] + F926; [E9 A1 2B, 05, 05] 2F82; [E9 A1 41, 05, 09] @@ -14425,6 +15089,11 @@ F9F6; [E9 A1 4B, 05, 05] 2F85; [E9 A1 73, 05, 09] 2EBD; [E9 A1 73, DF D9, 09] +D87E DC93; [E9 A1 7D, 05, 05] +D87E DD8B; [E9 A1 7D, 05, 05] + +D87E DD8C; [E9 A1 83, 05, 05] + 2F86; [E9 A1 93, 05, 09] 2F87; [E9 A1 B1, 05, 09] @@ -14443,22 +15112,67 @@ F97C; [E9 A2 5D, 05, 05] 2EBF; [E9 A2 71, DF D9, 09] 2EC0; [E9 A2 71, DF E9, 09] +D87E DD90; [E9 A2 95, 05, 05] + +D87E DD8F; [E9 A2 A1, 05, 05] + +D87E DD91; [E9 A2 B9, 05, 05] + +D87E DD93; [E9 A2 E1, 05, 05] + +D87E DD94; [E9 A2 E5, 05, 05] + +D87E DD95; [E9 A2 F9, 05, 05] + +D87E DD98; [E9 A3 4D, 05, 05] F974; [E9 A3 4D, 05, 05] +D87E DD96; [E9 A3 4F, 05, 05] + +D87E DD99; [E9 A3 BD, 05, 05] + +D87E DD9C; [E9 A3 C9, 05, 05] + F9FE; [E9 A3 EF, 05, 05] +D87E DDA0; [E9 A4 2D, 05, 05] + +D87E DD9A; [E9 A4 4D, 05, 05] + +D87E DD9B; [E9 A4 E1, 05, 05] + +D87E DD9D; [E9 A5 05, 05, 05] + F93E; [E9 A5 1D, 05, 05] +D87E DDA1; [E9 A5 1F, 05, 05] + +D87E DDA2; [E9 A5 23, 05, 05] + +D87E DDA3; [E9 A5 43, 05, 05] + +D87E DD9E; [E9 A5 59, 05, 05] + F958; [E9 A5 6D, 05, 05] F918; [E9 A6 09, 05, 05] F96E; [E9 A6 21, 05, 05] +D87E DD9F; [E9 A6 3D, 05, 05] + F999; [E9 A7 6F, 05, 05] +D87E DDA8; [E9 A7 75, 05, 05] + +D87E DDA9; [E9 A7 79, 05, 05] + F9C2; [E9 A7 8B, 05, 05] +D87E DDAA; [E9 A7 BF, 05, 05] + +D87E DDAC; [E9 A8 5F, 05, 05] + F923; [E9 A9 35, 05, 05] F9F0; [E9 A9 8F, 05, 05] @@ -14475,12 +15189,39 @@ F910; [E9 AA 1D, 05, 05] 2EC1; [E9 AA 3B, 05, 05] +D87E DDB3; [E9 AA 3F, 05, 05] + +D87E DDB4; [E9 AA 57, 05, 05] F936; [E9 AA 57, 05, 05] +D87E DDB5; [E9 AA 6D, 05, 05] + +D87E DDB6; [E9 AA 71, 05, 05] + 2F8D; [E9 AA 75, 05, 09] +D87E DDB8; [E9 AA AF, 05, 05] + +D87E DDB7; [E9 AA F1, 05, 05] + +D87E DDBA; [E9 AB 67, 05, 05] + +D87E DDB9; [E9 AB BF, 05, 05] + +D87E DDBC; [E9 AB F3, 05, 05] + +D87E DDBD; [E9 AC 7D, 05, 05] + +D87E DDBB; [E9 AC 99, 05, 05] + +D87E DDBE; [E9 AC B3, 05, 05] + F911; [E9 AD 1F, 05, 05] +D87E DDC0; [E9 AD 6D, 05, 05] + +D87E DDC1; [E9 AD AD, 05, 05] + F927; [E9 AD E9, 05, 05] 2F8E; [E9 AE 2F, 05, 09] @@ -14488,6 +15229,9 @@ F927; [E9 AD E9, 05, 05] FA08; [E9 AE 47, 05, 05] 2F8F; [E9 AE 47, 05, 09] +D87E DDC3; [E9 AE 6F, 05, 05] + +D87E DDC4; [E9 AE 75, 05, 05] 2F90; [E9 AE 75, 05, 09] 2EC2; [E9 AE 77, 05, 05] @@ -14496,10 +15240,16 @@ F9A0; [E9 AF 37, 05, 05] F9E7; [E9 AF 51, 05, 05] +D87E DDC6; [E9 AF 61, 05, 05] + +D87E DDC7; [E9 AF 6F, 05, 05] + F9E8; [E9 AF 75, 05, 05] F912; [E9 AF A3, 05, 05] +D87E DDC9; [E9 AF A7, 05, 05] + F924; [E9 B0 7F, 05, 05] 2F91; [E9 B0 B3, 05, 09] @@ -14519,6 +15269,8 @@ FA0A; [E9 B0 CD, 05, 05] 2F94; [E9 B1 BB, 05, 09] +D87E DDCF; [E9 B3 03, 05, 05] + F96F; [E9 B3 17, 05, 05] F9A1; [E9 B3 17, 05, 05] @@ -14526,6 +15278,8 @@ F97D; [E9 B3 67, 05, 05] F941; [E9 B3 6F, 05, 05] +D87E DDD0; [E9 B3 9D, 05, 05] + FA22; [E9 B3 B3, 05, 05] F95D; [E9 B3 BF, 05, 05] @@ -14534,6 +15288,8 @@ F9FC; [E9 B4 77, 05, 05] F95A; [E9 B4 C7, 05, 05] +D87E DDD1; [E9 B4 DB, 05, 05] + 2EC8; [E9 B5 0B, 05, 05] 2F95; [E9 B6 3D, 05, 09] @@ -14542,6 +15298,7 @@ F95A; [E9 B4 C7, 05, 05] F900; [E9 B6 5F, 05, 05] +D87E DDD2; [E9 B6 79, 05, 05] 2F97; [E9 B6 79, 05, 09] 2F98; [E9 B6 BF, 05, 09] @@ -14550,32 +15307,50 @@ F900; [E9 B6 5F, 05, 05] 3296; [E9 B7 15, 05, 0D] +D87E DDD4; [E9 B7 29, 05, 05] + +D87E DDD5; [E9 B7 55, 05, 05] + F948; [E9 B7 57, 05, 05] 32AE; [E9 B7 61, 05, 0D] F903; [E9 B7 63, 05, 05] +D87E DDD6; [E9 B8 0D, 05, 05] + 2EC9; [E9 B8 11, 05, 05] 2F9A; [E9 B8 9F, 05, 09] 2F9B; [E9 B8 B7, 05, 09] +D87E DDD7; [E9 B8 C5, 05, 05] + 2F9C; [E9 B9 41, 05, 09] 2ECA; [E9 B9 41, DF D9, 09] +D87E DDDB; [E9 B9 53, 05, 05] + +D87E DDDA; [E9 B9 71, 05, 05] + F937; [E9 B9 B9, 05, 05] +D87E DDDC; [E9 B9 BB, 05, 05] + 2F9D; [E9 BB 39, 05, 09] F902; [E9 BB 77, 05, 05] 2F9E; [E9 BB 77, 05, 09] +D87E DDDE; [E9 BB 8B, 05, 05] + F998; [E9 BC 33, 05, 05] F9D7; [E9 BC 3B, 05, 05] +D87E DDDF; [E9 BC 57, 05, 05] + FA07; [E9 BC 5D, 05, 05] F98D; [E9 BC AB, 05, 05] @@ -14584,6 +15359,8 @@ F98D; [E9 BC AB, 05, 05] 2F9F; [E9 BD 21, 05, 09] +D87E DD8D; [E9 BD 27, 05, 05] + F971; [E9 BD 4B, 05, 05] 2FA0; [E9 BD 4B, 05, 09] @@ -14606,10 +15383,18 @@ F913; [E9 BF 11, 05, 05] 2FA2; [E9 BF 15, 05, 09] 2ECF; [E9 BF 15, DF D9, 09] +D87E DDE2; [E9 BF 1B, 05, 05] + F92C; [E9 BF 8F, 05, 05] +D87E DDE3; [E9 BF D5, 05, 05] + FA26; [E9 BF ED, 05, 05] +D87E DDE4; [E9 C0 19, 05, 05] + +D87E DDE6; [E9 C0 2D, 05, 05] + 2FA3; [E9 C0 89, 05, 09] F919; [E9 C0 CB, 05, 05] @@ -14629,10 +15414,22 @@ F90A; [E9 C1 9D, 05, 05] F9B1; [E9 C2 67, 05, 05] +D87E DDE7; [E9 C2 6F, 05, 05] + +D87E DDEA; [E9 C2 F7, 05, 05] + +D87E DDE8; [E9 C3 B1, 05, 05] + +D87E DDE9; [E9 C3 B3, 05, 05] + F93F; [E9 C4 0F, 05, 05] F99B; [E9 C4 9B, 05, 05] +D87E DDEB; [E9 C5 FD, 05, 05] + +D87E DDEC; [E9 C6 39, 05, 05] + 2ED0; [E9 C7 1D, 05, 05] 2ED1; [E9 C9 09, 05, 05] @@ -14644,8 +15441,12 @@ F99B; [E9 C4 9B, 05, 05] 2FA8; [E9 C9 1B, 05, 09] +D87E DDEE; [E9 C9 31, 05, 05] + F986; [E9 C9 75, 05, 05] +D87E DDF0; [E9 C9 89, 05, 05] + 2ED4; [E9 C9 EB, 05, 05] 2FA9; [E9 CA 57, 05, 09] @@ -14671,6 +15472,8 @@ F9B8; [E9 CB 93, 05, 05] 2FAB; [E9 CB 95, 05, 09] +D87E DDF3; [E9 CB A9, 05, 05] + F9EA; [E9 CB E7, 05, 05] 2FAC; [E9 CB F3, 05, 09] @@ -14682,6 +15485,8 @@ F949; [E9 CC 15, 05, 05] F951; [E9 CC 1D, 05, 05] +D87E DDF5; [E9 CC 6D, 05, 05] + F938; [E9 CC 8B, 05, 05] F9B3; [E9 CC B7, 05, 05] @@ -14700,6 +15505,8 @@ FA1C; [E9 CC D3, 05, 05] 2FB1; [E9 CD C1, 05, 09] +D87E DDFA; [E9 CD EB, 05, 05] + 2ED9; [E9 CD F7, 05, 05] 2FB2; [E9 CE 09, 05, 09] @@ -14710,8 +15517,13 @@ FA1C; [E9 CC D3, 05, 05] 32A0; [E9 CE 39, 05, 0D] +D87E DDFE; [E9 CE 45, 05, 05] +D87E DDFF; [E9 CE 45, 05, 05] + F9B4; [E9 CE 5F, 05, 05] +D87E DE00; [E9 CE 81, 05, 05] + F9D0; [E9 CE EB, 05, 05] 2EDA; [E9 CF 1D, 05, 05] @@ -14730,12 +15542,16 @@ F9D0; [E9 CE EB, 05, 05] 2EDF; [E9 CF F3, 05, 05] 2EDE; [E9 CF F3, DF D9, 09] +D87E DE02; [E9 CF F7, 05, 05] + FA2A; [E9 D0 15, 05, 05] FA2B; [E9 D0 2F, 05, 05] FA2C; [E9 D0 87, 05, 05] +D87E DE04; [E9 D0 89, 05, 05] + 2EE0; [E9 D0 FD, 05, 05] 2FB8; [E9 D1 67, 05, 09] @@ -14743,10 +15559,16 @@ FA2C; [E9 D0 87, 05, 05] 2FB9; [E9 D1 6D, 05, 09] +D87E DE05; [E9 D1 89, 05, 05] + 2FBA; [E9 D1 93, 05, 09] +D87E DE06; [E9 D1 BF, 05, 05] + F91A; [E9 D2 21, 05, 05] +D87E DE07; [E9 D2 3B, 05, 05] + F987; [E9 D3 17, 05, 05] 2EE2; [E9 D3 1B, 05, 05] @@ -14758,6 +15580,8 @@ F987; [E9 D3 17, 05, 05] 2FBD; [E9 D4 05, 05, 09] +D87E DE0A; [E9 D4 6B, 05, 05] + 2FBE; [E9 D4 91, 05, 09] 2FBF; [E9 D4 A5, 05, 09] @@ -14771,12 +15595,18 @@ F987; [E9 D3 17, 05, 05] F939; [E9 D5 29, 05, 05] +D87E DE0B; [E9 D6 CF, 05, 05] + F9F2; [E9 D6 FD, 05, 05] 2EE5; [E9 D7 4B, 05, 05] 2FC3; [E9 D8 21, 05, 09] +D87E DE0C; [E9 D8 51, 05, 05] + +D87E DE0F; [E9 D9 29, 05, 05] + FA2D; [E9 D9 C3, 05, 05] F93A; [E9 DA 53, 05, 05] @@ -14799,6 +15629,7 @@ F9F3; [E9 DB A1, 05, 05] 2EE8; [E9 DB AF, 05, 05] +D87E DE15; [E9 DB D9, 05, 05] 2FC7; [E9 DB D9, 05, 09] 2FC8; [E9 DB E9, 05, 09] @@ -14811,18 +15642,27 @@ F989; [E9 DC 03, 05, 05] 2FCA; [E9 DC 09, 05, 09] +D87E DE17; [E9 DC 59, 05, 05] 2FCB; [E9 DC 59, 05, 09] 2FCC; [E9 DC 61, 05, 09] 2EEA; [E9 DC 63, 05, 05] +D87E DE18; [E9 DC 63, 05, 05] + +D87E DE19; [E9 DC 71, 05, 05] 2FCD; [E9 DC 83, 05, 09] +D87E DE1A; [E9 DC 85, 05, 05] + 2FCE; [E9 DC 8D, 05, 09] +D87E DE1B; [E9 DC 93, 05, 05] + 2FCF; [E9 DC A7, 05, 09] +D87E DE1C; [E9 DC DD, 05, 05] 2FD0; [E9 DC DD, 05, 09] 2FD1; [E9 DC FB, 05, 09] @@ -14874,3 +15714,124 @@ FA27; [EA 98 99, 05, 05] FA28; [EA 98 9B, 05, 05] FA29; [EA 98 9D, 05, 05] + +D834 DD5E; [EF 0C C8 11, 05, 05][EF 0C C8 D5, 05, 05] +D834 DD5F; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05] +D834 DD60; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DD61; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] +D834 DD62; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 81, 05, 05] +D834 DD63; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 8F, 05, 05] +D834 DD64; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 9D, 05, 05] +D834 DDBB; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05] +D834 DDBD; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DDBF; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] +D834 DDBC; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05] +D834 DDBE; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DDC0; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] + +D87E DC03; [EB 0F A0 B9, 05, 05] +D87E DC12; [EB 0F DC 9D, 05, 05] +D87E DD1B; [EB 0F DD 2D, 05, 05] +D87E DC16; [EB 0F DF 65, 05, 05] +D87E DC0D; [EB 0F ED 73, 05, 05] +D87E DDD9; [EB 10 0B 65, 05, 05] +D87E DDDD; [EB 10 18 3B, 05, 05] +D87E DC34; [EB 10 2B D5, 05, 05] +D87E DC38; [EB 10 3E 2D, 05, 05] +D87E DC68; [EB 10 B7 11, 05, 05] +D87E DC59; [EB 10 CD 49, 05, 05] +D87E DC60; [EB 10 E7 D5, 05, 05] +D87E DC61; [EB 10 EB B9, 05, 05] +D87E DC6C; [EB 11 19 E3, 05, 05] +D87E DC71; [EB 11 2D AB, 05, 05] +D87E DCF8; [EB 11 4B 11, 05, 05] +D87E DC7B; [EB 11 57 C7, 05, 05] +D87E DC7D; [EB 11 57 E3, 05, 05] +D87E DC89; [EB 11 8E 57, 05, 05] +D87E DD39; [EB 11 90 03, 05, 05] +D87E DC91; [EB 11 A7 9D, 05, 05] +D87E DC92; [EB 11 A7 9D, 05, 05] +D87E DCA4; [EB 11 DE 65, 05, 05] +D87E DCB8; [EB 12 20 E3, 05, 05] +D87E DCBE; [EB 12 2E 65, 05, 05] +D87E DCCA; [EB 12 6C 1F, 05, 05] +D87E DC97; [EB 12 94 73, 05, 05] +D87E DD80; [EB 12 9E 49, 05, 05] +D87E DD89; [EB 12 A1 57, 05, 05] +D87E DD8A; [EB 12 A1 D5, 05, 05] +D87E DCDD; [EB 12 A4 2D, 05, 05] +D87E DCE3; [EB 12 AE 2D, 05, 05] +D87E DCEC; [EB 12 CF 73, 05, 05] +D87E DCF0; [EB 12 ED C7, 05, 05] +D87E DCF7; [EB 13 0D 65, 05, 05] +D87E DCF9; [EB 13 13 C7, 05, 05] +D87E DCFB; [EB 13 2E 49, 05, 05] +D87E DD06; [EB 13 34 11, 05, 05] +D87E DD0D; [EB 13 4D 9D, 05, 05] +D87E DD10; [EB 13 55 E3, 05, 05] +D87E DD11; [EB 13 58 B9, 05, 05] +D87E DD1D; [EB 13 83 65, 05, 05] +D87E DD23; [EB 13 BA 49, 05, 05] +D87E DD26; [EB 13 CC 03, 05, 05] +D87E DD27; [EB 13 D9 1F, 05, 05] +D87E DD35; [EB 14 1A 57, 05, 05] +D87E DD37; [EB 14 1F B9, 05, 05] +D87E DD3B; [EB 14 4D C7, 05, 05] +D87E DD3C; [EB 14 4F 2D, 05, 05] +D87E DD3D; [EB 14 57 65, 05, 05] +D87E DD42; [EB 14 61 9D, 05, 05] +D87E DD41; [EB 14 61 AB, 05, 05] +D87E DD43; [EB 14 63 E3, 05, 05] +D87E DD44; [EB 14 65 73, 05, 05] +D87E DD4D; [EB 14 91 57, 05, 05] +D87E DD52; [EB 14 B0 03, 05, 05] +D87E DD54; [EB 14 B6 C7, 05, 05] +D87E DD55; [EB 14 B9 57, 05, 05] +D87E DD5C; [EB 14 E2 3B, 05, 05] +D87E DD5D; [EB 14 F3 C7, 05, 05] +D87E DD5E; [EB 14 F3 C7, 05, 05] +D87E DD61; [EB 15 06 1F, 05, 05] +D87E DD65; [EB 15 12 9D, 05, 05] +D87E DD6B; [EB 15 40 2D, 05, 05] +D87E DC98; [EB 15 63 3B, 05, 05] +D87E DD72; [EB 15 67 C7, 05, 05] +D87E DD73; [EB 15 69 9D, 05, 05] +D87E DD75; [EB 15 72 3B, 05, 05] +D87E DD77; [EB 15 78 2D, 05, 05] +D87E DD7B; [EB 15 90 65, 05, 05] +D87E DD7C; [EB 15 94 AB, 05, 05] +D87E DD7E; [EB 15 9C 81, 05, 05] +D87E DD87; [EB 15 BA 8F, 05, 05] +D87E DD88; [EB 15 BB 65, 05, 05] +D87E DD97; [EB 15 F0 81, 05, 05] +D87E DDA4; [EB 15 FF 3B, 05, 05] +D87E DDA6; [EB 16 0B 8F, 05, 05] +D87E DDA5; [EB 16 14 65, 05, 05] +D87E DDAD; [EB 16 2E C7, 05, 05] +D87E DDB0; [EB 16 36 9D, 05, 05] +D87E DDB1; [EB 16 47 9D, 05, 05] +D87E DDAB; [EB 16 74 57, 05, 05] +D87E DDC5; [EB 16 9B AB, 05, 05] +D87E DDCB; [EB 16 BE 03, 05, 05] +D87E DDCC; [EB 16 C8 C7, 05, 05] +D87E DDD3; [EB 16 F9 D5, 05, 05] +D87E DDD8; [EB 17 22 E3, 05, 05] + +D87E DDE0; [EB 17 86 D5, 05, 05] +D87E DDE1; [EB 17 88 73, 05, 05] +D87E DDE5; [EB 17 9B 57, 05, 05] +D87E DDED; [EB 17 E3 8F, 05, 05] +D87E DDF1; [EB 17 FA 03, 05, 05] +D87E DDF6; [EB 18 36 49, 05, 05] +D87E DC1C; [EB 18 3F 57, 05, 05] +D87E DDF7; [EB 18 42 C7, 05, 05] +D87E DDFB; [EB 18 60 03, 05, 05] +D87E DDFD; [EB 18 68 3B, 05, 05] +D87E DE01; [EB 18 79 2D, 05, 05] +D87E DE09; [EB 18 CB 9D, 05, 05] +D87E DE10; [EB 19 23 3B, 05, 05] +D87E DE12; [EB 19 26 73, 05, 05] +D87E DE13; [EB 19 36 11, 05, 05] +D87E DE14; [EB 19 3D B9, 05, 05] +D87E DC8F; [EB 19 4C D5, 05, 05] +D87E DE1D; [EB 19 71 73, 05, 05] diff --git a/icu4c/source/common/ucmpe32.c b/icu4c/source/common/ucmpe32.c index 3480e9f6c39..7e0806ced95 100644 --- a/icu4c/source/common/ucmpe32.c +++ b/icu4c/source/common/ucmpe32.c @@ -51,33 +51,94 @@ ucmpe32_open(int32_t defaultValue, int32_t surrogateValue, UErrorCode *status) uprv_memset(this_obj->stage1, 0, this_obj->stage1Top*sizeof(uint16_t)); /* allocate stage 2 of the trie and reset the first block */ - this_obj->stage2= (int32_t*)uprv_malloc(60000*sizeof(*(this_obj->stage2))); + this_obj->stage2= (int32_t*)uprv_malloc(INIT_UCMPE32_STAGE2_SIZE*sizeof(*(this_obj->stage2))); if(this_obj->stage2 == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; uprv_free(this_obj->stage1); uprv_free(this_obj); return NULL; } + this_obj->stage2Size = INIT_UCMPE32_STAGE2_SIZE; + this_obj->stage2DefaultTop = 0; this_obj->fDefaultValue = defaultValue; this_obj->fSurrogateValue = surrogateValue; - for(bla = this_obj->stage2; blastage2+_UCMPE32_STAGE_2_BLOCK_COUNT; bla++) { + for(bla = this_obj->stage2; blastage2+INIT_UCMPE32_STAGE2_SIZE; bla++) { + /*for(bla = this_obj->stage2; blastage2+_UCMPE32_STAGE_2_BLOCK_COUNT; bla++) {*/ *bla = this_obj->fDefaultValue; } this_obj->stage2Top = _UCMPE32_STAGE_2_BLOCK_COUNT; this_obj->fCompact = FALSE; this_obj->fBogus = FALSE; + this_obj->fInitPhase = TRUE; return this_obj; } +/* + * Set a range of UnicodeChars to the same value + */ +void +ucmpe32_setRange32(CompactEIntArray* this_obj, UChar32 start, UChar32 end, int32_t value) { + UChar32 code = 0; + uint32_t s1Start = start>>_UCMPE32_TRIE_SHIFT; + uint32_t s1End = end>>_UCMPE32_TRIE_SHIFT; + + int32_t *bla; + uint32_t i = 0; + + /* Allocate a block for repeat stuff */ + int32_t repeatBlock = 0; + + if (this_obj->fInitPhase == FALSE || this_obj->fCompact == TRUE || (start > end)) { + return; + } + + /* if there is stuff that doesn't fit */ + if((start & _UCMPE32_STAGE_2_MASK) != 0) { /* at the start */ + s1Start++; + for(code = start; code < (UChar32)(s1Start<<_UCMPE32_TRIE_SHIFT); code++) { + ucmpe32_set32(this_obj, code, value); + } + } + + repeatBlock = this_obj->stage2Top; + this_obj->stage2Top += _UCMPE32_STAGE_2_BLOCK_COUNT; + for(bla = this_obj->stage2+repeatBlock; blastage2+this_obj->stage2Top; bla++) { + *bla = value; + } + for(i = s1Start; i< s1End; i++) { + this_obj->stage1[i] = (uint16_t)(repeatBlock); + } + + if((end & _UCMPE32_STAGE_2_MASK) != 0) { /* at the end */ + for(code = (s1End<<_UCMPE32_TRIE_SHIFT); code <= end; code++) { + ucmpe32_set32(this_obj, code, value); + } + } else { + this_obj->stage1[s1End] = (uint16_t)(repeatBlock); + } + this_obj->stage2DefaultTop = this_obj->stage2Top; + this_obj->fInitPhase = TRUE; + +} /* * get or create a Norm unit; * get or create the intermediate trie entries for it as well */ /********* THIS IS THE ADD FUNCTION ********************/ +int32_t +ucmpe32_get32(CompactEIntArray* this_obj, UChar32 code) { + int16_t stage1 = (this_obj->stage1[(code >> _UCMPE32_TRIE_SHIFT)]); + int32_t offset = (code & _UCMPE32_STAGE_2_MASK); + int32_t result = this_obj->stage2[stage1 + offset]; + + return result; + +} + void ucmpe32_set32(CompactEIntArray* this_obj, UChar32 code, int32_t value) { @@ -87,18 +148,27 @@ ucmpe32_set32(CompactEIntArray* this_obj, UChar32 code, int32_t value) return; } + this_obj->fInitPhase = FALSE; + { uint32_t i; uint16_t j; i=code>>_UCMPE32_TRIE_SHIFT; j=this_obj->stage1[i]; - if(j==0) { + if(j<=this_obj->stage2DefaultTop) { /* allocate a stage 2 block */ - int32_t *p, *bla; + int32_t *p, *bla, value; + value = this_obj->stage2[j]; /* pick the value the empty block was filled with */ + if(this_obj->stage2Size < (this_obj->stage2Top + _UCMPE32_STAGE_2_BLOCK_COUNT)) { + this_obj->stage2 = (int32_t *)uprv_realloc(this_obj->stage2, 2*this_obj->stage2Size); + if(this_obj->stage2 == NULL) { + } + this_obj->stage2Size *= 2; + } p = this_obj->stage2+this_obj->stage2Top; for(bla = p; blafDefaultValue; + *bla = value; /* fill the newly allocated block with the default values for that block */ } this_obj->stage2Top += _UCMPE32_STAGE_2_BLOCK_COUNT; @@ -126,11 +196,10 @@ ucmpe32_setSurrogate(CompactEIntArray* this_obj, UChar lead, UChar trail, int32_ * Fold the supplementary code point data for one lead surrogate. */ static uint16_t -foldLeadSurrogate(uint16_t *parent, int32_t parentCount, - int32_t *stage, int32_t *pStageCount, - uint32_t base, int32_t surrogateValue) { +foldLeadSurrogate(CompactEIntArray* this_obj, + uint32_t base, int32_t top) { uint32_t leadNorm32=0; - uint32_t i, j, s2; + int32_t i, j, s2; uint32_t leadSurrogate=0xd7c0+(base>>10); #if 0 @@ -138,11 +207,11 @@ foldLeadSurrogate(uint16_t *parent, int32_t parentCount, #endif /* calculate the 32-bit data word for the lead surrogate */ for(i=0; i<_UCMPE32_SURROGATE_BLOCK_COUNT; ++i) { - s2=parent[(base>>_UCMPE32_TRIE_SHIFT)+i]; + s2=this_obj->stage1[(base>>_UCMPE32_TRIE_SHIFT)+i]; if(s2!=0) { for(j=0; j<_UCMPE32_STAGE_2_BLOCK_COUNT; ++j) { /* basically, or all 32-bit data into the one for the lead surrogate */ - leadNorm32|=stage[s2+j]; + leadNorm32|=this_obj->stage2[s2+j]; } } } @@ -160,19 +229,19 @@ foldLeadSurrogate(uint16_t *parent, int32_t parentCount, * this is because 16 bits in the FCD trie data do not allow for anything * but the two leading and trailing combining classes of the canonical decomposition. */ - leadNorm32= surrogateValue | ((parentCount<<_UCMPE32_TRIE_SHIFT)&~_UCMPE32_STAGE_2_MASK); + leadNorm32= this_obj->fSurrogateValue | ((top<<_UCMPE32_TRIE_SHIFT)&~_UCMPE32_STAGE_2_MASK); /* enter the lead surrogate's data */ - s2=parent[leadSurrogate>>_UCMPE32_TRIE_SHIFT]; - if(s2==0) { + s2=this_obj->stage1[leadSurrogate>>_UCMPE32_TRIE_SHIFT]; + if(s2<=this_obj->stage2DefaultTop) { /* allocate a new stage 2 block in stage (the memory is there from makeAll32()/makeFCD()) */ - s2=parent[leadSurrogate>>_UCMPE32_TRIE_SHIFT]=(uint16_t)*pStageCount; - *pStageCount+=_UCMPE32_STAGE_2_BLOCK_COUNT; + s2=this_obj->stage1[leadSurrogate>>_UCMPE32_TRIE_SHIFT]=(uint16_t)this_obj->stage2Top; + this_obj->stage2Top+=_UCMPE32_STAGE_2_BLOCK_COUNT; } - stage[s2+(leadSurrogate&_UCMPE32_STAGE_2_MASK)]=leadNorm32; + this_obj->stage2[s2+(leadSurrogate&_UCMPE32_STAGE_2_MASK)]=leadNorm32; /* move the actual stage 1 indexes from the supplementary position to the new one */ - uprv_memmove(parent+parentCount, parent+(base>>_UCMPE32_TRIE_SHIFT), _UCMPE32_SURROGATE_BLOCK_COUNT*2); + uprv_memmove(this_obj->stage1+top, this_obj->stage1+(base>>_UCMPE32_TRIE_SHIFT), _UCMPE32_SURROGATE_BLOCK_COUNT*2); /* increment stage 1 top */ return _UCMPE32_SURROGATE_BLOCK_COUNT; @@ -186,19 +255,17 @@ foldLeadSurrogate(uint16_t *parent, int32_t parentCount, * Use after makeAll32(). */ static uint32_t -foldSupplementary(uint16_t *parent, int32_t parentCount, - int32_t *stage, int32_t *pStageCount, - int32_t surrogateValue) { +foldSupplementary(CompactEIntArray* this_obj, int32_t top) { uint32_t c; uint16_t i; /* search for any stage 1 entries for supplementary code points */ for(c=0x10000; c<0x110000;) { - i=parent[c>>_UCMPE32_TRIE_SHIFT]; + i=this_obj->stage1[c>>_UCMPE32_TRIE_SHIFT]; if(i!=0) { /* there is data, treat the full block for a lead surrogate */ c&=~0x3ff; - parentCount+=foldLeadSurrogate(parent, parentCount, stage, pStageCount, c, surrogateValue); + top+=foldLeadSurrogate(this_obj, c, top); c+=0x400; } else { c+=_UCMPE32_STAGE_2_BLOCK_COUNT; @@ -208,7 +275,7 @@ foldSupplementary(uint16_t *parent, int32_t parentCount, printf("trie index count: BMP %u all Unicode %lu folded %u\n", _UCMPE32_STAGE_1_BMP_COUNT, (long)_UCMPE32_STAGE_1_MAX_COUNT, parentCount); #endif - return parentCount; + return top; } void @@ -225,9 +292,7 @@ ucmpe32_compact(CompactEIntArray* this_obj) { uint16_t i, start, prevEnd, newStart; /* fold supplementary code points into lead surrogates */ - this_obj->stage1Top=foldSupplementary(this_obj->stage1, _UCMPE32_STAGE_1_BMP_COUNT, - this_obj->stage2, &this_obj->stage2Top, this_obj->fSurrogateValue); - + this_obj->stage1Top=foldSupplementary(this_obj, _UCMPE32_STAGE_1_BMP_COUNT); map[0]=0; newStart=_UCMPE32_STAGE_2_BLOCK_COUNT; for(start=newStart; startstage2Top;) { @@ -297,6 +362,8 @@ ucmpe32_clone(CompactEIntArray* orig, UErrorCode *status) } uprv_memcpy(this_obj->stage1, orig->stage1, this_obj->stage1Top*sizeof(uint16_t)); + this_obj->stage2Size = orig->stage2Size; + this_obj->stage2DefaultTop = orig->stage2DefaultTop; this_obj->stage2Top = orig->stage2Top; this_obj->stage2 = (int32_t*)uprv_malloc(60000*sizeof(*(this_obj->stage2))); if(this_obj->stage2 == NULL) { @@ -311,6 +378,7 @@ ucmpe32_clone(CompactEIntArray* orig, UErrorCode *status) this_obj->fStructSize = sizeof(CompactEIntArray); this_obj->fCompact = orig->fCompact; + this_obj->fInitPhase = orig->fInitPhase; return this_obj; } diff --git a/icu4c/source/common/ucmpe32.h b/icu4c/source/common/ucmpe32.h index 17915216e7d..d5db3cc5661 100644 --- a/icu4c/source/common/ucmpe32.h +++ b/icu4c/source/common/ucmpe32.h @@ -31,6 +31,7 @@ #define UCMPE32_H #define ICU_UCMPE32_VERSION 0x01260000 +#define INIT_UCMPE32_STAGE2_SIZE 60000 #include "unicode/utypes.h" @@ -69,13 +70,16 @@ typedef struct CompactEIntArray{ UBool fCompact; UBool fAlias; UBool fBogus; + UBool fInitPhase; uint16_t *stage1; int32_t *stage2; int32_t stage1Top; int32_t stage2Top; + int32_t stage2DefaultTop; int32_t fDefaultValue; int32_t fSurrogateValue; + int32_t stage2Size; } CompactEIntArray; @@ -117,6 +121,9 @@ U_CAPI void U_EXPORT2 ucmpe32_close(CompactEIntArray* array); */ #define ucmpe32_get(this_obj, index) (this_obj->stage2[(this_obj->stage1[(index >> _UCMPE32_TRIE_SHIFT)] )+ \ (index & _UCMPE32_STAGE_2_MASK)]) +U_CAPI +int32_t +ucmpe32_get32(CompactEIntArray* this_obj, UChar32 code); /** * Get the mapped value of a confirmed surrogate. First value already comes @@ -148,6 +155,14 @@ ucmpe32_getSurrogateEx(CompactEIntArray *array, UChar lead, UChar trail); U_CAPI void U_EXPORT2 ucmpe32_set32(CompactEIntArray *array, UChar32 character, int32_t value); +/** + * Sets an inclusive range of characters to the same value + * @param start start of the range + * @param end end of the range + * @param value value to be set + */ +U_CAPI void +ucmpe32_setRange32(CompactEIntArray* this_obj, UChar32 start, UChar32 end, int32_t value); /** * alias for compatibility diff --git a/icu4c/source/data/unidata/FractionalUCA.txt b/icu4c/source/data/unidata/FractionalUCA.txt index a78dcce9706..33606857f6c 100644 --- a/icu4c/source/data/unidata/FractionalUCA.txt +++ b/icu4c/source/data/unidata/FractionalUCA.txt @@ -1,5 +1,5 @@ # Fractional UCA Table, Generated from UCA -# M. Davis, Thu May 17 17:06:54 PDT 2001 +# M. Davis, Tue Oct 30 15:53:58 PST 2001 # Generated processed version, as described in design document. # Notes # - Bugs in UCA data are NOT FIXED, except for the following problems: @@ -13570,6 +13570,139 @@ FF9D; [75 7E, 05, A5] 3129; [76 7C, 05, 05] +D87E DC0C; [E9 04 43, 05, 05] + +D87E DC13; [E9 04 79, 05, 05] + +D87E DDCA; [E9 04 7D, 05, 05] + +D87E DC1F; [E9 04 C5, 05, 05] + +D87E DC24; [E9 05 35, 05, 05] + +D87E DC67; [E9 08 F3, 05, 05] + +D87E DC76; [E9 0A 21, 05, 05] + +D87E DC83; [E9 0B 81, 05, 05] + +D87E DC88; [E9 0B E7, 05, 05] + +D87E DC8A; [E9 0C 1F, 05, 05] + +D87E DC96; [E9 0C B5, 05, 05] + +D87E DC9B; [E9 0C ED, 05, 05] + +D87E DCA2; [E9 0D 63, 05, 05] + +D87E DCA1; [E9 0D 9F, 05, 05] + +D87E DCC2; [E9 0F 8F, 05, 05] + +D87E DCC7; [E9 10 0F, 05, 05] + +D87E DCD1; [E9 11 03, 05, 05] + +D87E DCD0; [E9 11 4B, 05, 05] + +D87E DCCE; [E9 11 6D, 05, 05] + +D87E DCDE; [E9 11 CD, 05, 05] + +D87E DCE7; [E9 12 79, 05, 05] + +D87E DCEE; [E9 13 73, 05, 05] + +D87E DCF2; [E9 13 DF, 05, 05] + +D87E DD0A; [E9 15 B1, 05, 05] + +D87E DD16; [E9 16 7B, 05, 05] + +D87E DD2A; [E9 18 AF, 05, 05] + +D87E DD2C; [E9 18 C7, 05, 05] +D87E DD2D; [E9 18 C7, 05, 05] + +D87E DD33; [E9 19 91, 05, 05] + +D87E DD3E; [E9 1B 5B, 05, 05] + +D87E DD3F; [E9 1B 73, 05, 05] + +D87E DD49; [E9 1B D5, 05, 05] + +D87E DD4B; [E9 1B EF, 05, 05] + +D87E DD4C; [E9 1C 93, 05, 05] + +D87E DD51; [E9 1D 31, 05, 05] + +D87E DD58; [E9 1D C9, 05, 05] + +D87E DD60; [E9 1F 77, 05, 05] + +D87E DD64; [E9 1F C1, 05, 05] + +D87E DD67; [E9 20 B7, 05, 05] + +D87E DD6D; [E9 21 7D, 05, 05] + +D87E DD71; [E9 21 E3, 05, 05] + +D87E DD74; [E9 22 31, 05, 05] + +D87E DD1F; [E9 22 D5, 05, 05] + +D87E DD81; [E9 23 2D, 05, 05] + +D87E DCD7; [E9 23 35, 05, 05] + +D87E DD84; [E9 23 99, 05, 05] + +D87E DD8E; [E9 24 5D, 05, 05] + +D87E DDA7; [E9 25 E1, 05, 05] + +D87E DDAE; [E9 26 49, 05, 05] + +D87E DDAF; [E9 26 51, 05, 05] + +D87E DDB2; [E9 26 65, 05, 05] + +D87E DDC2; [E9 27 85, 05, 05] + +D87E DDC8; [E9 27 FD, 05, 05] + +D87E DDCD; [E9 29 17, 05, 05] + +D87E DDCE; [E9 29 29, 05, 05] + +D87E DDEF; [E9 2E D9, 05, 05] + +D87E DDF2; [E9 2F 7F, 05, 05] + +D87E DDF8; [E9 30 93, 05, 05] + +D87E DDF9; [E9 30 A3, 05, 05] + +D87E DDFC; [E9 31 1F, 05, 05] + +D87E DE03; [E9 32 25, 05, 05] + +D87E DE08; [E9 33 5F, 05, 05] + +D87E DE0D; [E9 35 67, 05, 05] + +D87E DE0E; [E9 35 A5, 05, 05] + +D87E DE11; [E9 35 BB, 05, 05] + +D87E DE16; [E9 36 7B, 05, 05] + +D87E DDBF; [E9 36 7D, 05, 05] + 2F00; [E9 37 D3, 05, 09] 3280; [E9 37 D3, 05, 0D] 3192; [E9 37 D3, 05, 29] @@ -13603,10 +13736,16 @@ F905; [E9 38 3B, 05, 05] 2F02; [E9 38 43, 05, 09] 2E80; [E9 38 43, DF D9, 09] +D87E DC01; [E9 38 47, 05, 05] + F95E; [E9 38 49, 05, 05] +D87E DC00; [E9 38 51, 05, 05] + 2F03; [E9 38 55, 05, 09] +D87E DC02; [E9 38 59, 05, 05] + 2F04; [E9 38 89, 05, 09] 319A; [E9 38 89, 05, 29] 2E84; [E9 38 89, DF D9, 09] @@ -13640,30 +13779,56 @@ F977; [E9 39 37, 05, 05] F9FD; [E9 39 5B, 05, 05] +D87E DC19; [E9 39 73, 05, 05] + F9A8; [E9 39 A3, 05, 05] 32AD; [E9 39 DD, 05, 0D] 32A1; [E9 39 FD, 05, 0D] +D87E DC04; [E9 3A 9F, 05, 05] + F92D; [E9 3A EB, 05, 05] F9B5; [E9 3A F5, 05, 05] +D87E DC05; [E9 3B 3F, 05, 05] + +D87E DC06; [E9 3B 59, 05, 05] + F965; [E9 3B 61, 05, 05] +D87E DC07; [E9 3B E7, 05, 05] + F9D4; [E9 3C 3D, 05, 05] +D87E DC08; [E9 3C DB, 05, 05] + +D87E DC09; [E9 3D 1D, 05, 05] + +D87E DC0B; [E9 3D 89, 05, 05] + F9BB; [E9 3D 9F, 05, 05] +D87E DC0A; [E9 3D B9, 05, 05] + 329D; [E9 3E 43, 05, 0D] 2F09; [E9 3E 6D, 05, 09] FA0C; [E9 3E 6F, 05, 05] +D87E DC0E; [E9 3E 89, 05, 05] + +D87E DC0F; [E9 3E 97, 05, 05] + +D87E DC10; [E9 3E B7, 05, 05] + 2F0A; [E9 3E B9, 05, 09] +D87E DC14; [E9 3E BD, 05, 05] + F978; [E9 3E C1, 05, 05] 2F0B; [E9 3E C5, 05, 09] @@ -13672,15 +13837,31 @@ F978; [E9 3E C1, 05, 05] F9D1; [E9 3E C9, 05, 05] 3285; [E9 3E C9, 05, 0D] +D87E DC11; [E9 3E DD, 05, 05] + 2F0C; [E9 3E F3, 05, 09] 2E86; [E9 3E F3, DF D9, 09] +D87E DC15; [E9 3F 0D, 05, 05] + +D87E DCD2; [E9 3F 17, 05, 05] + +D87E DCD3; [E9 3F 1D, 05, 05] + 2F0D; [E9 3F 1F, 05, 09] +D87E DC17; [E9 3F 21, 05, 05] + 32A2; [E9 3F 25, 05, 0D] +D87E DC18; [E9 3F 3B, 05, 05] + 2F0E; [E9 3F 49, 05, 09] +D87E DC1A; [E9 3F 4B, 05, 05] + +D87E DC1B; [E9 3F 5D, 05, 05] + F92E; [E9 3F 61, 05, 05] F979; [E9 3F 85, 05, 05] @@ -13694,6 +13875,7 @@ FA15; [E9 3F AF, 05, 05] 2F0F; [E9 3F B3, 05, 09] 2E87; [E9 3F B3, DF D9, 09] +D87E DC1D; [E9 3F DD, 05, 05] 2F10; [E9 3F DD, 05, 09] 2F11; [E9 3F F3, 05, 09] @@ -13701,6 +13883,9 @@ FA15; [E9 3F AF, 05, 05] 2E89; [E9 3F F7, 05, 05] +D87E DC1E; [E9 3F F9, 05, 05] + +D87E DC50; [E9 40 05, 05, 05] FA00; [E9 40 05, 05, 05] F99C; [E9 40 25, 05, 05] @@ -13709,6 +13894,14 @@ F9DD; [E9 40 49, 05, 05] F9FF; [E9 40 6B, 05, 05] +D87E DC20; [E9 40 6D, 05, 05] + +D87E DC21; [E9 40 83, 05, 05] + +D87E DC22; [E9 40 DB, 05, 05] + +D87E DC23; [E9 40 E5, 05, 05] + F9C7; [E9 41 0D, 05, 05] F98A; [E9 41 31, 05, 05] @@ -13716,18 +13909,33 @@ F98A; [E9 41 31, 05, 05] F99D; [E9 41 41, 05, 05] +D87E DD92; [E9 41 61, 05, 05] + 3298; [E9 41 63, 05, 0D] +D87E DC25; [E9 41 89, 05, 05] + +D87E DC26; [E9 41 8D, 05, 05] + F952; [E9 41 9F, 05, 05] F92F; [E9 41 B7, 05, 05] +D87E DC27; [E9 41 C3, 05, 05] + F97F; [E9 41 E5, 05, 05] 2F13; [E9 41 ED, 05, 09] +D87E DC28; [E9 41 EF, 05, 05] + +D87E DC29; [E9 42 09, 05, 05] + +D87E DC2A; [E9 42 0B, 05, 05] + 2F14; [E9 42 29, 05, 09] +D87E DC2B; [E9 42 2D, 05, 05] F963; [E9 42 2D, 05, 05] 2F15; [E9 42 33, 05, 09] @@ -13746,8 +13954,14 @@ F9EB; [E9 42 7D, 05, 05] 303A; [E9 42 89, 05, 09] +D87E DC2C; [E9 42 91, 05, 05] + +D87E DC2D; [E9 42 A1, 05, 05] + 32AF; [E9 42 A7, 05, 0D] +D87E DC2E; [E9 42 B3, 05, 05] + 2F18; [E9 42 B7, 05, 09] 2E8A; [E9 42 B7, DF D9, 09] @@ -13756,8 +13970,16 @@ F9EB; [E9 42 7D, 05, 05] 329E; [E9 42 DF, 05, 0D] +D87E DC2F; [E9 42 E5, 05, 05] + F91C; [E9 42 E9, 05, 05] +D87E DC30; [E9 42 F9, 05, 05] + +D87E DC31; [E9 42 FD, 05, 05] +D87E DC32; [E9 42 FD, 05, 05] +D87E DC33; [E9 42 FD, 05, 05] + 2F1A; [E9 43 07, 05, 09] 2E81; [E9 43 07, DF D9, 09] @@ -13767,26 +13989,71 @@ F96B; [E9 43 89, 05, 05] 2F1C; [E9 43 93, 05, 09] +D87E DC36; [E9 43 97, 05, 05] + +D87E DC37; [E9 43 C1, 05, 05] + 2F1D; [E9 43 C9, 05, 09] F906; [E9 43 CD, 05, 05] +D87E DC39; [E9 43 D9, 05, 05] + +D87E DC3A; [E9 43 E5, 05, 05] + 32A8; [E9 43 E9, 05, 0D] +D87E DC3B; [E9 44 13, 05, 05] + 3294; [E9 44 21, 05, 0D] F9DE; [E9 44 25, 05, 05] F9ED; [E9 44 41, 05, 05] +D87E DC3D; [E9 44 77, 05, 05] + F980; [E9 44 8B, 05, 05] +D87E DC3E; [E9 44 97, 05, 05] + +D87E DC3F; [E9 44 D7, 05, 05] + +D87E DC3C; [E9 45 47, 05, 05] + +D87E DC40; [E9 45 4F, 05, 05] + F99E; [E9 45 85, 05, 05] +D87E DC41; [E9 45 F7, 05, 05] + +D87E DC42; [E9 46 2F, 05, 05] + +D87E DC43; [E9 46 B5, 05, 05] + +D87E DC44; [E9 46 D5, 05, 05] + +D87E DC45; [E9 47 1B, 05, 05] +D87E DC46; [E9 47 1B, 05, 05] + F90B; [E9 47 21, 05, 05] +D87E DC47; [E9 47 45, 05, 05] + +D87E DC48; [E9 47 69, 05, 05] + +D87E DC49; [E9 47 79, 05, 05] + FA0D; [E9 47 93, 05, 05] +D87E DC4A; [E9 47 97, 05, 05] + +D87E DC4C; [E9 48 23, 05, 05] + +D87E DC4E; [E9 48 B9, 05, 05] + +D87E DC4F; [E9 49 03, 05, 05] + 2F1E; [E9 49 C9, 05, 09] 3283; [E9 49 D1, 05, 0D] @@ -13794,29 +14061,59 @@ FA0D; [E9 47 93, 05, 05] F9A9; [E9 4A 11, 05, 05] +D87E DC4B; [E9 4A 4B, 05, 05] + +D87E DC4D; [E9 4A 4D, 05, 05] + 2F1F; [E9 4A 5D, 05, 09] 328F; [E9 4A 5D, 05, 0D] 319E; [E9 4A 7F, 05, 29] +D87E DC55; [E9 4B 39, 05, 05] + +D87E DC52; [E9 4B BF, 05, 05] + +D87E DC53; [E9 4C 0F, 05, 05] + +D87E DC54; [E9 4C 41, 05, 05] + +D87E DC57; [E9 4C 89, 05, 05] + +D87E DC56; [E9 4C 8B, 05, 05] + FA10; [E9 4C DB, 05, 05] F96C; [E9 4C E3, 05, 05] +D87E DC58; [E9 4D 83, 05, 05] + F94A; [E9 4D DB, 05, 05] F942; [E9 4D E9, 05, 05] 2F20; [E9 4E 05, 05, 09] +D87E DC51; [E9 4E 0B, 05, 05] + +D87E DC5A; [E9 4E 13, 05, 05] + +D87E DC5B; [E9 4E 1D, 05, 05] + 2F21; [E9 4E 33, 05, 09] +D87E DC5C; [E9 4E 3B, 05, 05] + 2F22; [E9 4E 43, 05, 09] 2F23; [E9 4E 59, 05, 09] +D87E DC5D; [E9 4E 63, 05, 05] + 32B0; [E9 4E 67, 05, 0D] +D87E DC5E; [E9 4E 73, 05, 05] + 2F24; [E9 4E 7D, 05, 09] 337D; [E9 4E 7D, 05, 39][E9 73 89, 05, 39] @@ -13826,10 +14123,29 @@ F90C; [E9 4E BF, 05, 05] F909; [E9 4E D1, 05, 05] +D87E DC5F; [E9 4E F3, 05, 05] + F981; [E9 4F 19, 05, 05] 2F25; [E9 4F 19, 05, 09] 329B; [E9 4F 19, 05, 0D] +D87E DC65; [E9 4F E3, 05, 05] + +D87E DC62; [E9 50 0F, 05, 05] + +D87E DC63; [E9 50 6D, 05, 05] + +D87E DC64; [E9 50 85, 05, 05] + +D87E DC66; [E9 51 07, 05, 05] + +D87E DD86; [E9 51 A5, 05, 05] + +D87E DC69; [E9 52 4F, 05, 05] + +D87E DC6A; [E9 52 BB, 05, 05] +D87E DC6B; [E9 52 BB, 05, 05] + 2F26; [E9 52 DF, 05, 09] 32AB; [E9 53 0F, 05, 0D] @@ -13840,18 +14156,30 @@ FA04; [E9 53 4D, 05, 05] 32AA; [E9 53 71, 05, 0D] +D87E DC6D; [E9 53 C9, 05, 05] + +D87E DC6E; [E9 53 F3, 05, 05] + +D87E DC6F; [E9 54 15, 05, 05] F95F; [E9 54 15, 05, 05] F9AA; [E9 54 15, 05, 05] F9BC; [E9 54 23, 05, 05] +D87E DC70; [E9 54 2D, 05, 05] + 2F28; [E9 54 37, 05, 09] +D87E DC72; [E9 54 45, 05, 05] + +D87E DC73; [E9 54 53, 05, 05] + 2F29; [E9 54 65, 05, 09] 2E8C; [E9 54 65, DF D9, 09] 2E8D; [E9 54 65, DF E9, 09] 2E90; [E9 54 8B, 05, 05] +D87E DC75; [E9 54 8B, 05, 05] 2F2A; [E9 54 8B, 05, 09] 2E8E; [E9 54 8B, DF D9, 09] @@ -13862,22 +14190,43 @@ F9BC; [E9 54 23, 05, 05] F9BD; [E9 54 C5, 05, 05] +D87E DC77; [E9 55 0B, 05, 05] + F94B; [E9 55 0F, 05, 05] F9DF; [E9 55 15, 05, 05] +D87E DC78; [E9 55 27, 05, 05] 2F2C; [E9 55 27, 05, 09] 2F2D; [E9 55 2D, 05, 09] +D87E DC7A; [E9 55 65, 05, 05] + +D87E DC79; [E9 55 CB, 05, 05] + F9D5; [E9 56 81, 05, 05] +D87E DC7C; [E9 56 D5, 05, 05] + F921; [E9 56 EF, 05, 05] +D87E DC7F; [E9 57 29, 05, 05] + +D87E DC7E; [E9 57 2F, 05, 05] + +D87E DC80; [E9 57 4B, 05, 05] + +D87E DDF4; [E9 57 B7, 05, 05] + F9AB; [E9 57 C7, 05, 05] 2F2E; [E9 58 0D, 05, 09] +D87E DC81; [E9 58 19, 05, 05] + +D87E DC82; [E9 58 1B, 05, 05] + 2F2F; [E9 58 21, 05, 09] 32A7; [E9 58 23, 05, 0D] @@ -13886,8 +14235,16 @@ F9AB; [E9 57 C7, 05, 05] 2E92; [E9 58 3D, 05, 05] +D87E DC84; [E9 58 51, 05, 05] + 2F31; [E9 58 53, 05, 09] +D87E DC85; [E9 58 A7, 05, 05] + +D87E DC86; [E9 58 D1, 05, 05] + +D87E DC87; [E9 59 2D, 05, 05] + 2F32; [E9 59 3F, 05, 09] 337B; [E9 59 41, 05, 39][E9 60 97, 05, 39] @@ -13901,8 +14258,15 @@ F98E; [E9 59 43, 05, 05] FA01; [E9 59 A7, 05, 05] +D87E DC8B; [E9 59 BB, 05, 05] + +D87E DC8C; [E9 59 C1, 05, 05] + +D87E DC8D; [E9 59 C7, 05, 05] + F9A2; [E9 59 ED, 05, 05] +D87E DC8E; [E9 59 EF, 05, 05] F928; [E9 59 EF, 05, 05] FA0B; [E9 5A 05, 05, 05] @@ -13911,6 +14275,7 @@ F982; [E9 5A 37, 05, 05] 2F35; [E9 5A 47, 05, 09] +D87E DC90; [E9 5A 5B, 05, 05] 2F36; [E9 5A 5B, 05, 09] F943; [E9 5A 67, 05, 05] @@ -13919,6 +14284,11 @@ F943; [E9 5A 67, 05, 05] 2F38; [E9 5A 85, 05, 09] +D87E DC94; [E9 5A A3, 05, 05] +D87E DC95; [E9 5A A3, 05, 05] + +D87E DC74; [E9 5A C5, 05, 05] + 2F39; [E9 5B 03, 05, 09] 2E95; [E9 5B 03, DF D9, 09] @@ -13926,10 +14296,16 @@ F943; [E9 5A 67, 05, 05] 2F3A; [E9 5B 25, 05, 09] +D87E DC99; [E9 5B 27, 05, 05] + +D87E DC9A; [E9 5B 39, 05, 05] + 2F3B; [E9 5B 49, 05, 09] F9D8; [E9 5B 79, 05, 05] +D87E DC9C; [E9 5B 97, 05, 05] + F966; [E9 5B B5, 05, 05] 2F3C; [E9 5B E9, 05, 09] @@ -13937,24 +14313,62 @@ F966; [E9 5B B5, 05, 05] 2E96; [E9 5B EB, 05, 05] +D87E DC9D; [E9 5B FD, 05, 05] + +D87E DC9E; [E9 5C 15, 05, 05] + F9A3; [E9 5C 51, 05, 05] +D87E DC9F; [E9 5C 59, 05, 05] + F960; [E9 5C 8B, 05, 05] F9AC; [E9 5C 9F, 05, 05] +D87E DCA0; [E9 5D 6D, 05, 05] + +D87E DCA3; [E9 5D 93, 05, 05] + +D87E DCA5; [E9 5D F9, 05, 05] + F9B9; [E9 5E 31, 05, 05] F9D9; [E9 5E F7, 05, 05] +D87E DCA6; [E9 5F 03, 05, 05] + +D87E DCA7; [E9 5F 0B, 05, 05] +D87E DCA9; [E9 5F 0B, 05, 05] + +D87E DCA8; [E9 5F 0F, 05, 05] + +D87E DCAA; [E9 5F 67, 05, 05] + +D87E DCAB; [E9 5F 8F, 05, 05] + F98F; [E9 5F 93, 05, 05] +D87E DCAD; [E9 5F BB, 05, 05] + +D87E DCAE; [E9 5F D1, 05, 05] + +D87E DCAC; [E9 5F D7, 05, 05] + +D87E DCAF; [E9 60 33, 05, 05] + +D87E DCB0; [E9 60 5B, 05, 05] + +D87E DCB1; [E9 60 63, 05, 05] F90D; [E9 60 63, 05, 05] F990; [E9 60 77, 05, 05] 2F3D; [E9 60 87, 05, 09] +D87E DCB2; [E9 60 97, 05, 05] + +D87E DCB3; [E9 60 AD, 05, 05] + F9D2; [E9 60 D3, 05, 05] 2F3E; [E9 60 E3, 05, 09] @@ -13963,20 +14377,52 @@ F9D2; [E9 60 D3, 05, 05] 2E98; [E9 61 13, 05, 05] +D87E DCB4; [E9 61 35, 05, 05] + +D87E DCB5; [E9 61 DD, 05, 05] + F925; [E9 62 11, 05, 05] F95B; [E9 62 1D, 05, 05] FA02; [E9 62 25, 05, 05] +D87E DCB6; [E9 62 27, 05, 05] + +D87E DCBA; [E9 62 77, 05, 05] + F973; [E9 62 7B, 05, 05] +D87E DCB9; [E9 62 F9, 05, 05] + +D87E DCB7; [E9 63 23, 05, 05] + +D87E DCBB; [E9 63 53, 05, 05] + F9A4; [E9 63 79, 05, 05] +D87E DCBC; [E9 63 89, 05, 05] + F975; [E9 63 C3, 05, 05] +D87E DCC1; [E9 63 D5, 05, 05] + +D87E DCC0; [E9 64 11, 05, 05] + +D87E DCBD; [E9 64 4F, 05, 05] + +D87E DCBF; [E9 64 CB, 05, 05] + +D87E DCC3; [E9 65 5D, 05, 05] + +D87E DCC6; [E9 65 79, 05, 05] + +D87E DCC4; [E9 65 87, 05, 05] + F991; [E9 65 BF, 05, 05] +D87E DCC5; [E9 65 C5, 05, 05] + F930; [E9 66 17, 05, 05] 2F40; [E9 66 ED, 05, 09] @@ -13985,6 +14431,10 @@ F930; [E9 66 17, 05, 05] 2E99; [E9 66 F9, 05, 05] +D87E DCC8; [E9 67 31, 05, 05] + +D87E DCC9; [E9 67 6B, 05, 05] + F969; [E9 67 83, 05, 05] 2F42; [E9 67 A1, 05, 09] @@ -14003,6 +14453,8 @@ F983; [E9 68 21, 05, 05] 2E9B; [E9 68 59, 05, 05] +D87E DCCB; [E9 68 5D, 05, 05] + 2F47; [E9 68 61, 05, 09] 3290; [E9 68 61, 05, 0D] 2E9C; [E9 68 61, DF D9, 09] @@ -14013,10 +14465,16 @@ F9E0; [E9 68 BD, 05, 05] 337C; [E9 68 F1, 05, 39][E9 45 23, 05, 39] +D87E DCCD; [E9 69 2D, 05, 05] + FA12; [E9 69 83, 05, 05] F9C5; [E9 69 AB, 05, 05] +D87E DCCF; [E9 69 BD, 05, 05] + +D87E DCD5; [E9 69 D3, 05, 05] + FA06; [E9 6A 07, 05, 05] F98B; [E9 6A 2B, 05, 05] @@ -14025,62 +14483,110 @@ F98B; [E9 6A 2B, 05, 05] F901; [E9 6A 87, 05, 05] +D87E DCCC; [E9 6A 8F, 05, 05] + +D87E DCD4; [E9 6A 9F, 05, 05] + 2F49; [E9 6A AF, 05, 09] 328A; [E9 6A AF, 05, 0D] 2E9D; [E9 6A AF, DF D9, 09] 3292; [E9 6A B1, 05, 0D] +D87E DCD8; [E9 6A CD, 05, 05] F929; [E9 6A CD, 05, 05] +D87E DCD9; [E9 6A D5, 05, 05] + +D87E DCDA; [E9 6A E1, 05, 05] + 2F4A; [E9 6A EF, 05, 09] 328D; [E9 6A EF, 05, 0D] F9E1; [E9 6B 3F, 05, 05] +D87E DCDC; [E9 6B 49, 05, 05] + +D87E DCDB; [E9 6B 5F, 05, 05] + F9C8; [E9 6B 99, 05, 05] +D87E DCE0; [E9 6B AD, 05, 05] + F9F4; [E9 6B D1, 05, 05] F9C9; [E9 6C 8D, 05, 05] +D87E DCDF; [E9 6C 9B, 05, 05] + F9DA; [E9 6C D5, 05, 05] +D87E DCE5; [E9 6C E5, 05, 05] + 3291; [E9 6C FB, 05, 0D] 337F; [E9 6C FB, 05, 39][E9 5A 7D, 05, 39][E9 3A 13, 05, 39][E9 8F AF, 05, 39] +D87E DCE1; [E9 6D 4F, 05, 05] + F97A; [E9 6D AD, 05, 05] +D87E DCE2; [E9 6D B5, 05, 05] + +D87E DCE4; [E9 6D C7, 05, 05] + F9E2; [E9 6D FB, 05, 05] +D87E DCE6; [E9 6E D7, 05, 05] + +D87E DCE8; [E9 6F 37, 05, 05] + +D87E DCE9; [E9 6F F9, 05, 05] + +D87E DCEA; [E9 70 8B, 05, 05] + F914; [E9 70 BB, 05, 05] F95C; [E9 70 BB, 05, 05] F9BF; [E9 70 BB, 05, 05] F94C; [E9 70 DD, 05, 05] +D87E DCEB; [E9 72 0F, 05, 05] + F931; [E9 72 65, 05, 05] +D87E DCED; [E9 72 75, 05, 05] + F91D; [E9 72 C7, 05, 05] 2F4B; [E9 73 03, 05, 09] +D87E DCEF; [E9 73 05, 05, 05] + +D87E DCF1; [E9 73 6B, 05, 05] + 2F4C; [E9 73 87, 05, 09] 32A3; [E9 73 89, 05, 0D] +D87E DCF3; [E9 73 A7, 05, 05] + F98C; [E9 73 B1, 05, 05] 2F4D; [E9 73 B5, 05, 09] 2E9E; [E9 73 B7, DF D9, 09] +D87E DCF4; [E9 74 05, 05, 05] + F9A5; [E9 74 23, 05, 05] 2F4E; [E9 74 2D, 05, 09] +D87E DCF5; [E9 74 3B, 05, 05] F970; [E9 74 3B, 05, 05] +D87E DCF6; [E9 74 3D, 05, 05] + 2F4F; [E9 74 5D, 05, 09] 2E9F; [E9 74 61, 05, 09] @@ -14102,55 +14608,112 @@ F970; [E9 74 3B, 05, 05] 2EA2; [E9 75 3F, 05, 05] +D87E DCFA; [E9 75 67, 05, 05] + +D87E DCFE; [E9 75 99, 05, 05] + F972; [E9 75 DB, 05, 05] +D87E DCFC; [E9 76 4D, 05, 05] + F968; [E9 76 67, 05, 05] +D87E DCFD; [E9 76 69, 05, 05] + F9E3; [E9 76 99, 05, 05] 329F; [E9 76 9F, 05, 0D] +D87E DCFF; [E9 76 FB, 05, 05] + F915; [E9 77 09, 05, 05] FA05; [E9 77 0F, 05, 05] +D87E DD07; [E9 77 3B, 05, 05] + +D87E DD00; [E9 77 4F, 05, 05] + +D87E DD02; [E9 77 55, 05, 05] F9CA; [E9 77 55, 05, 05] +D87E DD03; [E9 77 A5, 05, 05] + F92A; [E9 77 A7, 05, 05] +D87E DD01; [E9 77 C1, 05, 05] + +D87E DD04; [E9 77 C3, 05, 05] + +D87E DD05; [E9 77 DD, 05, 05] + F9F5; [E9 78 6D, 05, 05] F94D; [E9 78 8B, 05, 05] F9D6; [E9 78 AB, 05, 05] +D87E DD0E; [E9 78 C9, 05, 05] + +D87E DD08; [E9 79 39, 05, 05] + +D87E DD09; [E9 79 B7, 05, 05] + F9CB; [E9 7A 17, 05, 05] F9EC; [E9 7A 53, 05, 05] +D87E DD0C; [E9 7A 6D, 05, 05] + +D87E DD0B; [E9 7A 75, 05, 05] + F904; [E9 7A 81, 05, 05] F94E; [E9 7A FD, 05, 05] F992; [E9 7B 29, 05, 05] +D87E DD0F; [E9 7B BF, 05, 05] + +D87E DD12; [E9 7C 73, 05, 05] + F922; [E9 7C BD, 05, 05] F984; [E9 7C E3, 05, 05] +D87E DD15; [E9 7D 21, 05, 05] + +D87E DD14; [E9 7D 27, 05, 05] + +D87E DD13; [E9 7D 5D, 05, 05] + +D87E DD17; [E9 7D 7F, 05, 05] + 2F55; [E9 7D C1, 05, 09] 328B; [E9 7D C1, 05, 0D] 2EA3; [E9 7D C3, 05, 05] +D87E DC35; [E9 7D CB, 05, 05] + +D87E DD19; [E9 7D D9, 05, 05] + +D87E DD18; [E9 7D E5, 05, 05] + F9FB; [E9 7E 21, 05, 05] +D87E DD1A; [E9 7E 49, 05, 05] + F99F; [E9 7E 7F, 05, 05] F916; [E9 7E A1, 05, 05] +D87E DD1C; [E9 7F 7D, 05, 05] + F993; [E9 7F 85, 05, 05] +D87E DD1E; [E9 80 2F, 05, 05] + F9C0; [E9 80 93, 05, 05] F9EE; [E9 80 97, 05, 05] @@ -14159,11 +14722,15 @@ F932; [E9 81 1B, 05, 05] F91E; [E9 81 31, 05, 05] +D87E DD20; [E9 81 4B, 05, 05] + 2F56; [E9 81 4F, 05, 09] 2EA4; [E9 81 51, 05, 05] 2EA5; [E9 81 51, DF D9, 09] +D87E DD21; [E9 81 65, 05, 05] + 2F57; [E9 81 67, 05, 09] 2F58; [E9 81 71, 05, 09] @@ -14172,6 +14739,8 @@ F91E; [E9 81 31, 05, 05] 2F5A; [E9 81 89, 05, 09] +D87E DD22; [E9 81 9B, 05, 05] + 2F5B; [E9 81 AD, 05, 09] 2F5C; [E9 81 B1, 05, 09] @@ -14181,6 +14750,10 @@ F946; [E9 81 BF, 05, 05] 3295; [E9 81 ED, 05, 0D] +D87E DD24; [E9 81 FB, 05, 05] + +D87E DD25; [E9 82 29, 05, 05] + 2F5D; [E9 82 57, 05, 09] 2EA8; [E9 82 59, 05, 05] @@ -14193,6 +14766,8 @@ FA16; [E9 83 57, 05, 05] F9A7; [E9 83 ED, 05, 05] +D87E DD28; [E9 83 F7, 05, 05] + 2F5E; [E9 84 0F, 05, 09] F961; [E9 84 15, 05, 05] @@ -14200,8 +14775,11 @@ F9DB; [E9 84 15, 05, 05] 2F5F; [E9 84 19, 05, 09] +D87E DD29; [E9 84 1D, 05, 05] 2EA9; [E9 84 1D, DF D9, 09] +D87E DD2B; [E9 84 51, 05, 05] + F9AD; [E9 84 6B, 05, 05] F917; [E9 84 C3, 05, 05] @@ -14210,12 +14788,22 @@ F9E4; [E9 85 17, 05, 05] F9CC; [E9 85 1D, 05, 05] +D87E DD2E; [E9 85 99, 05, 05] + +D87E DD2F; [E9 85 C3, 05, 05] + F9AE; [E9 85 DD, 05, 05] +D87E DD30; [E9 85 ED, 05, 05] + +D87E DD31; [E9 86 19, 05, 05] + F994; [E9 86 21, 05, 05] F9EF; [E9 86 3F, 05, 05] +D87E DD32; [E9 86 A3, 05, 05] + 2F60; [E9 86 C7, 05, 09] 2F61; [E9 86 DB, 05, 09] @@ -14224,6 +14812,8 @@ F9EF; [E9 86 3F, 05, 05] 2F63; [E9 87 51, 05, 09] +D87E DD34; [E9 87 5B, 05, 05] + 2F64; [E9 87 63, 05, 09] 2F65; [E9 87 73, 05, 09] @@ -14232,10 +14822,13 @@ F9EF; [E9 86 3F, 05, 05] 329A; [E9 87 81, 05, 0D] +D87E DD36; [E9 87 8F, 05, 05] + F9CD; [E9 87 C5, 05, 05] F976; [E9 87 DD, 05, 05] +D87E DD38; [E9 87 F3, 05, 05] F962; [E9 87 F3, 05, 05] 2F66; [E9 88 2D, 05, 09] @@ -14245,6 +14838,8 @@ F962; [E9 87 F3, 05, 05] F9E5; [E9 88 DB, 05, 05] +D87E DD3A; [E9 89 3B, 05, 05] + F9C1; [E9 89 9F, 05, 05] F90E; [E9 89 ED, 05, 05] @@ -14266,20 +14861,36 @@ F933; [E9 8A ED, 05, 05] 2F6C; [E9 8A FB, 05, 09] 2EAB; [E9 8A FB, DF D9, 09] +D87E DD40; [E9 8B 0B, 05, 05] + F96D; [E9 8B 25, 05, 05] +D87E DD45; [E9 8B 5F, 05, 05] + +D87E DD46; [E9 8B 61, 05, 05] +D87E DD47; [E9 8B 61, 05, 05] + +D87E DD48; [E9 8B B7, 05, 05] + +D87E DD4A; [E9 8C 3D, 05, 05] + 2F6D; [E9 8C DD, 05, 09] 2F6E; [E9 8C EB, 05, 09] 2F6F; [E9 8D 11, 05, 09] +D87E DD4E; [E9 8D C7, 05, 05] + F9CE; [E9 8E 05, 05, 05] +D87E DD4F; [E9 8E 47, 05, 05] F93B; [E9 8E 47, 05, 05] F947; [E9 8E C3, 05, 05] +D87E DD50; [E9 8E C7, 05, 05] + F964; [E9 8F 29, 05, 05] F985; [E9 8F 87, 05, 05] @@ -14293,6 +14904,8 @@ FA18; [E9 8F AB, 05, 05] 3293; [E9 8F AF, 05, 0D] +D87E DD53; [E9 8F DF, 05, 05] + 3297; [E9 8F ED, 05, 0D] FA19; [E9 8F EF, 05, 05] @@ -14301,6 +14914,7 @@ FA1A; [E9 8F FD, 05, 05] F93C; [E9 90 35, 05, 05] +D87E DD56; [E9 90 55, 05, 05] FA1B; [E9 90 55, 05, 05] F9B6; [E9 90 93, 05, 05] @@ -14313,10 +14927,20 @@ F995; [E9 90 CB, 05, 05] 3299; [E9 90 E7, 05, 0D] +D87E DD57; [E9 91 11, 05, 05] + F956; [E9 91 73, 05, 05] +D87E DD59; [E9 91 BB, 05, 05] + +D87E DD5A; [E9 91 CF, 05, 05] + +D87E DD5B; [E9 91 D9, 05, 05] + 2F73; [E9 92 27, 05, 09] +D87E DD5F; [E9 92 9B, 05, 05] + F9F7; [E9 92 D5, 05, 05] 2F74; [E9 92 D5, 05, 09] @@ -14325,6 +14949,10 @@ F9F7; [E9 92 D5, 05, 05] F9F8; [E9 93 83, 05, 05] +D87E DD62; [E9 94 D3, 05, 05] + +D87E DD63; [E9 94 D9, 05, 05] + F9A6; [E9 95 C7, 05, 05] F944; [E9 96 0F, 05, 05] @@ -14335,28 +14963,44 @@ F9F9; [E9 96 73, 05, 05] FA1D; [E9 96 CB, 05, 05] +D87E DD66; [E9 96 F3, 05, 05] + FA03; [E9 96 FB, 05, 05] +D87E DD69; [E9 97 19, 05, 05] + F97B; [E9 97 21, 05, 05] +D87E DD68; [E9 97 23, 05, 05] + 2F77; [E9 97 43, 05, 09] 2EAF; [E9 97 45, 05, 05] +D87E DD6A; [E9 97 53, 05, 05] + F9CF; [E9 97 73, 05, 05] F96A; [E9 97 97, 05, 05] F94F; [E9 97 B1, 05, 05] +D87E DD6C; [E9 98 1D, 05, 05] + F93D; [E9 98 97, 05, 05] F957; [E9 98 D3, 05, 05] +D87E DD6E; [E9 98 E5, 05, 05] + F996; [E9 99 43, 05, 05] +D87E DD6F; [E9 99 5F, 05, 05] + F950; [E9 99 C9, 05, 05] +D87E DD70; [E9 99 E5, 05, 05] + 2EB0; [E9 9A 9D, 05, 05] 2F78; [E9 9B CF, 05, 09] @@ -14372,6 +15016,8 @@ F950; [E9 99 C9, 05, 05] F9E6; [E9 9C 59, 05, 05] +D87E DD76; [E9 9C 5B, 05, 05] + F90F; [E9 9C 71, 05, 05] 2F7A; [E9 9C 7B, 05, 09] @@ -14380,16 +15026,22 @@ F90F; [E9 9C 71, 05, 05] 2EB8; [E9 9C 7D, 05, 05] +D87E DD78; [E9 9C 91, 05, 05] + F9AF; [E9 9C 9B, 05, 05] FA1E; [E9 9C E1, 05, 05] 2F7B; [E9 9C E1, 05, 09] +D87E DD79; [E9 9D 5F, 05, 05] + F934; [E9 9D 6D, 05, 05] 2F7C; [E9 9D 6D, 05, 09] 2EB9; [E9 9D 6F, 05, 05] +D87E DD7A; [E9 9D 75, 05, 05] + 2F7D; [E9 9D 83, 05, 09] 2F7E; [E9 9D 8F, 05, 09] @@ -14398,8 +15050,12 @@ F934; [E9 9D 6D, 05, 05] F9B0; [E9 9D F7, 05, 05] +D87E DD7D; [E9 9E 2F, 05, 05] + F997; [E9 9E 4D, 05, 05] +D87E DD7F; [E9 9E 4F, 05, 05] + F945; [E9 9E 6B, 05, 05] 2F80; [E9 9E 6D, 05, 09] @@ -14412,6 +15068,14 @@ F945; [E9 9E 6B, 05, 05] F953; [E9 9E 85, 05, 05] +D87E DCD6; [E9 9E C9, 05, 05] + +D87E DD82; [E9 9E D3, 05, 05] + +D87E DD83; [E9 9F 79, 05, 05] + +D87E DD85; [E9 9F EF, 05, 05] + F926; [E9 A1 2B, 05, 05] 2F82; [E9 A1 41, 05, 09] @@ -14425,6 +15089,11 @@ F9F6; [E9 A1 4B, 05, 05] 2F85; [E9 A1 73, 05, 09] 2EBD; [E9 A1 73, DF D9, 09] +D87E DC93; [E9 A1 7D, 05, 05] +D87E DD8B; [E9 A1 7D, 05, 05] + +D87E DD8C; [E9 A1 83, 05, 05] + 2F86; [E9 A1 93, 05, 09] 2F87; [E9 A1 B1, 05, 09] @@ -14443,22 +15112,67 @@ F97C; [E9 A2 5D, 05, 05] 2EBF; [E9 A2 71, DF D9, 09] 2EC0; [E9 A2 71, DF E9, 09] +D87E DD90; [E9 A2 95, 05, 05] + +D87E DD8F; [E9 A2 A1, 05, 05] + +D87E DD91; [E9 A2 B9, 05, 05] + +D87E DD93; [E9 A2 E1, 05, 05] + +D87E DD94; [E9 A2 E5, 05, 05] + +D87E DD95; [E9 A2 F9, 05, 05] + +D87E DD98; [E9 A3 4D, 05, 05] F974; [E9 A3 4D, 05, 05] +D87E DD96; [E9 A3 4F, 05, 05] + +D87E DD99; [E9 A3 BD, 05, 05] + +D87E DD9C; [E9 A3 C9, 05, 05] + F9FE; [E9 A3 EF, 05, 05] +D87E DDA0; [E9 A4 2D, 05, 05] + +D87E DD9A; [E9 A4 4D, 05, 05] + +D87E DD9B; [E9 A4 E1, 05, 05] + +D87E DD9D; [E9 A5 05, 05, 05] + F93E; [E9 A5 1D, 05, 05] +D87E DDA1; [E9 A5 1F, 05, 05] + +D87E DDA2; [E9 A5 23, 05, 05] + +D87E DDA3; [E9 A5 43, 05, 05] + +D87E DD9E; [E9 A5 59, 05, 05] + F958; [E9 A5 6D, 05, 05] F918; [E9 A6 09, 05, 05] F96E; [E9 A6 21, 05, 05] +D87E DD9F; [E9 A6 3D, 05, 05] + F999; [E9 A7 6F, 05, 05] +D87E DDA8; [E9 A7 75, 05, 05] + +D87E DDA9; [E9 A7 79, 05, 05] + F9C2; [E9 A7 8B, 05, 05] +D87E DDAA; [E9 A7 BF, 05, 05] + +D87E DDAC; [E9 A8 5F, 05, 05] + F923; [E9 A9 35, 05, 05] F9F0; [E9 A9 8F, 05, 05] @@ -14475,12 +15189,39 @@ F910; [E9 AA 1D, 05, 05] 2EC1; [E9 AA 3B, 05, 05] +D87E DDB3; [E9 AA 3F, 05, 05] + +D87E DDB4; [E9 AA 57, 05, 05] F936; [E9 AA 57, 05, 05] +D87E DDB5; [E9 AA 6D, 05, 05] + +D87E DDB6; [E9 AA 71, 05, 05] + 2F8D; [E9 AA 75, 05, 09] +D87E DDB8; [E9 AA AF, 05, 05] + +D87E DDB7; [E9 AA F1, 05, 05] + +D87E DDBA; [E9 AB 67, 05, 05] + +D87E DDB9; [E9 AB BF, 05, 05] + +D87E DDBC; [E9 AB F3, 05, 05] + +D87E DDBD; [E9 AC 7D, 05, 05] + +D87E DDBB; [E9 AC 99, 05, 05] + +D87E DDBE; [E9 AC B3, 05, 05] + F911; [E9 AD 1F, 05, 05] +D87E DDC0; [E9 AD 6D, 05, 05] + +D87E DDC1; [E9 AD AD, 05, 05] + F927; [E9 AD E9, 05, 05] 2F8E; [E9 AE 2F, 05, 09] @@ -14488,6 +15229,9 @@ F927; [E9 AD E9, 05, 05] FA08; [E9 AE 47, 05, 05] 2F8F; [E9 AE 47, 05, 09] +D87E DDC3; [E9 AE 6F, 05, 05] + +D87E DDC4; [E9 AE 75, 05, 05] 2F90; [E9 AE 75, 05, 09] 2EC2; [E9 AE 77, 05, 05] @@ -14496,10 +15240,16 @@ F9A0; [E9 AF 37, 05, 05] F9E7; [E9 AF 51, 05, 05] +D87E DDC6; [E9 AF 61, 05, 05] + +D87E DDC7; [E9 AF 6F, 05, 05] + F9E8; [E9 AF 75, 05, 05] F912; [E9 AF A3, 05, 05] +D87E DDC9; [E9 AF A7, 05, 05] + F924; [E9 B0 7F, 05, 05] 2F91; [E9 B0 B3, 05, 09] @@ -14519,6 +15269,8 @@ FA0A; [E9 B0 CD, 05, 05] 2F94; [E9 B1 BB, 05, 09] +D87E DDCF; [E9 B3 03, 05, 05] + F96F; [E9 B3 17, 05, 05] F9A1; [E9 B3 17, 05, 05] @@ -14526,6 +15278,8 @@ F97D; [E9 B3 67, 05, 05] F941; [E9 B3 6F, 05, 05] +D87E DDD0; [E9 B3 9D, 05, 05] + FA22; [E9 B3 B3, 05, 05] F95D; [E9 B3 BF, 05, 05] @@ -14534,6 +15288,8 @@ F9FC; [E9 B4 77, 05, 05] F95A; [E9 B4 C7, 05, 05] +D87E DDD1; [E9 B4 DB, 05, 05] + 2EC8; [E9 B5 0B, 05, 05] 2F95; [E9 B6 3D, 05, 09] @@ -14542,6 +15298,7 @@ F95A; [E9 B4 C7, 05, 05] F900; [E9 B6 5F, 05, 05] +D87E DDD2; [E9 B6 79, 05, 05] 2F97; [E9 B6 79, 05, 09] 2F98; [E9 B6 BF, 05, 09] @@ -14550,32 +15307,50 @@ F900; [E9 B6 5F, 05, 05] 3296; [E9 B7 15, 05, 0D] +D87E DDD4; [E9 B7 29, 05, 05] + +D87E DDD5; [E9 B7 55, 05, 05] + F948; [E9 B7 57, 05, 05] 32AE; [E9 B7 61, 05, 0D] F903; [E9 B7 63, 05, 05] +D87E DDD6; [E9 B8 0D, 05, 05] + 2EC9; [E9 B8 11, 05, 05] 2F9A; [E9 B8 9F, 05, 09] 2F9B; [E9 B8 B7, 05, 09] +D87E DDD7; [E9 B8 C5, 05, 05] + 2F9C; [E9 B9 41, 05, 09] 2ECA; [E9 B9 41, DF D9, 09] +D87E DDDB; [E9 B9 53, 05, 05] + +D87E DDDA; [E9 B9 71, 05, 05] + F937; [E9 B9 B9, 05, 05] +D87E DDDC; [E9 B9 BB, 05, 05] + 2F9D; [E9 BB 39, 05, 09] F902; [E9 BB 77, 05, 05] 2F9E; [E9 BB 77, 05, 09] +D87E DDDE; [E9 BB 8B, 05, 05] + F998; [E9 BC 33, 05, 05] F9D7; [E9 BC 3B, 05, 05] +D87E DDDF; [E9 BC 57, 05, 05] + FA07; [E9 BC 5D, 05, 05] F98D; [E9 BC AB, 05, 05] @@ -14584,6 +15359,8 @@ F98D; [E9 BC AB, 05, 05] 2F9F; [E9 BD 21, 05, 09] +D87E DD8D; [E9 BD 27, 05, 05] + F971; [E9 BD 4B, 05, 05] 2FA0; [E9 BD 4B, 05, 09] @@ -14606,10 +15383,18 @@ F913; [E9 BF 11, 05, 05] 2FA2; [E9 BF 15, 05, 09] 2ECF; [E9 BF 15, DF D9, 09] +D87E DDE2; [E9 BF 1B, 05, 05] + F92C; [E9 BF 8F, 05, 05] +D87E DDE3; [E9 BF D5, 05, 05] + FA26; [E9 BF ED, 05, 05] +D87E DDE4; [E9 C0 19, 05, 05] + +D87E DDE6; [E9 C0 2D, 05, 05] + 2FA3; [E9 C0 89, 05, 09] F919; [E9 C0 CB, 05, 05] @@ -14629,10 +15414,22 @@ F90A; [E9 C1 9D, 05, 05] F9B1; [E9 C2 67, 05, 05] +D87E DDE7; [E9 C2 6F, 05, 05] + +D87E DDEA; [E9 C2 F7, 05, 05] + +D87E DDE8; [E9 C3 B1, 05, 05] + +D87E DDE9; [E9 C3 B3, 05, 05] + F93F; [E9 C4 0F, 05, 05] F99B; [E9 C4 9B, 05, 05] +D87E DDEB; [E9 C5 FD, 05, 05] + +D87E DDEC; [E9 C6 39, 05, 05] + 2ED0; [E9 C7 1D, 05, 05] 2ED1; [E9 C9 09, 05, 05] @@ -14644,8 +15441,12 @@ F99B; [E9 C4 9B, 05, 05] 2FA8; [E9 C9 1B, 05, 09] +D87E DDEE; [E9 C9 31, 05, 05] + F986; [E9 C9 75, 05, 05] +D87E DDF0; [E9 C9 89, 05, 05] + 2ED4; [E9 C9 EB, 05, 05] 2FA9; [E9 CA 57, 05, 09] @@ -14671,6 +15472,8 @@ F9B8; [E9 CB 93, 05, 05] 2FAB; [E9 CB 95, 05, 09] +D87E DDF3; [E9 CB A9, 05, 05] + F9EA; [E9 CB E7, 05, 05] 2FAC; [E9 CB F3, 05, 09] @@ -14682,6 +15485,8 @@ F949; [E9 CC 15, 05, 05] F951; [E9 CC 1D, 05, 05] +D87E DDF5; [E9 CC 6D, 05, 05] + F938; [E9 CC 8B, 05, 05] F9B3; [E9 CC B7, 05, 05] @@ -14700,6 +15505,8 @@ FA1C; [E9 CC D3, 05, 05] 2FB1; [E9 CD C1, 05, 09] +D87E DDFA; [E9 CD EB, 05, 05] + 2ED9; [E9 CD F7, 05, 05] 2FB2; [E9 CE 09, 05, 09] @@ -14710,8 +15517,13 @@ FA1C; [E9 CC D3, 05, 05] 32A0; [E9 CE 39, 05, 0D] +D87E DDFE; [E9 CE 45, 05, 05] +D87E DDFF; [E9 CE 45, 05, 05] + F9B4; [E9 CE 5F, 05, 05] +D87E DE00; [E9 CE 81, 05, 05] + F9D0; [E9 CE EB, 05, 05] 2EDA; [E9 CF 1D, 05, 05] @@ -14730,12 +15542,16 @@ F9D0; [E9 CE EB, 05, 05] 2EDF; [E9 CF F3, 05, 05] 2EDE; [E9 CF F3, DF D9, 09] +D87E DE02; [E9 CF F7, 05, 05] + FA2A; [E9 D0 15, 05, 05] FA2B; [E9 D0 2F, 05, 05] FA2C; [E9 D0 87, 05, 05] +D87E DE04; [E9 D0 89, 05, 05] + 2EE0; [E9 D0 FD, 05, 05] 2FB8; [E9 D1 67, 05, 09] @@ -14743,10 +15559,16 @@ FA2C; [E9 D0 87, 05, 05] 2FB9; [E9 D1 6D, 05, 09] +D87E DE05; [E9 D1 89, 05, 05] + 2FBA; [E9 D1 93, 05, 09] +D87E DE06; [E9 D1 BF, 05, 05] + F91A; [E9 D2 21, 05, 05] +D87E DE07; [E9 D2 3B, 05, 05] + F987; [E9 D3 17, 05, 05] 2EE2; [E9 D3 1B, 05, 05] @@ -14758,6 +15580,8 @@ F987; [E9 D3 17, 05, 05] 2FBD; [E9 D4 05, 05, 09] +D87E DE0A; [E9 D4 6B, 05, 05] + 2FBE; [E9 D4 91, 05, 09] 2FBF; [E9 D4 A5, 05, 09] @@ -14771,12 +15595,18 @@ F987; [E9 D3 17, 05, 05] F939; [E9 D5 29, 05, 05] +D87E DE0B; [E9 D6 CF, 05, 05] + F9F2; [E9 D6 FD, 05, 05] 2EE5; [E9 D7 4B, 05, 05] 2FC3; [E9 D8 21, 05, 09] +D87E DE0C; [E9 D8 51, 05, 05] + +D87E DE0F; [E9 D9 29, 05, 05] + FA2D; [E9 D9 C3, 05, 05] F93A; [E9 DA 53, 05, 05] @@ -14799,6 +15629,7 @@ F9F3; [E9 DB A1, 05, 05] 2EE8; [E9 DB AF, 05, 05] +D87E DE15; [E9 DB D9, 05, 05] 2FC7; [E9 DB D9, 05, 09] 2FC8; [E9 DB E9, 05, 09] @@ -14811,18 +15642,27 @@ F989; [E9 DC 03, 05, 05] 2FCA; [E9 DC 09, 05, 09] +D87E DE17; [E9 DC 59, 05, 05] 2FCB; [E9 DC 59, 05, 09] 2FCC; [E9 DC 61, 05, 09] 2EEA; [E9 DC 63, 05, 05] +D87E DE18; [E9 DC 63, 05, 05] + +D87E DE19; [E9 DC 71, 05, 05] 2FCD; [E9 DC 83, 05, 09] +D87E DE1A; [E9 DC 85, 05, 05] + 2FCE; [E9 DC 8D, 05, 09] +D87E DE1B; [E9 DC 93, 05, 05] + 2FCF; [E9 DC A7, 05, 09] +D87E DE1C; [E9 DC DD, 05, 05] 2FD0; [E9 DC DD, 05, 09] 2FD1; [E9 DC FB, 05, 09] @@ -14874,3 +15714,124 @@ FA27; [EA 98 99, 05, 05] FA28; [EA 98 9B, 05, 05] FA29; [EA 98 9D, 05, 05] + +D834 DD5E; [EF 0C C8 11, 05, 05][EF 0C C8 D5, 05, 05] +D834 DD5F; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05] +D834 DD60; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DD61; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] +D834 DD62; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 81, 05, 05] +D834 DD63; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 8F, 05, 05] +D834 DD64; [EF 0C C8 1F, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 9D, 05, 05] +D834 DDBB; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05] +D834 DDBD; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DDBF; [EF 0C CD C7, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] +D834 DDBC; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05] +D834 DDBE; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 65, 05, 05] +D834 DDC0; [EF 0C CD D5, 05, 05][EF 0C C8 D5, 05, 05][EF 0C C9 73, 05, 05] + +D87E DC03; [EB 0F A0 B9, 05, 05] +D87E DC12; [EB 0F DC 9D, 05, 05] +D87E DD1B; [EB 0F DD 2D, 05, 05] +D87E DC16; [EB 0F DF 65, 05, 05] +D87E DC0D; [EB 0F ED 73, 05, 05] +D87E DDD9; [EB 10 0B 65, 05, 05] +D87E DDDD; [EB 10 18 3B, 05, 05] +D87E DC34; [EB 10 2B D5, 05, 05] +D87E DC38; [EB 10 3E 2D, 05, 05] +D87E DC68; [EB 10 B7 11, 05, 05] +D87E DC59; [EB 10 CD 49, 05, 05] +D87E DC60; [EB 10 E7 D5, 05, 05] +D87E DC61; [EB 10 EB B9, 05, 05] +D87E DC6C; [EB 11 19 E3, 05, 05] +D87E DC71; [EB 11 2D AB, 05, 05] +D87E DCF8; [EB 11 4B 11, 05, 05] +D87E DC7B; [EB 11 57 C7, 05, 05] +D87E DC7D; [EB 11 57 E3, 05, 05] +D87E DC89; [EB 11 8E 57, 05, 05] +D87E DD39; [EB 11 90 03, 05, 05] +D87E DC91; [EB 11 A7 9D, 05, 05] +D87E DC92; [EB 11 A7 9D, 05, 05] +D87E DCA4; [EB 11 DE 65, 05, 05] +D87E DCB8; [EB 12 20 E3, 05, 05] +D87E DCBE; [EB 12 2E 65, 05, 05] +D87E DCCA; [EB 12 6C 1F, 05, 05] +D87E DC97; [EB 12 94 73, 05, 05] +D87E DD80; [EB 12 9E 49, 05, 05] +D87E DD89; [EB 12 A1 57, 05, 05] +D87E DD8A; [EB 12 A1 D5, 05, 05] +D87E DCDD; [EB 12 A4 2D, 05, 05] +D87E DCE3; [EB 12 AE 2D, 05, 05] +D87E DCEC; [EB 12 CF 73, 05, 05] +D87E DCF0; [EB 12 ED C7, 05, 05] +D87E DCF7; [EB 13 0D 65, 05, 05] +D87E DCF9; [EB 13 13 C7, 05, 05] +D87E DCFB; [EB 13 2E 49, 05, 05] +D87E DD06; [EB 13 34 11, 05, 05] +D87E DD0D; [EB 13 4D 9D, 05, 05] +D87E DD10; [EB 13 55 E3, 05, 05] +D87E DD11; [EB 13 58 B9, 05, 05] +D87E DD1D; [EB 13 83 65, 05, 05] +D87E DD23; [EB 13 BA 49, 05, 05] +D87E DD26; [EB 13 CC 03, 05, 05] +D87E DD27; [EB 13 D9 1F, 05, 05] +D87E DD35; [EB 14 1A 57, 05, 05] +D87E DD37; [EB 14 1F B9, 05, 05] +D87E DD3B; [EB 14 4D C7, 05, 05] +D87E DD3C; [EB 14 4F 2D, 05, 05] +D87E DD3D; [EB 14 57 65, 05, 05] +D87E DD42; [EB 14 61 9D, 05, 05] +D87E DD41; [EB 14 61 AB, 05, 05] +D87E DD43; [EB 14 63 E3, 05, 05] +D87E DD44; [EB 14 65 73, 05, 05] +D87E DD4D; [EB 14 91 57, 05, 05] +D87E DD52; [EB 14 B0 03, 05, 05] +D87E DD54; [EB 14 B6 C7, 05, 05] +D87E DD55; [EB 14 B9 57, 05, 05] +D87E DD5C; [EB 14 E2 3B, 05, 05] +D87E DD5D; [EB 14 F3 C7, 05, 05] +D87E DD5E; [EB 14 F3 C7, 05, 05] +D87E DD61; [EB 15 06 1F, 05, 05] +D87E DD65; [EB 15 12 9D, 05, 05] +D87E DD6B; [EB 15 40 2D, 05, 05] +D87E DC98; [EB 15 63 3B, 05, 05] +D87E DD72; [EB 15 67 C7, 05, 05] +D87E DD73; [EB 15 69 9D, 05, 05] +D87E DD75; [EB 15 72 3B, 05, 05] +D87E DD77; [EB 15 78 2D, 05, 05] +D87E DD7B; [EB 15 90 65, 05, 05] +D87E DD7C; [EB 15 94 AB, 05, 05] +D87E DD7E; [EB 15 9C 81, 05, 05] +D87E DD87; [EB 15 BA 8F, 05, 05] +D87E DD88; [EB 15 BB 65, 05, 05] +D87E DD97; [EB 15 F0 81, 05, 05] +D87E DDA4; [EB 15 FF 3B, 05, 05] +D87E DDA6; [EB 16 0B 8F, 05, 05] +D87E DDA5; [EB 16 14 65, 05, 05] +D87E DDAD; [EB 16 2E C7, 05, 05] +D87E DDB0; [EB 16 36 9D, 05, 05] +D87E DDB1; [EB 16 47 9D, 05, 05] +D87E DDAB; [EB 16 74 57, 05, 05] +D87E DDC5; [EB 16 9B AB, 05, 05] +D87E DDCB; [EB 16 BE 03, 05, 05] +D87E DDCC; [EB 16 C8 C7, 05, 05] +D87E DDD3; [EB 16 F9 D5, 05, 05] +D87E DDD8; [EB 17 22 E3, 05, 05] + +D87E DDE0; [EB 17 86 D5, 05, 05] +D87E DDE1; [EB 17 88 73, 05, 05] +D87E DDE5; [EB 17 9B 57, 05, 05] +D87E DDED; [EB 17 E3 8F, 05, 05] +D87E DDF1; [EB 17 FA 03, 05, 05] +D87E DDF6; [EB 18 36 49, 05, 05] +D87E DC1C; [EB 18 3F 57, 05, 05] +D87E DDF7; [EB 18 42 C7, 05, 05] +D87E DDFB; [EB 18 60 03, 05, 05] +D87E DDFD; [EB 18 68 3B, 05, 05] +D87E DE01; [EB 18 79 2D, 05, 05] +D87E DE09; [EB 18 CB 9D, 05, 05] +D87E DE10; [EB 19 23 3B, 05, 05] +D87E DE12; [EB 19 26 73, 05, 05] +D87E DE13; [EB 19 36 11, 05, 05] +D87E DE14; [EB 19 3D B9, 05, 05] +D87E DC8F; [EB 19 4C D5, 05, 05] +D87E DE1D; [EB 19 71 73, 05, 05] diff --git a/icu4c/source/i18n/ucol.cpp b/icu4c/source/i18n/ucol.cpp index db8121e95f7..dc43abdfd99 100644 --- a/icu4c/source/i18n/ucol.cpp +++ b/icu4c/source/i18n/ucol.cpp @@ -1854,6 +1854,9 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col if(CE == UCOL_NOT_FOUND) { // there are tailored surrogates in this block, but not this one. // We need to backup loadState(source, &state, TRUE); + } else if (getCETag(CE) == IMPLICIT_TAG) { // got an untailored surrogate here + uint32_t cp = ((((uint32_t)ch)<<10UL)+(trail)-(((uint32_t)0xd800<<10UL)+0xdc00-0x10000)); + return getImplicit(cp, source, 0); } } } diff --git a/icu4c/source/i18n/ucol_bld.cpp b/icu4c/source/i18n/ucol_bld.cpp index 41415ae38eb..50de5fdb673 100644 --- a/icu4c/source/i18n/ucol_bld.cpp +++ b/icu4c/source/i18n/ucol_bld.cpp @@ -841,7 +841,7 @@ U_CFUNC void ucol_createElements(UColTokenParser *src, tempUCATable *t, UColTokL uprv_uca_addAnElement(t, &el, status); } } -#endif +#endif #if UCOL_DEBUG_DUPLICATES if(*status != U_ZERO_ERROR) { @@ -1042,6 +1042,66 @@ UCATableHeader *ucol_assembleTailoringTable(UColTokenParser *src, UErrorCode *st uprv_uca_closeTempTable(tempTable); } + /* produce canonical closure */ + UCollationElements* colEl = ucol_openElements(tempColl, NULL, 0, status); + UChar32 u32 = 0; + UChar comp[2]; + uint32_t len = 0; + for(u32 = 0; u32 < 0x30000; u32++) { + len = 0; + UTF_APPEND_CHAR_UNSAFE(comp, len, u32); + if((noOfDec = unorm_normalize(comp, len, UNORM_NFD, 0, decomp, 256, status)) > 1 + || (noOfDec == 1 && *decomp != (UChar)u)) + { + if(ucol_strcoll(tempColl, comp, len, decomp, noOfDec) != UCOL_EQUAL) { + el.cPoints = decomp; + el.cSize = noOfDec; + el.noOfCEs = 0; + el.prefix = el.prefixChars; + el.prefixSize = 0; + + UCAElements *prefix=(UCAElements *)uhash_get(t->prefixLookup, &el); + if(prefix == NULL) { + el.cPoints = comp; + el.cSize = len; + el.prefix = el.prefixChars; + el.prefixSize = 0; + el.noOfCEs = 0; + ucol_setText(colEl, decomp, noOfDec, status); + while((el.CEs[el.noOfCEs] = ucol_next(colEl, status)) != UCOL_NULLORDER) { + el.noOfCEs++; + } + } else { + el.cPoints = comp; + el.cSize = len; + el.prefix = el.prefixChars; + el.prefixSize = 0; + el.noOfCEs = 1; + el.CEs[0] = prefix->mapCE; + // This character uses a prefix. We have to add it + // to the unsafe table, as it decomposed form is already + // in. In Japanese, this happens for \u309e & \u30fe + // Since unsafeCPSet is static in ucol_elm, we are going + // to wrap it up in the uprv_uca_unsafeCPAddCCNZ function + } + + uprv_uca_addAnElement(t, &el, status); + } + } + switch(u32) { + case 0x33FF: + u32 = 0xAC00; + break; + case 0xFFFF: + u32 = 0x1D000; + break; + case 0x1DFFF: + u32 = 0x2F800; + break; + } + } + +#if 0 /* produce canonical closure */ UCollationElements* colEl = ucol_openElements(tempColl, NULL, 0, status); for(u = 0; u < 0xFFFF; u++) { @@ -1086,6 +1146,7 @@ UCATableHeader *ucol_assembleTailoringTable(UColTokenParser *src, UErrorCode *st } } } +#endif ucol_closeElements(colEl); ucol_close(tempColl); } diff --git a/icu4c/source/i18n/ucol_elm.cpp b/icu4c/source/i18n/ucol_elm.cpp index 2fc0d023c9f..3e7c1c5d73c 100644 --- a/icu4c/source/i18n/ucol_elm.cpp +++ b/icu4c/source/i18n/ucol_elm.cpp @@ -829,23 +829,6 @@ static uint32_t uprv_uca_processContraction(CntTable *contractions, UCAElements return existingCE; } -/* Set a range of elements to a value */ -uint32_t uprv_uca_setRange(tempUCATable *t, UChar32 rangeStart, UChar32 rangeEnd, int32_t value, UErrorCode *status) { - if(U_FAILURE(*status) || (rangeEnd < rangeStart)) { - return 0; - } - - UChar32 counter = rangeStart; - uint32_t i = 0; - - for(counter = rangeStart; counter <= rangeEnd; counter++) { - ucmpe32_set32(t->mapping, counter, value); - i++; - } - - return i; -} - static uint32_t uprv_uca_finalizeAddition(tempUCATable *t, UCAElements *element, UErrorCode *status) { uint32_t CE = UCOL_NOT_FOUND; if(element->cSize > 1) { /* we're adding a contraction */ diff --git a/icu4c/source/i18n/ucol_elm.h b/icu4c/source/i18n/ucol_elm.h index c3d1b606b87..0befe6e96ae 100644 --- a/icu4c/source/i18n/ucol_elm.h +++ b/icu4c/source/i18n/ucol_elm.h @@ -92,8 +92,6 @@ U_CAPI tempUCATable * U_EXPORT2 uprv_uca_cloneTempTable(tempUCATable *t, UErrorC U_CAPI void U_EXPORT2 uprv_uca_closeTempTable(tempUCATable *t); U_CAPI uint32_t U_EXPORT2 uprv_uca_addAnElement(tempUCATable *t, UCAElements *element, UErrorCode *status); U_CAPI UCATableHeader * U_EXPORT2 uprv_uca_assembleTable(tempUCATable *t, UErrorCode *status); -U_CAPI uint32_t U_EXPORT2 uprv_uca_setRange(tempUCATable *t, UChar32 rangeStart, UChar32 rangeEnd, int32_t value, UErrorCode *status); - #define paddedsize(something) ((something)+((((something)%4)!=0)?(4-(something)%4):0)) #define headersize (paddedsize(sizeof(UCATableHeader))+paddedsize(sizeof(UColOptionSet))) diff --git a/icu4c/source/test/cintltst/citertst.c b/icu4c/source/test/cintltst/citertst.c index a98c41e0e1c..321d37fd7d3 100644 --- a/icu4c/source/test/cintltst/citertst.c +++ b/icu4c/source/test/cintltst/citertst.c @@ -1649,9 +1649,9 @@ static UBool checkCEValidity(const UCollator *coll, const UChar *codepoints, goto fail; } } - if ((primary != 0 && primary < primarymax) || primary >= 0xFF00) { + if ((primary != 0 && primary < primarymax) || (primary >= 0xFF00 && !isContinuation(ce))) { log_err("UCA primary weight out of bounds\n"); - return FALSE; + goto fail; } /* case matching not done since data generated by ken */ if (first) { diff --git a/icu4c/source/tools/genuca/genuca.cpp b/icu4c/source/tools/genuca/genuca.cpp index 488317fd831..dd65fbe3d50 100644 --- a/icu4c/source/tools/genuca/genuca.cpp +++ b/icu4c/source/tools/genuca/genuca.cpp @@ -614,12 +614,39 @@ write_uca_table(const char *filename, #endif // * set to zero +struct { + UChar32 start; + UChar32 end; + int32_t value; + } ranges[] = + { + {0xAC00, 0xD7AF, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24) }, //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ + {0xD800, 0xDBFF, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24) }, //1 LEAD_SURROGATE_TAG, /* D800-DBFF*/ + {0xDC00, 0xDFFF, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24) }, //2 TRAIL_SURROGATE DC00-DFFF + {0x3400, 0x4DB5, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //3 CJK_IMPLICIT_TAG, /* 0x3400-0x4DB5*/ + {0x4E00, 0x9FA5, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //4 CJK_IMPLICIT_TAG, /* 0x4E00-0x9FA5*/ + {0xF900, 0xFA2D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //5 CJK_IMPLICIT_TAG, /* 0xF900-0xFA2D*/ + {0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //6 CJK_IMPLICIT_TAG, /* 0x20000-0x2A6D6*/ + {0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //7 CJK_IMPLICIT_TAG, /* 0x2F800-0x2FA1D*/ + }; + uint32_t i = 0; + + for(i = 0; imapping, ranges[i].start, ranges[i].end, ranges[i].value); + test_uca_ranges(t->mapping, ranges[i].start, ranges[i].end, ranges[i].value); + } + + +#if 0 uprv_uca_setRange(t, 0xAC00, 0xD7AF, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24), status); // HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ uprv_uca_setRange(t, 0xD800, 0xDBFF, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24), status); // LEAD_SURROGATE_TAG, /* D800-DBFF*/ uprv_uca_setRange(t, 0xDC00, 0xDFFF, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24), status); // TRAIL_SURROGATE DC00-DFFF uprv_uca_setRange(t, 0x3400, 0x4DB5, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24), status); // CJK_IMPLICIT_TAG, /* 0x3400-0x4DB5*/ uprv_uca_setRange(t, 0x4E00, 0x9FA5, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24), status); // CJK_IMPLICIT_TAG, /* 0x4E00-0x9FA5*/ uprv_uca_setRange(t, 0xF900, 0xFA2D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24), status); // CJK_IMPLICIT_TAG, /* 0xF900-0xFA2D*/ + uprv_uca_setRange(t, 0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24), status); // CJK_IMPLICIT_TAG, /* 0xF900-0xFA2D*/ + uprv_uca_setRange(t, 0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24), status); // CJK_IMPLICIT_TAG, /* 0xF900-0xFA2D*/ +#endif @@ -641,14 +668,18 @@ write_uca_table(const char *filename, // if element is a contraction, we want to add it to contractions if(element->cSize > 1) { // this is a contraction - contractionCEs[noOfContractions][0] = element->cPoints[0]; - contractionCEs[noOfContractions][1] = element->cPoints[1]; - if(element->cSize > 2) { // the third one - contractionCEs[noOfContractions][2] = element->cPoints[2]; + if(UTF_IS_LEAD(element->cPoints[0]) && UTF_IS_TRAIL(element->cPoints[1]) && element->cSize == 2) { + //fprintf(stdout, "Surrogate %04X %04X!\n", element->cPoints[0], element->cPoints[1]); } else { - contractionCEs[noOfContractions][2] = 0; + contractionCEs[noOfContractions][0] = element->cPoints[0]; + contractionCEs[noOfContractions][1] = element->cPoints[1]; + if(element->cSize > 2) { // the third one + contractionCEs[noOfContractions][2] = element->cPoints[2]; + } else { + contractionCEs[noOfContractions][2] = 0; + } + noOfContractions++; } - noOfContractions++; } /* we're first adding to inverse, because addAnElement will reverse the order */