diff options
author | Jehan <jehan@girinstud.io> | 2022-12-15 14:31:31 +0100 |
---|---|---|
committer | Jehan <jehan@girinstud.io> | 2022-12-15 14:31:55 +0100 |
commit | e6e51d9fe8692b03055165ba52b7e867ad11df49 (patch) | |
tree | d904f4ca4a82f9122f9f1f1c01439a5f002eed55 /src | |
parent | 362086bf568974272f7cf654cf215d556fea7fc1 (diff) |
src: all language models now rebuilt after the fix.
Diffstat (limited to 'src')
30 files changed, 3272 insertions, 3329 deletions
diff --git a/src/LangModels/LangArabicModel.cpp b/src/LangModels/LangArabicModel.cpp index 7e0acf0..a84e3e4 100644 --- a/src/LangModels/LangArabicModel.cpp +++ b/src/LangModels/LangArabicModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 17:55:19.583556 + * On: 2022-12-14 21:49:25.799709 **/ /* Character Mapping Table: @@ -68,17 +68,17 @@ static const unsigned char Iso_8859_6_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 54, 57, 53, 60, 68, 75, 70, 72, 62, 84, 79, 74, 52, 64, 71, /* 4X */ - 65, 88, 73, 56, 63, 77, 82, 78, 91, 86, 90,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 37, 58, 46, 48, 36, 66, 51, 49, 38, 83, 61, 43, 50, 39, 40, /* 6X */ - 55, 89, 41, 44, 42, 47, 69, 67, 80, 59, 76,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 55, 59, 54, 63, 67, 71, 75, 72, 62, 79, 81, 69, 65, 66, 70, /* 4X */ + 58, 89, 68, 49, 60, 78, 80, 76, 90, 88, 86,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 35, 61, 45, 46, 34, 56, 52, 48, 36, 84, 74, 44, 50, 38, 37, /* 6X */ + 51, 83, 39, 43, 42, 47, 64, 73, 82, 53, 77,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,ILL,ILL,ILL,SYM,ILL,ILL,ILL,ILL,ILL,ILL,ILL,SYM,SYM,ILL,ILL, /* AX */ ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,SYM,ILL,ILL,ILL,SYM, /* BX */ - ILL, 32, 35, 17, 34, 24, 31, 0, 8, 9, 7, 27, 19, 18, 25, 11, /* CX */ - 29, 6, 26, 12, 21, 23, 28,SYM, 33, 10, 30,ILL,ILL,ILL,ILL,ILL, /* DX */ - 45, 13, 16, 14, 1, 3, 5, 15, 4, 22, 2,SYM,SYM,SYM,SYM,SYM, /* EX */ + ILL, 32, 40, 17, 41, 25, 31, 0, 8, 9, 7, 26, 19, 18, 24, 11, /* CX */ + 29, 6, 27, 12, 22, 21, 28,SYM, 33, 10, 30,ILL,ILL,ILL,ILL,ILL, /* DX */ + 57, 13, 15, 14, 1, 3, 5, 16, 4, 23, 2,SYM,SYM,SYM,SYM,SYM, /* EX */ SYM,SYM,SYM,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL,ILL, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,173 +89,173 @@ static const unsigned char Windows_1256_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 54, 57, 53, 60, 68, 75, 70, 72, 62, 84, 79, 74, 52, 64, 71, /* 4X */ - 65, 88, 73, 56, 63, 77, 82, 78, 91, 86, 90,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 37, 58, 46, 48, 36, 66, 51, 49, 38, 83, 61, 43, 50, 39, 40, /* 6X */ - 55, 89, 41, 44, 42, 47, 69, 67, 80, 59, 76,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM, 81,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,100,SYM,101, 95,102,103, /* 8X */ - 85,SYM,SYM,SYM,SYM,SYM,SYM,SYM,104,SYM,105,SYM,106,SYM,SYM,107, /* 9X */ + SYM, 55, 59, 54, 63, 67, 71, 75, 72, 62, 79, 81, 69, 65, 66, 70, /* 4X */ + 58, 89, 68, 49, 60, 78, 80, 76, 90, 88, 86,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 35, 61, 45, 46, 34, 56, 52, 48, 36, 84, 74, 44, 50, 38, 37, /* 6X */ + 51, 83, 39, 43, 42, 47, 64, 73, 82, 53, 77,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 91,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,102,SYM,103, 97,104, 98, /* 8X */ + 87,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 93,SYM,105,SYM,106,SYM,SYM,107, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,108,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 109, 32, 35, 17, 34, 24, 31, 0, 8, 9, 7, 27, 19, 18, 25, 11, /* CX */ - 29, 6, 26, 12, 21, 23, 28,SYM, 20, 33, 10, 30, 45, 13, 16, 14, /* DX */ - 96, 1, 99, 3, 5, 15, 4, 94, 92, 87,110,111, 22, 2,112, 98, /* EX */ - SYM,SYM,SYM,SYM, 93,SYM,SYM,SYM,SYM,113,SYM,114, 97,SYM,SYM,115, /* FX */ + 109, 32, 40, 17, 41, 25, 31, 0, 8, 9, 7, 26, 19, 18, 24, 11, /* CX */ + 29, 6, 27, 12, 22, 21, 28,SYM, 20, 33, 10, 30, 57, 13, 15, 14, /* DX */ + 110, 1, 95, 3, 5, 16, 4,100, 94, 85, 96,111, 23, 2, 99,101, /* EX */ + SYM,SYM,SYM,SYM,112,SYM,SYM,SYM,SYM,113,SYM,114, 92,SYM,SYM,115, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 64; static const unsigned int Unicode_CharOrder[] = { - 65, 54, 66, 57, 67, 53, 68, 60, 73, 62, 77, 52, 83, 56, 84, 63, - 97, 37, 98, 58, 99, 46, 100, 48, 101, 36, 103, 51, 104, 49, 105, 38, - 107, 61, 108, 43, 109, 50, 110, 39, 111, 40, 112, 55, 114, 41, 115, 44, - 116, 42, 117, 47, 121, 59, 1569, 32, 1570, 35, 1571, 17, 1572, 34,1573, 24, - 1574, 31, 1575, 0, 1576, 8, 1577, 9, 1578, 7, 1579, 27, 1580, 19,1581, 18, - 1582, 25, 1583, 11, 1584, 29, 1585, 6, 1586, 26, 1587, 12, 1588, 21,1589, 23, - 1590, 28, 1591, 20, 1592, 33, 1593, 10, 1594, 30, 1600, 45, 1601, 13,1602, 16, - 1603, 14, 1604, 1, 1605, 3, 1606, 5, 1607, 15, 1608, 4, 1609, 22,1610, 2, + 65, 55, 66, 59, 67, 54, 68, 63, 73, 62, 80, 58, 83, 49, 84, 60, + 97, 35, 98, 61, 99, 45, 100, 46, 101, 34, 102, 56, 103, 52, 104, 48, + 105, 36, 108, 44, 109, 50, 110, 38, 111, 37, 112, 51, 114, 39, 115, 43, + 116, 42, 117, 47, 121, 53, 1569, 32, 1570, 40, 1571, 17, 1572, 41,1573, 25, + 1574, 31, 1575, 0, 1576, 8, 1577, 9, 1578, 7, 1579, 26, 1580, 19,1581, 18, + 1582, 24, 1583, 11, 1584, 29, 1585, 6, 1586, 27, 1587, 12, 1588, 22,1589, 21, + 1590, 28, 1591, 20, 1592, 33, 1593, 10, 1594, 30, 1600, 57, 1601, 13,1602, 15, + 1603, 14, 1604, 1, 1605, 3, 1606, 5, 1607, 16, 1608, 4, 1609, 23,1610, 2, }; /* Model Table: - * Total considered sequences: 1932 / 4096 - * - Positive sequences: first 902 (0.9950136374489401) - * - Probable sequences: next 424 (1326-902) (0.003987703013712651) - * - Neutral sequences: last 2770 (0.0009986595373472351) - * - Negative sequences: 2164 (off-ratio) + * Total considered sequences: 2046 / 4096 + * - Positive sequences: first 1011 (0.9950032726169761) + * - Probable sequences: next 415 (1426-1011) (0.004000386891877872) + * - Neutral sequences: last 2670 (0.0009963404911460527) + * - Negative sequences: 2050 (off-ratio) * Negative sequences: TODO */ static const PRUint8 ArabicLangModel[] = { - 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,1,3,3,3,3,3,3,3, - 3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,1,3,3,3,3,3,3, + 3,3,0,0,0,0,0,0,1,3,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 1,3,2,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,3,3,3,3,3,3,3, - 3,3,3,0,0,0,0,0,0,0,0,0,0,2,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3, - 0,3,3,2,0,0,0,0,0,0,0,0,0,2,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,3,2,3,0,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,3,3,3,3,3,3,3, - 0,3,1,1,0,0,0,0,0,0,0,0,0,2,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,0,3,3, - 2,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3, - 0,3,3,2,0,0,0,0,0,0,0,0,0,2,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3, - 2,1,2,1,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, - 2,0,2,2,2,1,0,2,2,0,1,1,1,1,2,2,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,3,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,3,3,3,3,3,3, + 3,3,0,0,0,0,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3, + 0,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,0,0,0,0,0,0,3,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,1,2,3,3,3,3,3, + 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,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,2,3,3, + 2,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, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,2, + 0,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3, + 1,2,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,3,0,0,0,0,0,0, + 2,0,1,2,1,0,1,2,2,0,1,1,1,1,2,1,1,1,1,1,0,0,1,0,1,2,0,1,0,0,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, 3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,0,3,3,3,3,3,0,0,3,3,3,3,0,0, - 0,3,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,3,2,3,0,2,3,1,0,3,3,3,0,0,2,3, - 3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,0,0,0,0,1,3, - 0,0,3,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3, - 1,3,2,1,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,2,3,3,3,2,3,2,1,2,2,3,3,2,3,2,0, - 0,0,1,0,0,0,0,0,0,0,0,0,0,2,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,3,3,0,3,2,2,3,3,2,0,0,3,2,3,3,1,0,0,3,0,3,3,0,0, - 0,2,3,1,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,2,1,3,3,3,3,0,0,2,0,3,3,0,0, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,2, - 0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,1,3,3,3,3,3,0,0,3,3,3,3,0,0, - 0,3,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,2,3,2,3,3,1,0,1,2,1,0,0,3,1,0,3,3,3, - 0,0,1,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,2,3,3,0,3,3,3,3,0,3,2,3,0,0,1,0,0,0,0,2,3, - 2,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,2,3,3,3,3,3,3,3,3,1,2,0,0,3,1,0,0,2,3,3, - 0,1,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,2,3,3,0,3,3,0,0,2,3, + 3,0,0,0,0,0,0,0,0,2,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,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,1,1,1,0,1,0,2, + 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,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3, + 1,3,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,2,3,2,2,2,3,3,1,3,1,1, + 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,2,1,3,3,3,3,0,0,0,3,3,2,0,0, + 0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,0,3,2,2,3,2,3,0,0,3,2,1,2,3,0,0,0,3,3,3,0,1, + 0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,3,3,3,3,3,1, + 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, + 3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,2,3,3,3,3,3,0,0,3,3,3,3,1,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,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,0,2,1,0,0,0,2,3,0,3,3,3, + 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,1,3,0,2,3,1,0,0,1,0,0,2,3, + 2,0,0,0,0,0,0,0,0,1,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,3,3,3,3,0,3,2,3,3,0,3,0,3,3,0,3,3,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,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,0,1,2,3,0,0,0,0,1,3,3, + 0,2,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, + 1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,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,3,3,3,3,0,3,1,3,3,0,3,0,3,0,3,3,0,3,0,0,0,0,3,0, + 3,3,3,3,3,3,3,3,3,3,1,3,3,3,0,0,3,0,0,1,3,3,3,1,1,0,1,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,3,3,3,0,3,3,3,3,0,3,3,3,3,3,2,3,0,3,3,3,3,0,3,0,3,3,3,3,3,3,0, + 0,3,3,3,1,3,3,3,3,0,3,3,3,3,3,3,2,0,3,3,3,3,3,0,3,0,3,3,3,3,3,0, 0,2,0,0,0,0,0,0,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,3,3,0,3,3,3,1,3,0,0,0,1,3,3,1,3,0,1,3,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, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,2,0,1,2,0,0,3,2,0,0,0,1,3, - 3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,2,2,0,2,1,3,3,1,0,0,0,1,2,0,1,0,0,1,0,0,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,1,3,3,3,3,3,3,0,3,0,3,0,2,3,2,3,0,3,0,0,3,0,0,1,0,3,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,3,3,0,0,2,3,3,0,0,0,3,0,0,1,0,0,2,0,0,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,1,1,1,2,1,3,3,1,0,0,0,0,0,2,0,0,2,0,0,0,2,0, 0,0,0,0,0,0,0,0,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,3,3,1,3,3,2,1,2,0,0,0,1,3,2,2,1,0,1,3,0,3,3,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,3,0,0,0,2,3,0,0,2,0,0,1,3, + 3,0,0,0,0,0,0,0,1,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,2,3,3,3,3,3,3,0,3,0,0,3,1,3,2,3,0,0,3,3,0,0,0,1,0,3,2, + 0,0,0,0,0,0,0,0,1,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,2,3,3,3,3,3,3,2,0,0,2,3,0,3,0,0,3,0,0,0,2,2,0,0,0,0,0,0,2, 0,0,0,0,0,0,0,0,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,3,3,3,3,3,3,3,3,3,0,3,3,3,2,1,2,0,0,3,1,1,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,1,1,1,2,0,0,3,0,3,0,0,0,0,1,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,0,3,3,2,0,0,2,0,0,1,3,1,2,2,0,0,1,3,3,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,0,3,3,3,3,2,1,0,0,0,3,2,3,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,2,1,2,1,1,1,3,1,3,0,0,1,0,1,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, - 3,3,3,3,3,2,3,2,2,3,0,0,0,3,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,2,3,2,1,3,0,0,0,3,0,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,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,2,3,3,1,0,0,3,3,0,3,3,3,0,2,2,0,2,1,0,0,2,0,2,0,2,0,0, - 0,0,0,0,0,0,0,0,0,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,2,3,3,3,3,1,0,3,3,2,2,1,1,0,1,2,0,2,0,0,0,3,1,3,0,3,2,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,2,3,3,3,3,0,2,2,3,0,2,2,0,0,0,2,0,1,2,2,0,2,1,0, + 0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,2,1,1,3,3,3,2,0,0,2,0,0,0,0,2,0,0, + 0,0,0,0,0,0,0,0,0,0,1,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,3,1,3,3,0,0,3,3,3,3,3,3,2,0,3,3,3,3,1,0,2,0,1,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,2,2,3,3,1,3,3,3,3,0,3,3,2,2,3,2,1,0,0,2,0,0,3,2,0,2,0,0, + 0,0,3,3,2,3,3,3,0,0,3,3,3,3,3,2,1,1,3,3,3,1,0,0,2,0,0,0,0,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,3,3,3,3,3,0,3,2,2,1,3,2,0,1,1,2,0,0,2,1,0,2,0,1, + 0,0,1,2,2,3,3,3,0,0,3,3,3,3,3,3,2,0,3,3,3,2,1,0,3,0,0,0,0,3,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,3,3,2,2,3,3,3,0,3,2,3,1,1,3,0,0,0,0,1,1,2,2,0,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,3,2,3,3,3,3,0,2,3,2,2,3,2,0,1,1,3,0,0,2,1,0,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,2,2,2,3,0,2,2,2,1,2,2,0,0,0,2,0,0,2,2,0,2,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,3,0,3,2,2,1,3,0,2,3,0,3,1,0,0,0,0,1,0,1,1,2,0,1,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,0,2,3,2,0,1,2,2,2,2,2,2,0,1,0,0,0,0,2,0,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,1,3,1,3,1,2,0,2,2,1,3,2,0,0,0,0,2,0,0,1,1,0,2,0,1, - 2,1,1,2,2,1,1,2,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,3,0,3,2,2,3,2,0,1,2,0,3,0,0,0,0,0,0,0,2,0,3,0,2,0,0, + 0,0,3,3,3,3,3,1,0,0,3,3,3,3,3,2,1,0,1,0,3,1,0,0,2,0,0,0,0,2,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,1,0,2,1,3,3,0,0,2,0,0,0,1,2,0,0, + 0,3,3,3,2,3,3,3,3,3,0,3,3,2,2,1,2,0,1,1,0,1,3,1,3,0,3,2,0,3,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,2,3,3,1,0,0,3,3,0,3,3,3,0,0,1,1,0,2,2,2,0,3,0,0,2,0,0, + 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,3,3,3,1,3,0,0,3,3,2,2,0,3,3,0,2,2,0,3,1,0,1,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,2,2,3,1,3,3,3,3,0,2,0,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0, + 0,0,3,3,3,3,0,1,0,0,3,3,2,3,2,2,3,0,3,3,0,2,0,0,2,0,0,0,0,1,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,3,3,3,0,1,0,0,3,2,3,1,3,3,1,0,2,2,2,3,0,0,2,0,0,0,0,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,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,1,2,1,1,1,2,0,0,2,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0, + 0,0,3,3,3,3,1,2,0,0,3,2,3,2,0,2,3,0,2,0,0,3,1,0,0,0,0,2,0,0,2,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,3,1,3,2,2,2,1,0,0,2,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,3,3,3,3,1,2,0,0,1,2,2,0,2,2,1,1,1,1,2,2,0,1,0,0,0,0,1,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,3,1,2,1,1,0,1,0,0,2,0,0,2,1,0,0,1,2,1,0,3,1,0,1,0,0, + 0,0,3,3,3,2,3,3,0,0,3,3,3,3,3,0,0,0,3,2,2,1,0,0,1,0,0,0,0,3,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,3,3,3,2,2,0,0,2,0,1,0,0,2,0,0,1,1,0,2,0,0,1,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,2,0,2,2,0,2,2,0,1,2,1,2,1,1,0,0,0,0,0,0,1,1,0,0,0,0, + 0,0,2,3,2,3,0,0,0,0,3,0,0,3,0,2,3,1,2,2,0,2,2,2,0,0,1,3,3,0,1,2, 0,0,0,0,0,0,0,0,0,0,0,0,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,3,2,0,2,0,0,0,0,0,1,3,1,1,0,0,0,1,2,1,2,1,0,2,2,0,2,0, + 0,0,3,3,3,3,1,0,0,0,0,2,0,0,0,2,1,0,2,3,0,2,0,0,1,0,1,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,2,2,2,0,3,2,0,1,1,0,0,1,0,2,0,0,2,0,1,0,2,1,0,0,1,0,1,0, + 0,0,3,3,3,3,0,3,0,0,2,2,3,0,1,2,3,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,1,2,0,2,2,2,1,0,1,1,1,0,1,1,1,2,1,1,1,1,1,0,1,0,0,1, + 0,0,3,2,3,2,2,3,0,0,2,2,2,0,1,2,3,0,1,0,1,2,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,3,2,0,2,2,2,3,1,0,0,1,0,2,1,0,0,0,0,2,0,0,0,1,0,0,0,0, + 0,0,2,2,0,1,1,2,0,0,1,2,2,3,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,2,2,1,2,0,2,1,0,0,2,2,0,2,1,0,0,2,2,2,2,1,0,1,1,0,1,1, + 0,0,2,3,2,3,0,2,0,0,0,0,2,0,1,2,3,2,0,0,0,1,2,2,0,0,1,0,1,0,1,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,2,0,2,3,0,0,1,2,2,2,2,2,0,2,2,1,2,1,2,1,2,0,1,1,1,2,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,2,2,0,2,3,0,2,0,0,0,2,0,0,0,0,0,2,2,0,1,2,0,0,1,0,2,1, + 0,0,2,2,3,3,0,2,0,0,2,1,1,0,0,0,0,1,1,0,1,1,0,0,2,0,0,0,0,1,0,0, + 2,1,2,1,1,1,1,2,1,2,1,2,0,0,1,1,2,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,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,3,2,0,2,2,0,2,1,0,0,2,0,0,1,0,0,0,0,1,0,0,1,2,0,0,0,0, + 0,0,2,3,2,3,0,3,0,0,0,1,2,0,0,2,2,2,0,0,0,1,2,1,0,0,1,0,0,0,1,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,2,1,1,2,1,1,1,2,0,3,1,1,1,1,0,0,1,0,1,1,0,1,0,0,0,0,1, + 0,0,2,2,2,3,0,3,0,0,0,0,2,0,0,2,1,0,0,0,0,2,2,2,0,0,0,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,2,2,0,2,1,0,1,0,0,0,2,0,0,0,0,2,2,1,0,1,2,2,1,1,0,0,1, + 0,0,2,2,2,2,0,3,0,0,0,0,0,1,0,2,3,2,0,0,0,1,0,2,0,0,0,0,1,0,2,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,2,2,1,2,0,0,1,2,0,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0, + 0,0,3,3,2,3,1,3,0,0,1,2,3,0,2,2,2,0,0,1,0,2,0,0,0,0,0,0,0,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,2,1,2,0,0,1,0,0,1,0,0,0,0,2,1,2,0,2,2,0,0,1,0,1,1, + 0,0,1,1,0,1,3,2,0,0,1,2,1,1,0,1,0,3,2,0,0,0,2,1,0,0,0,2,2,1,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,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,1,2,0,2,2,0,0,0,0,0,2,0,3,0,0,1,1,1,0,1,1,0,1,0,0,1,1, + 0,0,3,3,3,2,0,1,0,0,0,2,0,0,0,2,0,1,0,0,0,0,1,0,0,0,1,2,1,2,1,2, }; @@ -264,7 +264,7 @@ const SequenceModel Iso_8859_6ArabicModel = Iso_8859_6_CharToOrderMap, ArabicLangModel, 64, - (float)0.9990013404626528, + (float)0.999003659508854, PR_FALSE, "ISO-8859-6", "ar" @@ -275,7 +275,7 @@ const SequenceModel Windows_1256ArabicModel = Windows_1256_CharToOrderMap, ArabicLangModel, 64, - (float)0.9990013404626528, + (float)0.999003659508854, PR_FALSE, "WINDOWS-1256", "ar" @@ -289,7 +289,7 @@ const LanguageModel ArabicModel = ArabicLangModel, 64, 4, - (float)0.4061396689475064, - 27, - (float)0.034834360917409636, + (float)0.40059675552120994, + 29, + (float)0.033261237094477154, }; diff --git a/src/LangModels/LangCroatianModel.cpp b/src/LangModels/LangCroatianModel.cpp index dc77fc9..4bb6480 100644 --- a/src/LangModels/LangCroatianModel.cpp +++ b/src/LangModels/LangCroatianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:02:00.881155 + * On: 2022-12-14 21:57:58.988239 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 50,SYM, 44,SYM, 51, 52,SYM,SYM, 22, 53, 54, 55,SYM, 24, 56, /* AX */ - SYM, 57,SYM, 44,SYM, 58, 59,SYM,SYM, 22, 60, 61, 62,SYM, 24, 63, /* BX */ - 64, 36, 39, 65, 34, 66, 25, 67, 19, 32, 68, 69, 70, 43, 71, 72, /* CX */ - 26, 47, 73, 42, 74, 75, 31,SYM, 76, 77, 78, 79, 33, 80, 81, 82, /* DX */ - 83, 36, 39, 84, 34, 85, 25, 86, 19, 32, 87, 88, 89, 43, 90, 91, /* EX */ - 26, 47, 92, 42, 93, 94, 31,SYM, 95, 96, 97, 98, 33, 99,100,SYM, /* FX */ + SYM, 54,SYM, 53,SYM, 55, 56,SYM,SYM, 22, 40, 57, 58,SYM, 25, 41, /* AX */ + SYM, 59,SYM, 53,SYM, 60, 61,SYM,SYM, 22, 40, 62, 63,SYM, 25, 41, /* BX */ + 64, 39, 37, 65, 36, 66, 24, 44, 20, 31, 67, 68, 69, 70, 71, 72, /* CX */ + 26, 73, 74, 38, 75, 51, 32,SYM, 76, 50, 42, 77, 33, 78, 79, 45, /* DX */ + 80, 39, 37, 81, 36, 82, 24, 44, 20, 31, 83, 84, 85, 86, 87, 88, /* EX */ + 26, 89, 90, 38, 91, 51, 32,SYM, 92, 50, 42, 93, 33, 94, 95,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 35,SYM,101,SYM,SYM,SYM,SYM,102, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 35,SYM,103,SYM,SYM,SYM,SYM,104, /* BX */ - 105,106, 38, 25, 34, 40,107, 48, 19, 32,108,109,110,111, 49,112, /* CX */ - 22, 47,113, 42, 45,114, 31,SYM,115, 44,116,117, 33,118, 24,119, /* DX */ - 120,121, 38, 25, 34, 40,122, 48, 19, 32,123,124,125,126, 49,127, /* EX */ - 22, 47,128, 42, 45,129, 31,SYM,130, 44,131,132, 33,133, 24,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 34,SYM, 96,SYM,SYM,SYM,SYM, 49, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 34,SYM, 97,SYM,SYM,SYM,SYM, 49, /* BX */ + 98, 99,100, 24, 36,101,102, 46, 20, 31,103,104,105,106, 47,107, /* CX */ + 22,108,109, 38, 43,110, 32,SYM,111, 53,112, 48, 33, 41, 25, 45, /* DX */ + 113,114,115, 24, 36,116,117, 46, 20, 31,118,119,120,121, 47,122, /* EX */ + 22,123,124, 38, 43,125, 32,SYM,126, 53,127, 48, 33, 41, 25,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_16_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,134,135, 44,SYM,SYM, 22,SYM, 22,SYM,136,SYM,137,SYM,138,139, /* AX */ - SYM,SYM, 19, 44, 24,SYM,SYM,SYM, 24, 19,140,SYM,141,142,143,144, /* BX */ - 41, 36, 39,145, 34, 25,146,147, 37, 32, 46,148,149, 43,150,151, /* CX */ - 26, 47,152, 42,153,154, 31,155,156,157,158,159, 33,160,161,162, /* DX */ - 41, 36, 39,163, 34, 25,164,165, 37, 32, 46,166,167, 43,168,169, /* EX */ - 26, 47,170, 42,171,172, 31,173,174,175,176,177, 33,178,179,180, /* FX */ + SYM,128,129, 53,SYM,SYM, 22,SYM, 22,SYM, 52,SYM,130,SYM,131, 41, /* AX */ + SYM,SYM, 20, 53, 25,SYM,SYM,SYM, 25, 20, 52,SYM,132,133,134, 41, /* BX */ + 135, 39, 37,136, 36, 24, 49, 44, 35, 31,137,138,139,140,141,142, /* CX */ + 26,143,144, 38,145, 51, 32,146,147,148, 42,149, 33,150,151, 45, /* DX */ + 152, 39, 37,153, 36, 24, 49, 44, 35, 31,154,155,156,157,158,159, /* EX */ + 26,160,161, 38,162, 51, 32,163,164,165, 42,166, 33,167,168,169, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM,181,182, 24,183, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM,184,185, 24,186, /* 9X */ - SYM,SYM,SYM, 44,SYM,187,SYM,SYM,SYM,SYM,188,SYM,SYM,SYM,SYM,189, /* AX */ - SYM,SYM,SYM, 44,SYM,SYM,SYM,SYM,SYM,190,191,SYM,192,SYM,193,194, /* BX */ - 195, 36, 39,196, 34,197, 25,198, 19, 32,199,200,201, 43,202,203, /* CX */ - 26, 47,204, 42,205,206, 31,SYM,207,208,209,210, 33,211,212,213, /* DX */ - 214, 36, 39,215, 34,216, 25,217, 19, 32,218,219,220, 43,221,222, /* EX */ - 26, 47,223, 42,224,225, 31,SYM,226,227,228,229, 33,230,231,SYM, /* FX */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM,170,171, 25,172, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM,173,174, 25,175, /* 9X */ + SYM,SYM,SYM, 53,SYM,176,SYM,SYM,SYM,SYM, 40,SYM,SYM,SYM,SYM, 41, /* AX */ + SYM,SYM,SYM, 53,SYM,SYM,SYM,SYM,SYM,177, 40,SYM,178,SYM,179, 41, /* BX */ + 180, 39, 37,181, 36,182, 24, 44, 20, 31,183,184,185,186,187,188, /* CX */ + 26,189,190, 38,191, 51, 32,SYM,192, 50, 42,193, 33,194,195, 45, /* DX */ + 196, 39, 37,197, 36,198, 24, 44, 20, 31,199,200,201,202,203,204, /* EX */ + 26,205,206, 38,207, 51, 32,SYM,208, 50, 42,209, 33,210,211,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,17 +152,17 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 232, 33, 32, 39, 34,233, 25,234, 44,235,236,237,238,239, 34, 25, /* 8X */ - 32,240,241,242, 31,243,244,245,246, 31, 33,247,248, 44,SYM, 19, /* 9X */ - 36, 43, 42,249,249,249, 24, 24,249,249,SYM,249, 19,249,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 36, 39,249,249,SYM,SYM,SYM,SYM,249,249,SYM, /* BX */ - SYM,SYM,SYM,SYM,SYM,SYM,249,249,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 26, 26,249,249,249,249, 43,249,249,SYM,SYM,SYM,SYM,249,249,SYM, /* DX */ - 42,249,249, 47, 47,249, 22, 22,249,249,249,249,249,249,249,SYM, /* EX */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 44, 33, 31, 37, 36, 50, 24, 44, 53,212, 51, 51,213,214, 36, 24, /* 8X */ + 31,215,216,217, 32,218,219,220,221, 32, 33,222,223, 53,SYM, 20, /* 9X */ + 39,224, 38, 42,225,226, 25, 25,227,228,SYM,229, 20, 40,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 39, 37,230, 40,SYM,SYM,SYM,SYM, 41, 41,SYM, /* BX */ + SYM,SYM,SYM,SYM,SYM,SYM,231,232,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ + 26, 26,233,234,235,236,237,238,239,SYM,SYM,SYM,SYM,240, 50,SYM, /* DX */ + 38, 45,241,242,243,244, 22, 22,245, 42,246,247,248,249,249,SYM, /* EX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,249,249,249,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -173,76 +173,76 @@ static const unsigned char Mac_Centraleurope_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 4X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 20, 14, 2, 23, 17, 21, 1, 7, 11, 10, 12, 4, 3, /* 6X */ - 15, 30, 5, 8, 6, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 34, 38, 38, 32,249, 31, 33, 36,249, 19, 34, 19, 25, 25, 32,249, /* 8X */ - 249,249, 43,249, 48, 48,249, 42,249,249, 31,249,249,249,249, 33, /* 9X */ - SYM,SYM,249,SYM,SYM,SYM,SYM,249,SYM,SYM,SYM,249,SYM,SYM,249,249, /* AX */ - 249, 49,SYM,SYM, 49,249,SYM,SYM, 44,249,249,249,249,249,249,249, /* BX */ - 249, 47,SYM,SYM, 47,249,SYM,SYM,SYM,SYM,SYM,249,249,249,249, 45, /* CX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 45,249,249,249,SYM,SYM,249,249, /* DX */ - 249, 22,SYM,SYM, 22,249,249, 36,249,249, 43, 24, 24,249, 42,249, /* EX */ - 249,249,249,249,249,249,249,249,249,249,249,249, 44,249,249,SYM, /* FX */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 4X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 19, 14, 2, 23, 17, 21, 1, 6, 10, 11, 12, 4, 3, /* 6X */ + 15, 30, 5, 8, 7, 9, 13, 28, 29, 27, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 36,249,249, 31,249, 32, 33, 39,249, 20, 36, 20, 24, 24, 31,249, /* 8X */ + 249,249,249,249, 46, 46,249, 38,249,249, 32,249, 42,249,249, 33, /* 9X */ + SYM,SYM,249,SYM,SYM,SYM,SYM, 45,SYM,SYM,SYM,249,SYM,SYM,249,249, /* AX */ + 249, 47,SYM,SYM, 47,249,SYM,SYM, 53,249,249,249,249,249,249,249, /* BX */ + 249,249,SYM,SYM,249,249,SYM,SYM,SYM,SYM,SYM,249, 51,249, 51, 43, /* CX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 43,249,249,249,SYM,SYM,249,249, /* DX */ + 249, 22,SYM,SYM, 22,249,249, 39,249,249,249, 25, 25, 48, 38,249, /* EX */ + 48, 50, 42, 50,249,249,249,249,249,249,249, 41, 53, 41,249,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 62; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 18, 67, 20, 68, 14, 69, 2, 70, 23, 71, 17, 72, 21, - 73, 1, 74, 7, 75, 11, 76, 10, 77, 12, 78, 4, 79, 3, 80, 15, - 81, 30, 82, 5, 83, 8, 84, 6, 85, 9, 86, 13, 87, 28, 88, 29, - 89, 27, 90, 16, 97, 0, 98, 18, 99, 20, 100, 14, 101, 2,102, 23, - 103, 17, 104, 21, 105, 1, 106, 7, 107, 11, 108, 10, 109, 12,110, 4, - 111, 3, 112, 15, 113, 30, 114, 5, 115, 8, 116, 6, 117, 9,118, 13, - 119, 28, 120, 29, 121, 27, 122, 16, 262, 25, 263, 25, 268, 19,269, 19, - 272, 26, 273, 26, 352, 22, 353, 22, 381, 24, 382, 24, + 65, 0, 66, 18, 67, 19, 68, 14, 69, 2, 70, 23, 71, 17, 72, 21, + 73, 1, 74, 6, 75, 10, 76, 11, 77, 12, 78, 4, 79, 3, 80, 15, + 81, 30, 82, 5, 83, 8, 84, 7, 85, 9, 86, 13, 87, 28, 88, 29, + 89, 27, 90, 16, 97, 0, 98, 18, 99, 19, 100, 14, 101, 2,102, 23, + 103, 17, 104, 21, 105, 1, 106, 6, 107, 10, 108, 11, 109, 12,110, 4, + 111, 3, 112, 15, 113, 30, 114, 5, 115, 8, 116, 7, 117, 9,118, 13, + 119, 28, 120, 29, 121, 27, 122, 16, 262, 24, 263, 24, 268, 20,269, 20, + 272, 26, 273, 26, 352, 22, 353, 22, 381, 25, 382, 25, }; /* Model Table: - * Total considered sequences: 809 / 961 - * - Positive sequences: first 410 (0.9950584932401488) - * - Probable sequences: next 135 (545-410) (0.0039469726326971655) - * - Neutral sequences: last 416 (0.000994534127154001) - * - Negative sequences: 152 (off-ratio) + * Total considered sequences: 814 / 961 + * - Positive sequences: first 402 (0.9950352500193897) + * - Probable sequences: next 120 (522-402) (0.003975137961536701) + * - Neutral sequences: last 439 (0.0009896120190735491) + * - Negative sequences: 147 (off-ratio) * Negative sequences: TODO */ static const PRUint8 CroatianLangModel[] = { - 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,2,1, - 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,0, - 3,3,3,3,3,2,3,3,3,3,2,3,2,2,3,3,3,3,2,3,3,2,1,3,2,0,1,2,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,2,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,2,3,0,1,0,0,0,3,2,0,0, - 3,3,3,3,3,2,2,2,3,3,2,3,3,3,2,2,2,1,2,3,2,1,2,1,1,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,2,1,3,3,0,3,1,0,0,2,1,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,1,0,1,0, - 3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,2,2,3,0,3,2,0,3,1,0,0,2,1,2,0, - 3,3,3,3,3,3,3,2,3,3,3,1,2,3,0,2,1,2,0,2,3,2,2,1,0,1,0,2,1,0,0, - 3,3,3,3,3,3,2,3,3,3,3,2,3,1,2,3,0,2,3,1,2,2,0,2,0,1,0,1,1,0,0, - 3,3,3,3,3,3,1,3,3,3,3,2,0,0,2,1,0,1,1,2,2,0,2,1,0,0,0,2,0,1,0, - 3,3,3,3,3,3,2,3,3,3,3,0,3,3,2,2,2,3,3,1,1,2,0,1,3,0,0,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,1,1,2,1,1,1,2,3,3,1,1,0,3,0,1,0,1,0, - 3,3,3,3,3,3,1,2,1,3,3,0,3,3,3,0,1,3,3,0,1,2,0,0,0,0,0,1,1,0,0, - 3,3,3,3,3,3,2,1,2,3,3,1,2,1,3,1,2,2,1,0,1,2,0,1,0,0,0,2,1,0,0, - 3,3,3,3,3,3,1,3,1,3,3,0,1,1,2,0,3,0,1,0,1,1,0,2,0,0,0,2,0,0,1, - 3,3,3,3,3,0,0,3,0,3,3,3,1,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,3,3,3,2,3,3,3,2,2,3,1,1,0,1,0,2,3,0,1,0,0,0,1,0,0,2, - 3,3,3,3,3,3,3,1,2,3,3,1,2,3,1,0,2,2,3,0,2,2,0,1,0,0,0,2,1,1,0, - 3,3,3,2,3,1,3,0,0,3,3,3,1,3,0,2,0,0,0,2,1,0,0,0,0,3,0,0,0,0,0, - 3,3,3,3,2,3,2,1,2,3,3,1,1,0,0,1,0,1,1,0,1,0,0,2,0,0,0,0,0,0,1, - 3,3,3,2,3,0,0,2,0,3,1,0,0,1,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0, - 3,3,3,3,3,0,0,1,0,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, - 3,3,3,1,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, - 2,2,2,2,1,2,1,2,3,2,3,1,1,0,1,1,1,1,1,0,2,0,0,0,0,0,0,0,0,0,1, - 3,3,3,2,2,1,2,1,2,2,1,1,1,1,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,0,1, - 2,2,1,0,1,1,1,0,0,1,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,3,1,0, - 0,2,0,0,0,1,0,0,0,2,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,1, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,1,2,1, + 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,0, + 3,3,3,3,2,2,3,3,3,3,3,2,2,3,3,3,3,3,2,3,3,2,1,3,0,2,1,1,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,2,2,0,1, + 3,3,3,3,3,2,2,2,3,3,3,2,3,3,3,3,2,1,3,2,3,1,2,1,1,1,0,0,0,1,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,2,1,2,0,3,0,2,0,0,0,3,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,2,3,1,3,0,3,0,0,0,1,1,0,2, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,1,0,1,0, + 3,3,3,3,3,3,2,3,3,3,0,3,3,3,1,1,1,3,0,3,1,2,3,1,1,0,0,1,2,0,0, + 3,3,3,3,3,1,3,3,3,3,3,3,3,2,2,2,2,2,2,2,0,1,0,3,0,1,0,2,1,1,0, + 3,3,3,3,3,3,3,1,3,3,2,3,3,1,2,3,0,2,3,2,2,2,0,2,1,0,0,1,2,0,0, + 3,3,3,3,3,3,3,1,2,3,2,3,1,1,2,0,0,1,1,3,2,1,2,1,0,0,1,1,0,0,0, + 3,3,3,3,3,3,3,2,3,3,1,3,3,3,1,1,2,3,3,1,0,2,1,1,0,3,0,1,2,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,2,1,0,1,3,2,3,2,1,3,0,0,1,1,1,0, + 3,3,3,3,3,3,2,0,1,3,1,3,3,3,3,0,1,3,3,0,0,1,0,0,0,1,0,0,1,0,0, + 3,3,3,3,3,3,0,1,2,3,1,3,2,1,3,1,1,2,1,1,0,3,0,1,0,0,0,1,1,1,0, + 3,3,3,3,3,3,3,1,1,3,0,3,0,1,2,1,3,0,2,1,0,0,0,1,0,0,0,1,1,1,0, + 3,3,3,3,2,3,2,2,2,3,3,3,2,1,3,1,1,1,1,2,0,3,0,1,0,0,0,1,0,1,1, + 3,3,3,2,3,0,3,0,0,3,3,3,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,0,3,2,3,1,3,2,3,1,1,2,1,2,2,0,0,1,2,0,0,1,2,1,1,0, + 3,3,3,2,3,1,1,3,0,3,3,3,1,2,0,2,0,0,0,1,2,0,0,0,3,0,0,0,0,0,0, + 3,3,3,3,2,3,1,3,2,3,1,3,1,1,1,1,0,2,1,1,0,1,0,2,0,0,0,0,1,1,0, + 3,3,3,3,3,0,1,1,0,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,2,3,1,2,0,0,3,0,2,1,0,2,0,0,0,3,1,0,0,0,0,0,0,1,0,0,0,0, + 3,3,3,1,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,2,2,1,1,2,1,3,1,1,3,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, + 2,3,2,2,1,1,1,3,1,1,1,1,1,1,1,1,0,0,1,0,0,2,0,1,0,0,0,1,2,0,0, + 1,2,1,0,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0, + 0,1,0,0,0,2,0,1,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, }; @@ -251,7 +251,7 @@ const SequenceModel Iso_8859_2CroatianModel = Iso_8859_2_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "ISO-8859-2", "hr" @@ -262,7 +262,7 @@ const SequenceModel Iso_8859_13CroatianModel = Iso_8859_13_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "ISO-8859-13", "hr" @@ -273,7 +273,7 @@ const SequenceModel Iso_8859_16CroatianModel = Iso_8859_16_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "ISO-8859-16", "hr" @@ -284,7 +284,7 @@ const SequenceModel Windows_1250CroatianModel = Windows_1250_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "WINDOWS-1250", "hr" @@ -295,7 +295,7 @@ const SequenceModel Ibm852CroatianModel = Ibm852_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "IBM852", "hr" @@ -306,7 +306,7 @@ const SequenceModel Mac_CentraleuropeCroatianModel = Mac_Centraleurope_CharToOrderMap, CroatianLangModel, 31, - (float)0.999005465872846, + (float)0.9990103879809265, PR_TRUE, "MAC-CENTRALEUROPE", "hr" @@ -319,8 +319,8 @@ const LanguageModel CroatianModel = 62, CroatianLangModel, 31, - 4, - (float)0.3895378997873738, - 19, - (float)0.039852386200447516, + 5, + (float)0.4525866540568839, + 20, + (float)0.0303664155164663, }; diff --git a/src/LangModels/LangCzechModel.cpp b/src/LangModels/LangCzechModel.cpp index c2f49ff..caaab7e 100644 --- a/src/LangModels/LangCzechModel.cpp +++ b/src/LangModels/LangCzechModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:07:45.113195 + * On: 2022-12-14 20:34:20.075982 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 4X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 6X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 4X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 6X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 65,SYM, 46,SYM, 51, 54,SYM,SYM, 29, 61, 38, 70,SYM, 28, 58, /* AX */ - SYM, 65,SYM, 46,SYM, 51, 54,SYM,SYM, 29, 61, 38, 71,SYM, 28, 58, /* BX */ - 72, 18, 73, 50, 43, 74, 47, 45, 27, 24, 60, 57, 23, 15, 56, 39, /* CX */ - 59, 55, 36, 37, 48, 66, 41,SYM, 25, 32, 33, 64, 42, 26, 69, 52, /* DX */ - 75, 18, 76, 50, 43, 77, 47, 45, 27, 24, 60, 57, 23, 15, 56, 39, /* EX */ - 59, 55, 36, 37, 48, 66, 41,SYM, 25, 32, 33, 64, 42, 26, 69,SYM, /* FX */ + SYM, 70,SYM, 48,SYM, 54, 51,SYM,SYM, 29, 71, 37, 72,SYM, 28, 66, /* AX */ + SYM, 70,SYM, 48,SYM, 54, 51,SYM,SYM, 29, 71, 37, 73,SYM, 28, 66, /* BX */ + 74, 19, 62, 61, 43, 75, 49, 45, 26, 24, 60, 63, 23, 14, 58, 39, /* CX */ + 76, 50, 36, 38, 47, 64, 42,SYM, 25, 31, 33, 68, 41, 27, 77, 56, /* DX */ + 78, 19, 62, 61, 43, 79, 49, 45, 26, 24, 60, 63, 23, 14, 58, 39, /* EX */ + 80, 50, 36, 38, 47, 64, 42,SYM, 25, 31, 33, 68, 41, 27, 81,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 4X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 6X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 29,SYM, 54, 38, 28, 78, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 29,SYM, 54, 38, 28, 79, /* 9X */ - SYM,SYM,SYM, 46,SYM, 65,SYM,SYM,SYM,SYM, 61,SYM,SYM,SYM,SYM, 58, /* AX */ - SYM,SYM,SYM, 46,SYM,SYM,SYM,SYM,SYM, 65, 61,SYM, 51,SYM, 51, 58, /* BX */ - 80, 18, 81, 50, 43, 82, 47, 45, 27, 24, 60, 57, 23, 15, 56, 39, /* CX */ - 59, 55, 36, 37, 48, 66, 41,SYM, 25, 32, 33, 64, 42, 26, 69, 52, /* DX */ - 83, 18, 84, 50, 43, 85, 47, 45, 27, 24, 60, 57, 23, 15, 56, 39, /* EX */ - 59, 55, 36, 37, 48, 66, 41,SYM, 25, 32, 33, 64, 42, 26, 69,SYM, /* FX */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 4X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 6X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 29,SYM, 51, 37, 28, 82, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 29,SYM, 51, 37, 28, 83, /* 9X */ + SYM,SYM,SYM, 48,SYM, 70,SYM,SYM,SYM,SYM, 71,SYM,SYM,SYM,SYM, 66, /* AX */ + SYM,SYM,SYM, 48,SYM,SYM,SYM,SYM,SYM, 70, 71,SYM, 54,SYM, 54, 66, /* BX */ + 84, 19, 62, 61, 43, 85, 49, 45, 26, 24, 60, 63, 23, 14, 58, 39, /* CX */ + 86, 50, 36, 38, 47, 64, 42,SYM, 25, 31, 33, 68, 41, 27, 87, 56, /* DX */ + 88, 19, 62, 61, 43, 89, 49, 45, 26, 24, 60, 63, 23, 14, 58, 39, /* EX */ + 90, 50, 36, 38, 47, 64, 42,SYM, 25, 31, 33, 68, 41, 27, 91,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 4X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 6X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 45, 42, 24, 86, 43, 32, 47, 45, 46, 57, 66, 66, 56, 87, 43, 47, /* 8X */ - 24, 88, 89, 48, 41, 51, 51, 54, 54, 41, 42, 38, 38, 46,SYM, 27, /* 9X */ - 18, 15, 37, 33, 65, 65, 28, 28, 60, 60,SYM, 90, 27, 61,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 18, 91, 23, 61,SYM,SYM,SYM,SYM, 58, 58,SYM, /* BX */ - SYM,SYM,SYM,SYM,SYM,SYM, 50, 50,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 59, 59, 39, 57, 39, 36, 15, 56, 23,SYM,SYM,SYM,SYM, 69, 32,SYM, /* DX */ - 37, 52, 48, 55, 55, 36, 29, 29, 92, 33, 93, 64, 26, 26, 69,SYM, /* EX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 64, 25, 25,SYM,SYM, /* FX */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 4X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 6X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 45, 41, 24, 62, 43, 31, 49, 45, 48, 63, 64, 64, 58, 92, 43, 49, /* 8X */ + 24, 93, 94, 47, 42, 54, 54, 51, 51, 42, 41, 37, 37, 48,SYM, 26, /* 9X */ + 19, 14, 38, 33, 70, 70, 28, 28, 60, 60,SYM, 95, 26, 71,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 19, 62, 23, 71,SYM,SYM,SYM,SYM, 66, 66,SYM, /* BX */ + SYM,SYM,SYM,SYM,SYM,SYM, 61, 61,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ + 96, 97, 39, 63, 39, 36, 14, 58, 23,SYM,SYM,SYM,SYM, 98, 31,SYM, /* DX */ + 38, 56, 47, 50, 50, 36, 29, 29, 99, 33,100, 68, 27, 27,101,SYM, /* EX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 68, 25, 25,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,129 +131,129 @@ static const unsigned char Mac_Centraleurope_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 4X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 22, 16, 14, 1, 31, 30, 17, 5, 21, 10, 9, 11, 3, 0, /* 6X */ - 13, 40, 7, 6, 4, 12, 8, 35, 34, 20, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 43, 44, 44, 24, 65, 41, 42, 18, 65, 27, 43, 27, 47, 47, 24, 94, /* 8X */ - 95, 39, 15, 39, 63, 63, 53, 37, 53, 48, 41, 67, 33, 23, 23, 42, /* 9X */ - SYM,SYM, 60,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM, 60,SYM,SYM, 96, 97, /* AX */ - 98, 49,SYM,SYM, 49, 99,SYM,SYM, 46,100,101, 51, 51,102,103,104, /* BX */ - 105, 55,SYM,SYM, 55, 36,SYM,SYM,SYM,SYM,SYM, 36, 66, 67, 66, 62, /* CX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 62,106,107, 25,SYM,SYM, 25,108, /* DX */ - 109, 29,SYM,SYM, 29, 54, 54, 18, 38, 38, 15, 28, 28, 68, 37, 48, /* EX */ - 68, 32, 33, 32, 64, 64,110,111, 26, 26,112, 58, 46, 58,113,SYM, /* FX */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 4X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 22, 16, 13, 1, 32, 30, 17, 5, 20, 9, 10, 15, 3, 0, /* 6X */ + 12, 40, 8, 6, 4, 11, 7, 35, 34, 21, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 43, 44, 44, 24, 70, 42, 41, 19, 70, 26, 43, 26, 49, 49, 24,102, /* 8X */ + 103, 39, 14, 39, 46, 46, 65, 38, 65, 47, 42, 59, 33, 23, 23, 41, /* 9X */ + SYM,SYM, 60,SYM,SYM,SYM,SYM, 56,SYM,SYM,SYM, 60,SYM,SYM,104,105, /* AX */ + 106, 52,SYM,SYM, 52, 67,SYM,SYM, 48, 55, 55, 54, 54,107,108, 53, /* BX */ + 53, 50,SYM,SYM, 50, 36,SYM,SYM,SYM,SYM,SYM, 36, 64, 59, 64, 57, /* CX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 57,109,110, 25,SYM,SYM, 25,111, /* DX */ + 112, 29,SYM,SYM, 29, 51, 51, 19, 37, 37, 14, 28, 28, 69, 38, 47, /* EX */ + 69, 31, 33, 31, 68, 68,113,114, 27, 27, 67, 66, 48, 66,115,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 82; static const unsigned int Unicode_CharOrder[] = { - 65, 2, 66, 22, 67, 16, 68, 14, 69, 1, 70, 31, 71, 30, 72, 17, - 73, 5, 74, 21, 75, 10, 76, 9, 77, 11, 78, 3, 79, 0, 80, 13, - 81, 40, 82, 7, 83, 6, 84, 4, 85, 12, 86, 8, 87, 35, 88, 34, - 89, 20, 90, 19, 97, 2, 98, 22, 99, 16, 100, 14, 101, 1,102, 31, - 103, 30, 104, 17, 105, 5, 106, 21, 107, 10, 108, 9, 109, 11,110, 3, - 111, 0, 112, 13, 113, 40, 114, 7, 115, 6, 116, 4, 117, 12,118, 8, - 119, 35, 120, 34, 121, 20, 122, 19, 193, 18, 201, 24, 205, 15,211, 37, - 218, 33, 221, 26, 225, 18, 233, 24, 237, 15, 243, 37, 250, 33,253, 26, - 268, 27, 269, 27, 270, 39, 271, 39, 282, 23, 283, 23, 327, 36,328, 36, - 344, 25, 345, 25, 352, 29, 353, 29, 356, 38, 357, 38, 366, 32,367, 32, + 65, 2, 66, 22, 67, 16, 68, 13, 69, 1, 70, 32, 71, 30, 72, 17, + 73, 5, 74, 20, 75, 9, 76, 10, 77, 15, 78, 3, 79, 0, 80, 12, + 81, 40, 82, 8, 83, 6, 84, 4, 85, 11, 86, 7, 87, 35, 88, 34, + 89, 21, 90, 18, 97, 2, 98, 22, 99, 16, 100, 13, 101, 1,102, 32, + 103, 30, 104, 17, 105, 5, 106, 20, 107, 9, 108, 10, 109, 15,110, 3, + 111, 0, 112, 12, 113, 40, 114, 8, 115, 6, 116, 4, 117, 11,118, 7, + 119, 35, 120, 34, 121, 21, 122, 18, 193, 19, 201, 24, 205, 14,211, 38, + 218, 33, 221, 27, 225, 19, 233, 24, 237, 14, 243, 38, 250, 33,253, 27, + 268, 26, 269, 26, 270, 39, 271, 39, 282, 23, 283, 23, 327, 36,328, 36, + 344, 25, 345, 25, 352, 29, 353, 29, 356, 37, 357, 37, 366, 31,367, 31, 381, 28, 382, 28, }; /* Model Table: - * Total considered sequences: 1359 / 1681 - * - Positive sequences: first 747 (0.995024712172107) - * - Probable sequences: next 199 (946-747) (0.003977666094002408) - * - Neutral sequences: last 735 (0.000997621733890619) - * - Negative sequences: 322 (off-ratio) + * Total considered sequences: 1372 / 1681 + * - Positive sequences: first 749 (0.995023909981167) + * - Probable sequences: next 205 (954-749) (0.003983584242635896) + * - Neutral sequences: last 727 (0.000992505776197139) + * - Negative sequences: 309 (off-ratio) * Negative sequences: TODO */ static const PRUint8 CzechLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,1,3, - 2,3,3,0,0,3,0,3,3,3,3,3,0,2,3,3,2,0,3,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3, - 3,3,3,0,0,3,0,3,3,3,3,3,0,2,3,3,3,0,1,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3, - 3,3,3,0,0,3,0,3,3,3,3,3,0,2,3,3,3,0,2,3,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3, - 3,2,3,3,3,0,3,3,3,3,3,3,3,1,1,2,0,3,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,1, + 3,3,3,0,1,3,3,0,3,3,3,0,3,1,3,3,2,2,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3, + 3,3,3,0,0,3,3,0,3,3,3,0,3,2,3,3,3,1,1,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,1, + 3,3,3,0,0,3,3,0,3,3,3,0,3,2,3,3,3,2,1,3,1, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3, + 2,3,3,3,3,0,3,3,3,3,3,3,3,1,2,2,0,0,2,1,1, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,2,0,3,2,2,3,1,1,3,2,2,0,0,0, + 3,3,3,3,3,3,2,3,0,3,2,3,2,1,1,2,2,0,3,0,1, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 1,3,3,0,3,3,0,3,3,3,3,3,1,2,3,2,2,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,2,3,0,3,1,2,2,0,1,2,3,3,1,0,2,2,2,2,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3, - 3,1,3,0,3,0,3,3,3,3,3,3,3,1,2,2,2,2,2,0,1, - 3,3,3,3,2,3,3,3,1,3,3,1,3,2,3,3,3,3,3,3, - 3,1,3,3,3,3,3,3,3,3,1,1,3,1,0,0,3,1,0,0,0, - 3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3, - 3,2,3,0,3,0,3,2,2,3,3,3,3,0,1,1,3,2,0,0,1, - 3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,0,3,2,3,2, - 3,1,2,0,3,3,3,3,2,1,3,1,3,1,0,1,0,3,0,0,0, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,1,3,1, - 3,2,3,3,3,2,3,2,3,1,2,2,3,1,1,1,1,2,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3, - 1,3,3,0,1,3,0,3,3,3,3,2,0,1,2,1,3,1,2,2,1, - 3,3,3,3,3,3,3,3,1,3,3,2,3,3,2,3,3,3,3,0, - 3,2,1,3,3,3,1,2,0,3,1,1,3,0,1,0,2,3,1,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,2,3,3,3,3,3,3,2,2,2,2,3,1,1,3,2,1,0,0,0, - 1,0,1,3,3,1,3,3,3,3,3,3,0,3,3,0,3,3,0,3, - 0,3,3,0,0,3,0,3,3,3,1,0,0,0,0,0,2,0,2,0,1, - 3,3,3,3,3,3,2,3,2,3,3,3,3,2,2,3,3,3,2,3, - 3,1,1,0,3,0,0,1,0,0,2,0,3,0,1,1,1,1,0,0,2, - 3,3,3,3,3,3,2,3,3,3,3,3,3,1,3,1,3,1,3,1, - 3,1,1,0,3,3,3,2,3,1,1,1,3,1,0,2,1,2,1,0,0, - 1,1,1,3,3,1,3,3,3,3,3,3,1,3,3,0,3,3,0,3, - 0,3,3,0,0,3,0,3,3,3,3,0,0,0,0,0,2,0,1,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,3,3,0,2,3,3,2,0,3,1,1,3,2,0,1,2,2,0,0,0, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,0,3,3,1,3, - 0,3,3,0,0,3,0,3,3,3,2,2,1,2,1,1,2,0,2,0,0, - 3,3,3,3,2,3,3,2,3,3,2,3,3,3,3,3,2,2,3,2, - 1,2,2,0,1,0,0,3,2,3,1,1,3,2,0,1,1,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,1,3,3,3,2,3,2, - 3,3,2,3,3,3,3,3,1,2,0,0,2,1,0,1,1,2,0,0,0, - 0,0,0,3,3,0,3,3,3,3,3,3,0,3,3,1,3,3,0,3, - 0,3,1,0,0,3,0,3,3,3,0,0,0,0,0,0,2,0,3,2,0, - 1,1,0,3,3,0,3,3,3,3,3,3,0,2,3,0,2,3,0,3, - 0,0,2,0,0,3,0,3,3,1,1,2,0,0,1,0,0,0,0,0,1, - 3,3,3,3,1,3,3,0,1,1,3,1,3,1,0,3,1,1,3,1, - 0,0,2,0,0,0,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0, - 0,0,0,2,3,0,3,3,3,2,3,3,2,2,3,0,3,3,0,3, - 0,3,3,0,0,1,0,2,2,3,0,1,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,2,3,1,3,3,1,3,1,0,3,2,0,3,1, - 0,0,3,0,0,0,0,0,0,0,0,0,2,0,0,0,1,1,0,0,0, - 3,3,3,3,2,3,3,2,1,3,3,2,3,0,3,3,2,1,3,0, - 1,0,2,0,1,0,0,0,0,3,0,0,2,0,0,0,3,1,0,2,0, - 3,3,3,3,3,3,3,2,3,3,3,1,3,3,0,3,2,0,2,0, - 1,0,1,0,1,0,0,1,0,3,0,0,1,1,0,0,1,1,3,0,0, - 3,3,3,3,3,3,2,3,2,3,2,3,3,1,2,1,2,3,3,0, - 3,1,1,1,1,1,0,0,0,1,2,1,2,1,0,1,0,1,0,0,0, - 3,3,3,2,3,3,2,3,1,3,2,2,3,1,1,1,1,0,3,0, - 3,1,1,1,3,0,2,0,0,0,2,3,1,2,0,0,0,2,0,0,0, - 0,0,0,2,2,1,3,3,3,3,3,3,0,1,3,0,2,1,0,3, - 0,3,3,0,0,2,0,2,3,1,0,1,0,1,0,0,1,0,0,0,0, - 0,0,0,3,3,1,3,3,2,2,2,3,0,3,3,0,2,2,0,3, - 0,1,2,0,0,3,0,3,2,1,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,0,1,1,1,1,1,3,3,1,1,2,1,1,0, - 3,0,0,0,1,0,0,0,0,0,0,1,2,0,2,1,0,1,0,0,0, - 3,3,3,2,2,3,2,2,1,2,1,1,2,0,1,1,1,2,1,0, - 2,1,1,1,1,0,0,0,0,0,1,1,0,0,0,3,0,0,0,0,0, - 3,0,2,0,0,0,2,0,0,0,3,1,3,0,0,0,2,1,1,0, - 0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0, - 0,1,0,3,1,0,1,3,0,2,1,1,0,0,3,0,1,1,0,3, - 0,2,1,0,0,0,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0, - 3,0,2,0,0,1,1,0,0,0,1,0,3,0,0,0,0,0,2,0, - 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, - 2,0,3,0,1,0,1,0,0,0,1,1,2,0,0,0,1,0,1,0, + 3,1,3,0,3,3,3,0,3,3,3,1,3,1,3,1,2,1,2,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3, + 2,3,3,0,3,0,3,2,0,1,2,3,3,3,0,2,2,3,1,0,2, + 3,3,3,3,2,3,3,2,3,3,3,3,2,3,3,1,3,3,3,3, + 2,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,3,0,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3, + 1,3,3,0,3,0,3,3,3,3,3,3,3,1,2,2,2,1,2,0,1, + 3,3,3,3,3,3,3,3,3,2,3,3,1,3,1,3,3,2,2,3, + 2,3,2,0,3,3,3,3,2,1,1,3,2,2,0,1,1,0,3,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3, + 2,3,3,0,3,0,2,3,2,3,3,3,3,1,0,1,3,0,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3, + 3,2,3,0,1,3,3,0,3,3,3,0,2,1,2,1,3,2,1,2,2, + 3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,2,3,3,1,3, + 2,3,1,3,3,3,2,1,0,3,1,3,1,1,1,0,2,1,2,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3, + 2,3,3,3,3,3,3,3,3,2,2,3,2,1,1,2,2,0,2,0,1, + 1,0,1,3,3,0,3,3,3,3,3,0,3,3,0,3,3,3,3,0, + 3,0,3,0,0,3,3,0,3,3,1,0,1,0,0,0,1,2,0,0,1, + 3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,1,1,3, + 2,3,3,3,3,2,2,3,3,2,2,3,2,1,1,0,0,0,1,0,0, + 3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,2, + 1,3,1,0,3,0,1,0,0,0,1,3,1,1,1,1,1,0,1,0,2, + 3,3,3,3,3,3,2,3,3,2,3,3,2,3,1,3,2,1,1,3, + 1,3,2,0,3,3,2,3,3,1,1,3,1,1,0,2,1,1,2,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3, + 3,3,3,0,2,3,2,3,0,3,1,3,1,2,0,2,2,0,2,0,0, + 1,0,0,3,3,1,3,3,3,3,3,0,3,3,0,3,3,3,3,0, + 3,0,3,0,0,3,3,0,3,3,2,0,1,0,0,0,3,1,0,1,0, + 3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,2,2,3,3, + 1,0,2,0,1,1,3,0,2,3,1,3,1,2,0,1,2,0,2,0,0, + 3,3,2,3,3,2,3,3,3,3,3,3,3,3,0,3,3,3,3,2, + 3,0,3,0,0,3,3,0,3,3,2,1,2,1,0,2,1,2,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,2,2,3, + 3,3,2,3,2,3,3,3,1,2,0,3,1,1,0,1,1,0,2,0,0, + 1,0,0,3,3,1,3,3,3,3,3,0,3,3,0,3,3,3,3,0, + 3,0,1,0,0,3,3,0,3,3,0,0,0,0,0,0,2,2,0,2,0, + 1,1,1,3,3,1,3,3,3,3,3,1,2,3,0,3,2,3,3,0, + 0,0,2,0,0,2,3,0,3,1,1,0,1,0,1,0,0,0,0,0,1, + 3,3,3,3,2,3,3,0,0,3,1,3,1,0,3,2,1,1,0,3, + 0,0,2,0,0,1,1,0,0,1,0,3,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,1,3,3,3,3,1,0,3,2,2,0,0,3, + 1,0,3,0,0,0,1,0,0,0,0,2,0,0,0,0,1,0,1,0,0, + 0,0,0,2,3,0,3,3,3,3,2,2,2,3,0,3,3,3,3,0, + 3,0,3,0,0,2,2,0,2,3,0,0,1,0,0,0,0,0,0,0,0, + 3,3,3,3,2,3,3,1,2,3,3,3,0,3,3,1,2,1,0,3, + 0,0,3,0,1,0,0,0,0,3,0,2,0,1,0,0,3,0,1,2,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,0,3,2,2,0,1,2, + 1,0,0,0,1,0,1,0,0,3,0,1,0,1,0,0,0,3,2,0,0, + 3,3,3,3,3,3,2,2,3,1,3,3,1,2,1,3,1,3,1,3, + 1,3,1,0,1,1,0,0,0,0,3,2,1,1,0,1,0,0,1,0,0, + 0,1,0,2,2,0,3,3,3,2,3,0,1,3,0,3,2,3,3,0, + 3,0,3,0,0,1,3,0,3,1,0,0,1,0,0,0,1,0,0,0,0, + 3,3,3,1,2,3,2,1,3,2,3,3,1,1,2,2,1,1,0,3, + 1,3,1,1,3,0,0,2,0,1,2,1,3,2,0,0,0,0,2,0,0, + 1,0,0,3,3,0,3,2,3,3,2,0,3,3,0,3,2,2,3,0, + 1,0,2,0,0,3,3,0,2,1,0,0,1,0,0,0,0,0,0,0,0, + 3,3,3,2,3,3,1,1,0,1,1,3,3,0,1,2,2,1,0,1, + 0,3,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0, + 3,3,3,2,1,3,2,0,2,0,2,2,1,1,1,1,1,2,0,0, + 0,2,1,1,0,0,0,0,0,0,1,1,1,0,0,3,0,0,0,0,0, + 3,0,2,0,0,0,2,0,0,3,0,3,0,0,0,0,1,1,0,1, + 0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, + 2,0,3,0,1,1,0,0,0,1,0,2,0,0,0,0,1,0,0,2, + 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 1,0,1,3,2,1,1,1,2,2,2,0,0,3,0,2,1,1,3,0, + 1,0,1,0,0,1,1,0,1,1,2,1,0,0,0,1,0,0,0,0,0, + 2,0,3,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,1,0,1,1,0,1,0,0,3,0,0,0,0,0,0,0, + 0,0,0,0,1,0,1,0,1,0,0,3,1,0,0,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, }; @@ -263,7 +263,7 @@ const SequenceModel Iso_8859_2CzechModel = Iso_8859_2_CharToOrderMap, CzechLangModel, 41, - (float)0.9990023782661094, + (float)0.9990074942238029, PR_TRUE, "ISO-8859-2", "cs" @@ -274,7 +274,7 @@ const SequenceModel Windows_1250CzechModel = Windows_1250_CharToOrderMap, CzechLangModel, 41, - (float)0.9990023782661094, + (float)0.9990074942238029, PR_TRUE, "WINDOWS-1250", "cs" @@ -285,7 +285,7 @@ const SequenceModel Ibm852CzechModel = Ibm852_CharToOrderMap, CzechLangModel, 41, - (float)0.9990023782661094, + (float)0.9990074942238029, PR_TRUE, "IBM852", "cs" @@ -296,7 +296,7 @@ const SequenceModel Mac_CentraleuropeCzechModel = Mac_Centraleurope_CharToOrderMap, CzechLangModel, 41, - (float)0.9990023782661094, + (float)0.9990074942238029, PR_TRUE, "MAC-CENTRALEUROPE", "cs" @@ -309,8 +309,8 @@ const LanguageModel CzechModel = 82, CzechLangModel, 41, - 6, - (float)0.39747705231553015, + 7, + (float)0.4430512060790744, 27, - (float)0.03495288022220359, + (float)0.035703314740419725, }; diff --git a/src/LangModels/LangDanishModel.cpp b/src/LangModels/LangDanishModel.cpp index 0bf9967..d60f2b9 100644 --- a/src/LangModels/LangDanishModel.cpp +++ b/src/LangModels/LangDanishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 17:54:15.598693 + * On: 2022-12-14 21:51:50.797798 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 4X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 6X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 4X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 6X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 40,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 58, 59,SYM,SYM, 60,SYM,SYM,SYM, 61, 62, 63,SYM, /* BX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 64, 39, 50, 44, /* CX */ - 35, 43, 65, 34, 46, 66, 32,SYM, 19, 67, 45, 47, 30, 54, 68, 55, /* DX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 69, 39, 50, 44, /* EX */ - 35, 43, 70, 34, 46, 71, 32,SYM, 19, 72, 45, 47, 30, 54, 73, 74, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 47,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 55, 48,SYM,SYM, 56,SYM,SYM,SYM, 57, 58, 59,SYM, /* BX */ + 42, 33, 60, 41, 32, 20, 22, 37, 34, 28, 53, 38, 61, 36, 62, 63, /* CX */ + 40, 39, 64, 35, 65, 66, 29,SYM, 19, 67, 43, 68, 31, 69, 70, 46, /* DX */ + 42, 33, 71, 41, 32, 20, 22, 37, 34, 28, 53, 38, 72, 36, 73, 74, /* EX */ + 40, 39, 75, 35, 76, 77, 29,SYM, 19, 78, 43, 79, 31, 80, 81, 82, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 4X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 6X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 4X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 6X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 75,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 76, 39, 50, 44, /* CX */ - 35, 43, 77, 34, 46, 78, 32,SYM, 19, 79, 45, 47, 30, 54, 80, 55, /* DX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 81, 39, 50, 44, /* EX */ - 35, 43, 82, 34, 46, 83, 32,SYM, 19, 84, 45, 47, 30, 54, 85, 86, /* FX */ + SYM,SYM,SYM,SYM,SYM, 48,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 42, 33, 83, 41, 32, 20, 22, 37, 34, 28, 53, 38, 84, 36, 85, 86, /* CX */ + 40, 39, 87, 35, 88, 89, 29,SYM, 19, 90, 43, 91, 31, 92, 93, 46, /* DX */ + 42, 33, 94, 41, 32, 20, 22, 37, 34, 28, 53, 38, 95, 36, 96, 97, /* EX */ + 40, 39, 98, 35, 99,100, 29,SYM, 19,101, 43,102, 31,103,104,105, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 4X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 6X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 87,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 88,ILL, 89,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 90,ILL, 91, 92, /* 9X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 4X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 6X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,106,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM,107,ILL,108,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM,109,ILL,110,111, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 93,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 94, 39, 50, 44, /* CX */ - 35, 43, 95, 34, 46, 96, 32,SYM, 19, 97, 45, 47, 30, 54, 98, 55, /* DX */ - 42, 33, 37, 57, 31, 21, 23, 38, 36, 28, 41, 49, 99, 39, 50, 44, /* EX */ - 35, 43,100, 34, 46,101, 32,SYM, 19,102, 45, 47, 30, 54,103,104, /* FX */ + SYM,SYM,SYM,SYM,SYM, 48,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 42, 33,112, 41, 32, 20, 22, 37, 34, 28, 53, 38,113, 36,114,115, /* CX */ + 40, 39,116, 35,117,118, 29,SYM, 19,119, 43,120, 31,121,122, 46, /* DX */ + 42, 33,123, 41, 32, 20, 22, 37, 34, 28, 53, 38,124, 36,125,126, /* EX */ + 40, 39,127, 35,128,129, 29,SYM, 19,130, 43,131, 31,132,133,134, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,75 +131,76 @@ static const unsigned char Ibm865_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 4X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 4, 16, 22, 7, 0, 13, 10, 18, 5, 24, 11, 8, 12, 2, 9, /* 6X */ - 17, 29, 1, 6, 3, 15, 14, 25, 27, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 38, 30, 28, 37, 31, 42, 21, 38, 41, 49, 36, 44, 50,105, 31, 21, /* 8X */ - 28, 23, 23, 46, 32,106, 47,107,108, 32, 30, 19,SYM, 19,SYM,SYM, /* 9X */ - 33, 39, 34, 45, 43, 43,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 4X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 16, 23, 7, 0, 13, 10, 17, 6, 24, 12, 9, 11, 2, 8, /* 6X */ + 18, 30, 1, 4, 3, 15, 14, 25, 26, 21, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 37, 31, 28,135, 32, 42, 20, 37, 53, 38, 34,136,137,138, 32, 20, /* 8X */ + 28, 22, 22,139, 29,140,141,142,143, 29, 31, 19,SYM, 19,SYM,SYM, /* 9X */ + 33, 36, 35, 43, 39, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* DX */ - 52, 55,109, 51, 48, 48,110,111, 53,112,113,114,115, 53, 56,SYM, /* EX */ + 44, 46,144, 54, 51, 51, 48, 52, 50,145,146, 49,147, 50, 45,SYM, /* EX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 60; +static const int Unicode_Char_size = 62; static const unsigned int Unicode_CharOrder[] = { - 65, 4, 66, 16, 67, 22, 68, 7, 69, 0, 70, 13, 71, 10, 72, 18, - 73, 5, 74, 24, 75, 11, 76, 8, 77, 12, 78, 2, 79, 9, 80, 17, - 81, 29, 82, 1, 83, 6, 84, 3, 85, 15, 86, 14, 87, 25, 88, 27, - 89, 20, 90, 26, 97, 4, 98, 16, 99, 22, 100, 7, 101, 0,102, 13, - 103, 10, 104, 18, 105, 5, 106, 24, 107, 11, 108, 8, 109, 12,110, 2, - 111, 9, 112, 17, 113, 29, 114, 1, 115, 6, 116, 3, 117, 15,118, 14, - 119, 25, 120, 27, 121, 20, 122, 26, 197, 21, 198, 23, 201, 28,216, 19, - 229, 21, 230, 23, 233, 28, 248, 19, + 65, 5, 66, 16, 67, 23, 68, 7, 69, 0, 70, 13, 71, 10, 72, 17, + 73, 6, 74, 24, 75, 12, 76, 9, 77, 11, 78, 2, 79, 8, 80, 18, + 81, 30, 82, 1, 83, 4, 84, 3, 85, 15, 86, 14, 87, 25, 88, 26, + 89, 21, 90, 27, 97, 5, 98, 16, 99, 23, 100, 7, 101, 0,102, 13, + 103, 10, 104, 17, 105, 6, 106, 24, 107, 12, 108, 9, 109, 11,110, 2, + 111, 8, 112, 18, 113, 30, 114, 1, 115, 4, 116, 3, 117, 15,118, 14, + 119, 25, 120, 26, 121, 21, 122, 27, 197, 20, 198, 22, 201, 28,214, 29, + 216, 19, 229, 20, 230, 22, 233, 28, 246, 29, 248, 19, }; /* Model Table: - * Total considered sequences: 1014 / 900 - * - Positive sequences: first 503 (0.9950476836368553) - * - Probable sequences: next 175 (678-503) (0.003954982568821541) - * - Neutral sequences: last 222 (0.0009973337943232075) - * - Negative sequences: -114 (off-ratio) + * Total considered sequences: 925 / 961 + * - Positive sequences: first 485 (0.9950259492446578) + * - Probable sequences: next 131 (616-485) (0.003975741174389147) + * - Neutral sequences: last 345 (0.0009983095809530385) + * - Negative sequences: 36 (off-ratio) * Negative sequences: TODO */ static const PRUint8 DanishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,2,3,3,2,3,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2, - 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,0,3,1,3,3,3,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,2,3,2,3,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,0,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,0,2,1, - 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,2,0,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,0,3,3,3,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,3,2,1,0,1,0, - 3,3,3,3,3,3,3,2,3,3,2,3,3,2,3,3,2,2,3,3,3,3,2,3,3,2,2,1,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,0,2,0,2,3,1, - 3,3,3,3,3,3,3,2,3,3,3,2,2,3,2,3,2,2,3,3,3,3,2,3,3,0,0,2,2,1, - 3,3,3,3,3,3,3,3,3,3,2,2,2,2,1,3,2,1,2,3,2,3,1,3,3,0,0,0,1,0, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,1,2,0,3,1,2,1,2,2,2,1, - 3,3,3,3,3,3,3,2,3,3,1,1,2,1,2,3,3,1,2,3,3,3,2,3,3,2,0,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,3,2,2,3,2,3,1,1,1,0,1,0, - 3,3,3,3,3,3,3,2,3,3,1,1,3,1,3,3,2,1,2,3,3,3,1,3,3,3,1,1,1,0, - 3,3,3,3,1,2,3,3,3,2,3,3,3,2,3,0,3,1,1,0,2,0,1,0,3,0,0,0,0,0, - 3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,2,3,3,2,0,1,0,2,0,1,2,2,0,0,1, - 3,3,3,3,0,0,3,3,3,0,2,3,1,2,3,0,3,1,1,1,0,1,2,0,0,0,0,0,0,0, - 3,3,1,3,3,3,2,2,3,3,0,3,2,1,2,3,1,1,3,1,3,0,3,2,1,0,1,0,1,2, - 2,3,3,3,1,3,3,3,3,2,3,3,3,3,3,2,3,2,1,0,0,0,2,1,0,0,0,0,0,0, - 3,3,2,3,3,2,3,3,3,3,1,2,2,2,1,3,2,1,2,3,3,1,0,3,1,0,0,0,1,0, - 3,2,2,2,3,3,2,1,2,3,0,1,1,1,0,1,1,1,2,0,2,0,1,0,0,2,1,0,0,0, - 3,1,1,2,3,3,1,1,1,3,1,1,2,1,1,2,2,1,2,0,3,0,1,0,1,1,3,0,0,1, - 2,0,1,2,2,3,1,1,1,2,0,0,0,1,2,0,0,1,1,1,1,0,2,0,0,1,0,1,0,0, - 2,2,2,2,2,0,2,2,1,1,1,2,2,1,1,1,2,2,1,0,0,0,1,0,1,0,1,0,0,0, - 0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,1,3,3,3,3,2,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,1,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,1,2,2,1,1, + 3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,2,0,1,2, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,0,0,3,1,3,3,3,2,3,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,1,3,2,2,3,2,0,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,1,1,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,0,3,3,3,3,2,0,0,1, + 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,0,1,1,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,3,3,3,3,1,3,1,0,0,1,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,1,1,0,1,1,0, + 3,3,3,3,3,3,3,1,3,3,2,3,3,2,3,3,2,3,2,3,3,3,3,1,3,1,0,1,1,2,0, + 3,3,2,3,3,3,3,2,3,3,3,2,2,3,2,3,2,3,2,3,3,3,3,2,3,1,2,0,2,1,0, + 3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,2,2,2,2,3,2,3,1,3,0,0,0,1,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,2,3,1,0,1,1,3,1,1,2,1,0,0,0, + 3,3,3,3,3,3,3,2,3,3,1,2,1,1,1,3,3,1,1,3,3,3,3,2,3,1,0,1,0,1,1, + 3,3,3,3,3,3,3,1,3,3,2,2,2,1,3,3,1,1,1,3,3,3,3,1,3,2,1,1,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,3,2,3,2,3,1,0,1,0,1,1,0,0, + 3,3,3,3,3,0,2,3,1,3,3,3,3,2,3,1,3,1,1,0,0,2,0,0,3,0,0,0,0,0,0, + 3,3,3,3,3,0,0,3,1,3,2,1,3,2,3,0,3,1,1,1,0,0,0,1,1,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,2,3,2,3,2,0,0,0,2,1,2,0,1,0,1,0, + 2,3,3,3,3,1,3,3,2,3,3,3,3,3,3,2,3,1,2,0,0,0,0,2,0,0,0,0,0,0,0, + 3,3,1,3,2,3,3,2,3,3,1,2,3,1,1,3,1,3,1,1,0,3,3,3,0,0,0,1,1,0,1, + 3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,3,2,1,0,3,1,3,3,1,1,0,0,0,0,2,0, + 3,2,2,1,2,3,3,1,3,2,0,0,1,0,0,1,1,2,0,1,0,1,1,0,0,2,0,1,0,1,0, + 3,0,1,1,1,2,3,0,1,1,1,1,0,1,1,0,0,1,3,1,0,1,0,1,0,1,1,0,0,0,0, + 3,1,1,1,1,2,3,1,3,1,1,2,1,0,0,2,1,1,1,1,0,1,0,1,0,1,0,2,1,0,1, + 2,2,2,2,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0, + 0,2,1,2,1,0,0,1,0,2,1,1,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0, + 1,0,0,0,0,2,1,0,1,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, }; @@ -207,8 +208,8 @@ const SequenceModel Iso_8859_15DanishModel = { Iso_8859_15_CharToOrderMap, DanishLangModel, - 30, - (float)0.9990026662056768, + 31, + (float)0.999001690419047, PR_TRUE, "ISO-8859-15", "da" @@ -218,8 +219,8 @@ const SequenceModel Iso_8859_1DanishModel = { Iso_8859_1_CharToOrderMap, DanishLangModel, - 30, - (float)0.9990026662056768, + 31, + (float)0.999001690419047, PR_TRUE, "ISO-8859-1", "da" @@ -229,8 +230,8 @@ const SequenceModel Windows_1252DanishModel = { Windows_1252_CharToOrderMap, DanishLangModel, - 30, - (float)0.9990026662056768, + 31, + (float)0.999001690419047, PR_TRUE, "WINDOWS-1252", "da" @@ -240,8 +241,8 @@ const SequenceModel Ibm865DanishModel = { Ibm865_CharToOrderMap, DanishLangModel, - 30, - (float)0.9990026662056768, + 31, + (float)0.999001690419047, PR_TRUE, "IBM865", "da" @@ -251,11 +252,11 @@ const LanguageModel DanishModel = { "da", Unicode_CharOrder, - 60, + 62, DanishLangModel, - 30, - 4, - (float)0.38104323327928524, - 20, - (float)0.030308128394864135, + 31, + 5, + (float)0.44984602512589994, + 19, + (float)0.037218017605308955, }; diff --git a/src/LangModels/LangEnglishModel.cpp b/src/LangModels/LangEnglishModel.cpp index 63b70ba..682c1b8 100644 --- a/src/LangModels/LangEnglishModel.cpp +++ b/src/LangModels/LangEnglishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 17:58:33.140818 + * On: 2022-12-14 20:24:17.047100 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 18, 11, 10, 0, 15, 16, 8, 3, 23, 21, 9, 13, 4, 5, /* 4X */ - 14, 25, 7, 6, 2, 12, 20, 19, 22, 17, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 18, 11, 10, 0, 15, 16, 8, 3, 23, 21, 9, 13, 4, 5, /* 6X */ - 14, 25, 7, 6, 2, 12, 20, 19, 22, 17, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 17, 10, 11, 0, 15, 16, 9, 3, 23, 21, 8, 13, 4, 5, /* 4X */ + 14, 25, 7, 6, 2, 12, 20, 19, 22, 18, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 10, 11, 0, 15, 16, 9, 3, 23, 21, 8, 13, 4, 5, /* 6X */ + 14, 25, 7, 6, 2, 12, 20, 19, 22, 18, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM, 59,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 42, 32, 38, 37, 39, 55, 29, 30, 31, 26, 43, 46, 58, 33, 41, 49, /* CX */ - 35, 36, 53, 34, 40, 56, 27,SYM, 48, 60, 44, 52, 28, 54, 57, 47, /* DX */ - 42, 32, 38, 37, 39, 55, 29, 30, 31, 26, 43, 46, 58, 33, 41, 49, /* EX */ - 35, 36, 53, 34, 40, 56, 27,SYM, 48, 61, 44, 52, 28, 54, 57, 62, /* FX */ + 38, 28, 45, 46, 42, 56, 40, 36, 37, 27, 51, 26, 55, 30, 48, 60, /* CX */ + 44, 33, 53, 29, 52, 57, 35,SYM, 41, 49, 39, 50, 31, 47, 61, 43, /* DX */ + 38, 28, 45, 46, 42, 56, 40, 36, 37, 27, 51, 26, 55, 30, 48, 62, /* EX */ + 44, 33, 53, 29, 52, 57, 35,SYM, 41, 49, 39, 50, 31, 47, 63, 54, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,70 +89,70 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 18, 11, 10, 0, 15, 16, 8, 3, 23, 21, 9, 13, 4, 5, /* 4X */ - 14, 25, 7, 6, 2, 12, 20, 19, 22, 17, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 18, 11, 10, 0, 15, 16, 8, 3, 23, 21, 9, 13, 4, 5, /* 6X */ - 14, 25, 7, 6, 2, 12, 20, 19, 22, 17, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 63,SYM,SYM,SYM,SYM,SYM,SYM, 51,SYM, 45,ILL, 50,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 51,SYM, 45,ILL, 50, 64, /* 9X */ + SYM, 1, 17, 10, 11, 0, 15, 16, 9, 3, 23, 21, 8, 13, 4, 5, /* 4X */ + 14, 25, 7, 6, 2, 12, 20, 19, 22, 18, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 10, 11, 0, 15, 16, 9, 3, 23, 21, 8, 13, 4, 5, /* 6X */ + 14, 25, 7, 6, 2, 12, 20, 19, 22, 18, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 64,SYM,SYM,SYM,SYM,SYM,SYM, 32,SYM, 58,ILL, 34,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 32,SYM, 58,ILL, 34, 54, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM, 65,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 42, 32, 38, 37, 39, 55, 29, 30, 31, 26, 43, 46, 58, 33, 41, 49, /* CX */ - 35, 36, 53, 34, 40, 56, 27,SYM, 48, 66, 44, 52, 28, 54, 57, 47, /* DX */ - 42, 32, 38, 37, 39, 55, 29, 30, 31, 26, 43, 46, 58, 33, 41, 49, /* EX */ - 35, 36, 53, 34, 40, 56, 27,SYM, 48, 67, 44, 52, 28, 54, 57, 68, /* FX */ + 38, 28, 45, 46, 42, 56, 40, 36, 37, 27, 51, 26, 55, 30, 48, 66, /* CX */ + 44, 33, 53, 29, 52, 57, 35,SYM, 41, 49, 39, 50, 31, 47, 67, 43, /* DX */ + 38, 28, 45, 46, 42, 56, 40, 36, 37, 27, 51, 26, 55, 30, 48, 68, /* EX */ + 44, 33, 53, 29, 52, 57, 35,SYM, 41, 49, 39, 50, 31, 47, 69, 54, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 52; static const unsigned int Unicode_CharOrder[] = { - 65, 1, 66, 18, 67, 11, 68, 10, 69, 0, 70, 15, 71, 16, 72, 8, - 73, 3, 74, 23, 75, 21, 76, 9, 77, 13, 78, 4, 79, 5, 80, 14, + 65, 1, 66, 17, 67, 10, 68, 11, 69, 0, 70, 15, 71, 16, 72, 9, + 73, 3, 74, 23, 75, 21, 76, 8, 77, 13, 78, 4, 79, 5, 80, 14, 81, 25, 82, 7, 83, 6, 84, 2, 85, 12, 86, 20, 87, 19, 88, 22, - 89, 17, 90, 24, 97, 1, 98, 18, 99, 11, 100, 10, 101, 0,102, 15, - 103, 16, 104, 8, 105, 3, 106, 23, 107, 21, 108, 9, 109, 13,110, 4, + 89, 18, 90, 24, 97, 1, 98, 17, 99, 10, 100, 11, 101, 0,102, 15, + 103, 16, 104, 9, 105, 3, 106, 23, 107, 21, 108, 8, 109, 13,110, 4, 111, 5, 112, 14, 113, 25, 114, 7, 115, 6, 116, 2, 117, 12,118, 20, - 119, 19, 120, 22, 121, 17, 122, 24, + 119, 19, 120, 22, 121, 18, 122, 24, }; /* Model Table: - * Total considered sequences: 1047 / 676 - * - Positive sequences: first 377 (0.9950075198967843) - * - Probable sequences: next 160 (537-377) (0.003999516176216855) - * - Neutral sequences: last 139 (0.00099296392699888) - * - Negative sequences: -371 (off-ratio) + * Total considered sequences: 972 / 676 + * - Positive sequences: first 373 (0.9950190506759622) + * - Probable sequences: next 160 (533-373) (0.003986976910237083) + * - Neutral sequences: last 143 (0.0009939724138007255) + * - Negative sequences: -296 (off-ratio) * Negative sequences: TODO */ static const PRUint8 EnglishLangModel[] = { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,2,3,2,3,2,2,0,1,2,1, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,1,3,3,3,2,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,2,2,2,2, + 3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,3,3,3,2,2,2,1,3,1, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,2,3,3,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,0,1,2,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,2, - 3,3,3,3,3,3,3,3,1,3,2,2,3,3,2,2,1,3,2,3,1,2,0,0,1,1, - 3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,1, - 3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,1,0,2,2,2, - 3,3,3,3,2,3,3,3,3,3,2,3,3,2,2,2,1,3,2,1,0,3,0,0,2,2, - 3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,2,3,1,2,3,2,1,2,2, - 3,3,2,3,3,3,3,2,2,2,2,2,3,3,3,2,1,3,3,2,1,1,0,1,1,0, - 3,3,3,3,1,3,3,3,3,3,2,2,3,3,3,2,2,3,2,1,1,2,1,1,1,1, - 3,3,3,3,1,3,3,3,1,3,1,2,3,1,1,3,2,3,1,1,0,1,1,1,0,0, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,1,3,3,2,2,1,1,1,1,1,0, - 3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,2,2,2,2,2,1,2,1,1,2,0, - 3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,1,2,3,3,1,1,1,1,3,0,1, - 3,3,3,3,3,3,3,3,3,3,2,2,1,1,2,2,1,2,2,2,0,2,0,0,0,0, - 3,3,1,3,1,3,2,2,1,2,1,0,2,1,1,1,1,2,1,0,1,1,0,0,1,0, - 3,3,2,3,3,3,3,3,3,3,1,2,3,3,2,1,2,3,1,2,1,2,0,1,1,0, - 3,3,3,3,1,3,1,0,2,1,0,3,2,1,3,3,0,2,1,1,2,0,1,0,0,0, - 3,3,0,2,1,3,1,2,1,1,1,1,3,0,0,0,0,1,0,0,1,1,1,1,0,0, - 3,3,1,3,2,3,2,0,2,2,1,1,2,2,1,0,1,2,2,1,1,1,0,1,2,1, - 1,2,1,2,0,0,0,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,2,3,3,3,2,3,0,1,2,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,2, + 3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,1, + 3,3,3,3,3,3,3,3,3,2,2,2,3,3,2,2,1,3,3,3,1,2,0,1,1,2, + 3,3,3,3,2,3,3,3,3,3,3,2,3,2,2,2,1,2,3,1,1,3,1,1,1,2, + 3,3,2,3,3,3,3,3,3,2,2,3,3,3,2,2,3,2,3,3,3,2,1,2,1,2, + 3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,3,2,2,3,3,2,1,2,1, + 3,3,2,3,3,3,3,2,2,1,2,1,3,3,3,2,2,3,3,1,1,1,0,2,1,0, + 3,3,3,3,2,3,3,3,3,3,2,2,3,3,3,2,2,2,3,2,1,2,1,1,1,1, + 3,3,3,3,1,3,2,3,3,1,2,2,3,2,1,3,1,1,3,2,1,1,1,1,0,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,2,3,2,1,1,1,2,1,1, + 3,3,2,3,3,3,3,3,3,2,3,2,3,3,2,2,2,3,3,1,2,1,0,3,0,1, + 3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,1,3,2,1,2,1,0,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,2,2,1,2,2,2,1,2,2,2,1,2,0,1,0,0, + 3,3,1,3,2,3,2,2,2,1,1,1,2,0,1,1,0,1,2,0,1,1,0,1,1,0, + 3,3,2,3,3,3,3,2,3,2,2,2,2,3,2,2,2,2,2,2,1,1,1,1,0,1, + 3,3,3,3,0,3,1,1,1,2,3,0,2,1,3,2,0,1,2,0,1,0,1,0,0,1, + 3,3,1,2,1,3,2,2,0,1,1,1,3,1,1,0,1,1,1,1,1,1,0,1,1,0, + 3,3,1,3,1,3,1,1,2,1,1,1,2,1,1,1,1,2,3,1,1,1,0,1,2,1, + 1,1,2,2,0,1,1,1,2,1,0,0,3,1,1,0,0,0,1,1,0,0,1,0,0,1, }; @@ -161,7 +161,7 @@ const SequenceModel Iso_8859_1EnglishModel = Iso_8859_1_CharToOrderMap, EnglishLangModel, 26, - (float)0.9990070360730011, + (float)0.9990060275861993, PR_TRUE, "ISO-8859-1", "en" @@ -172,7 +172,7 @@ const SequenceModel Windows_1252EnglishModel = Windows_1252_CharToOrderMap, EnglishLangModel, 26, - (float)0.9990070360730011, + (float)0.9990060275861993, PR_TRUE, "WINDOWS-1252", "en" @@ -185,8 +185,8 @@ const LanguageModel EnglishModel = 52, EnglishLangModel, 26, - 4, - (float)0.3710736871659752, + 5, + (float)0.4459440716504241, 18, - (float)0.037105859213141135, + (float)0.036484250633312364, }; diff --git a/src/LangModels/LangEsperantoModel.cpp b/src/LangModels/LangEsperantoModel.cpp index 8d9ea7c..f948abe 100644 --- a/src/LangModels/LangEsperantoModel.cpp +++ b/src/LangModels/LangEsperantoModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 17:59:23.880137 + * On: 2022-12-14 23:54:19.221107 **/ /* Character Mapping Table: @@ -68,75 +68,75 @@ static const unsigned char Iso_8859_3_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 18, 17, 10, 2, 19, 15, 21, 3, 11, 9, 6, 13, 4, 1, /* 4X */ - 14, 33, 5, 8, 7, 12, 16, 27, 32, 26, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 18, 17, 10, 2, 19, 15, 21, 3, 11, 9, 6, 13, 4, 1, /* 6X */ - 14, 33, 5, 8, 7, 12, 16, 27, 32, 26, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 19, 17, 10, 2, 18, 16, 20, 3, 11, 9, 6, 14, 4, 1, /* 4X */ + 13, 33, 5, 8, 7, 12, 15, 26, 30, 27, 21,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 19, 17, 10, 2, 18, 16, 20, 3, 11, 9, 6, 14, 4, 1, /* 6X */ + 13, 33, 5, 8, 7, 12, 15, 26, 30, 27, 21,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 61,SYM,SYM,SYM,ILL, 29,SYM,SYM, 62, 59, 57, 28,SYM,ILL, 48, /* AX */ - SYM, 63,SYM,SYM,SYM,SYM, 29,SYM,SYM, 46, 59, 57, 28,SYM,ILL, 48, /* BX */ - 49, 31, 41,ILL, 37, 54, 24, 44, 42, 30, 60, 55, 51, 35, 47, 53, /* CX */ - ILL, 43, 52, 34, 45, 50, 36,SYM, 22, 58, 39, 56, 38, 23, 25, 40, /* DX */ - 49, 31, 41,ILL, 37, 54, 24, 44, 42, 30, 60, 55, 51, 35, 47, 53, /* EX */ - ILL, 43, 52, 34, 45, 50, 36,SYM, 22, 58, 39, 56, 38, 23, 25,SYM, /* FX */ + SYM, 62,SYM,SYM,SYM,ILL, 29,SYM,SYM, 46, 50, 54, 28,SYM,ILL, 55, /* AX */ + SYM, 63,SYM,SYM,SYM,SYM, 29,SYM,SYM, 44, 50, 54, 28,SYM,ILL, 55, /* BX */ + 43, 32, 48,ILL, 39, 57, 24, 42, 40, 31, 45, 51, 61, 35, 53, 56, /* CX */ + ILL, 47, 52, 36, 49, 58, 37,SYM, 22, 59, 41, 60, 34, 23, 25, 38, /* DX */ + 43, 32, 48,ILL, 39, 57, 24, 42, 40, 31, 45, 51, 61, 35, 53, 56, /* EX */ + ILL, 47, 52, 36, 49, 58, 37,SYM, 22, 59, 41, 60, 34, 23, 25,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 60; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 18, 67, 17, 68, 10, 69, 2, 70, 19, 71, 15, 72, 21, - 73, 3, 74, 11, 75, 9, 76, 6, 77, 13, 78, 4, 79, 1, 80, 14, - 82, 5, 83, 8, 84, 7, 85, 12, 86, 16, 87, 27, 89, 26, 90, 20, - 97, 0, 98, 18, 99, 17, 100, 10, 101, 2, 102, 19, 103, 15,104, 21, - 105, 3, 106, 11, 107, 9, 108, 6, 109, 13, 110, 4, 111, 1,112, 14, - 114, 5, 115, 8, 116, 7, 117, 12, 118, 16, 119, 27, 121, 26,122, 20, + 65, 0, 66, 19, 67, 17, 68, 10, 69, 2, 70, 18, 71, 16, 72, 20, + 73, 3, 74, 11, 75, 9, 76, 6, 77, 14, 78, 4, 79, 1, 80, 13, + 82, 5, 83, 8, 84, 7, 85, 12, 86, 15, 87, 26, 89, 27, 90, 21, + 97, 0, 98, 19, 99, 17, 100, 10, 101, 2, 102, 18, 103, 16,104, 20, + 105, 3, 106, 11, 107, 9, 108, 6, 109, 14, 110, 4, 111, 1,112, 13, + 114, 5, 115, 8, 116, 7, 117, 12, 118, 15, 119, 26, 121, 27,122, 21, 264, 24, 265, 24, 284, 22, 285, 22, 292, 29, 293, 29, 308, 28,309, 28, 348, 25, 349, 25, 364, 23, 365, 23, }; /* Model Table: - * Total considered sequences: 1198 / 900 - * - Positive sequences: first 496 (0.9950012527506046) - * - Probable sequences: next 287 (783-496) (0.004000631822044021) - * - Neutral sequences: last 117 (0.0009981154273513981) - * - Negative sequences: -298 (off-ratio) + * Total considered sequences: 1142 / 900 + * - Positive sequences: first 480 (0.9950183309028746) + * - Probable sequences: next 266 (746-480) (0.003983484339076138) + * - Neutral sequences: last 154 (0.0009981847580492476) + * - Negative sequences: -242 (off-ratio) * Negative sequences: TODO */ static const PRUint8 EsperantoLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,2,3,3,1,1,1, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,3,1,0,2,2,3,2,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,0,0,1,2,3,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,1,3,3,3,0,1,1,2,3,2,1,0, - 3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,1,2,2,3,3,1,0,1,1,3,2,1,0, - 3,3,3,3,3,3,3,3,3,2,3,1,3,3,3,2,2,1,3,2,2,1,3,0,1,1,0,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,3,3,2,1,1,2, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,2,3,3,1,2,0,1,2,2,3,2,0,0, - 3,3,3,3,2,3,3,3,3,2,2,2,3,2,3,1,2,2,2,2,1,3,0,0,0,1,2,1,0,0, - 3,3,3,3,3,3,3,3,3,2,2,1,3,3,1,2,3,0,2,2,2,3,0,1,1,1,3,1,1,1, - 3,3,3,3,3,3,3,2,3,2,3,3,3,1,1,2,1,1,0,1,1,1,0,0,2,1,1,0,1,0, - 3,3,3,3,2,3,3,3,3,3,2,1,3,3,3,1,2,3,1,2,3,3,0,0,1,0,3,1,0,1, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,2,2,2,2,0,2,1,1,0,3,2,1,1,2, - 3,3,3,3,1,3,3,3,2,2,2,1,3,3,2,3,2,1,1,3,0,1,0,1,0,1,2,2,0,0, - 3,3,3,3,2,2,2,2,3,2,1,1,3,2,2,2,2,1,3,1,1,2,0,0,0,1,3,2,0,0, - 3,3,3,3,3,3,3,3,3,2,2,1,3,3,1,1,0,1,2,1,0,1,0,1,0,0,2,2,0,0, - 3,3,3,3,0,1,3,1,0,1,2,2,3,0,2,0,1,0,2,1,0,0,0,1,0,0,0,0,0,0, - 3,2,3,3,2,3,3,3,3,3,3,2,3,2,2,3,3,1,2,2,3,1,1,0,1,2,0,0,0,0, - 3,3,3,3,0,1,0,1,0,2,3,1,3,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,2,2,3,1,3,2,2,3,0,2,0,2,0,1,0,0,1,0,0,1,0,0,0,0,0, - 3,3,3,2,3,2,3,2,3,2,2,1,2,2,3,2,2,3,3,2,2,1,0,0,0,0,2,3,0,0, - 3,3,3,3,2,2,2,1,2,1,1,0,2,1,0,0,0,0,0,1,0,2,0,0,0,0,2,3,0,0, - 3,3,3,2,1,0,1,0,0,0,0,1,3,1,1,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0, - 3,3,3,3,2,1,2,2,0,0,0,0,2,2,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,3,3,2,2,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,2,3,2,2, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,0,2,3,2,3,1,0, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,1,0,1,1,3,3,0,1, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,0,1,2,2,2,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,0,0,1,1,2,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,2,3,3,1,0,1,1,3,3,0,0, + 3,3,3,3,3,2,3,3,3,3,2,0,3,3,3,3,1,2,2,3,1,2,1,0,1,1,3,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,1,3,3,2,2,1,1, + 3,3,3,3,2,3,3,3,3,2,3,2,3,3,2,2,1,2,2,2,3,0,0,0,2,0,0,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,1,1,0,0,1,1,1,3,1,0, + 3,3,3,3,2,3,3,2,3,2,3,3,3,1,1,1,2,0,1,1,0,2,0,0,0,0,1,2,0,0, + 3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,3,2,1,2,2,3,2,1,1,2,3,2,3,1,1, + 3,3,3,3,2,3,3,3,3,3,2,1,3,3,3,1,2,2,2,2,3,2,0,0,0,0,1,3,0,1, + 3,3,3,3,1,3,3,3,2,2,2,1,3,2,3,1,3,1,3,2,2,0,0,0,1,0,2,0,0,0, + 3,3,3,3,3,3,3,3,3,2,2,3,3,2,2,2,1,2,2,3,2,0,0,0,1,3,1,3,1,0, + 3,3,3,3,3,3,3,3,3,1,1,1,3,1,2,0,0,1,0,1,1,2,0,0,0,0,2,3,0,0, + 3,3,3,3,2,1,3,1,2,2,1,1,3,1,1,2,2,1,1,2,3,2,0,1,0,1,2,2,0,0, + 3,3,3,3,1,1,3,2,1,2,2,2,3,2,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0, + 3,2,3,3,2,3,3,3,3,3,3,1,2,2,2,3,3,0,2,2,1,3,0,0,1,1,0,0,1,0, + 3,3,3,3,1,1,1,0,2,2,3,1,3,2,2,0,0,0,1,0,0,0,0,2,0,0,0,0,0,1, + 3,3,3,3,2,2,2,3,0,2,0,2,3,2,2,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0, + 3,3,3,3,2,2,2,1,3,1,1,0,1,0,1,0,0,0,1,1,2,1,0,0,0,0,3,2,0,0, + 3,3,2,2,3,2,3,2,3,2,2,0,2,3,2,2,2,3,1,3,1,0,0,0,0,0,2,0,0,0, + 3,3,2,2,1,1,0,0,0,0,1,0,3,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0, + 3,3,2,3,2,2,1,2,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0, }; @@ -145,7 +145,7 @@ const SequenceModel Iso_8859_3EsperantoModel = Iso_8859_3_CharToOrderMap, EsperantoLangModel, 30, - (float)0.9990018845726486, + (float)0.9990018152419508, PR_FALSE, "ISO-8859-3", "eo" @@ -158,8 +158,8 @@ const LanguageModel EsperantoModel = 60, EsperantoLangModel, 30, - 3, - (float)0.31985724199464655, + 5, + (float)0.4738391266889678, 19, - (float)0.032423471354769064, + (float)0.0314751196161969, }; diff --git a/src/LangModels/LangEstonianModel.cpp b/src/LangModels/LangEstonianModel.cpp index 40184a0..da5177f 100644 --- a/src/LangModels/LangEstonianModel.cpp +++ b/src/LangModels/LangEstonianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:02:05.522096 + * On: 2022-12-14 23:54:01.496691 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_4_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 4X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 6X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 4X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 6X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 60, 61, 62,SYM, 63, 64,SYM,SYM, 28, 41, 65, 66,SYM, 30,SYM, /* AX */ - SYM, 67,SYM, 68,SYM, 69, 70,SYM,SYM, 28, 41, 71, 72, 73, 30, 74, /* BX */ - 33, 35, 46, 75, 18, 32, 47, 76, 43, 34, 77, 78, 79, 54, 80, 38, /* CX */ - 53, 81, 52, 82, 51, 19, 24,SYM, 36, 83, 84, 85, 21, 86, 39, 87, /* DX */ - 33, 35, 46, 88, 18, 32, 47, 89, 43, 34, 90, 91, 92, 54, 93, 38, /* EX */ - 53, 94, 52, 95, 51, 19, 24,SYM, 36, 96, 97, 98, 21, 99, 39,SYM, /* FX */ + SYM, 58, 59, 60,SYM, 61, 62,SYM,SYM, 29, 41, 63, 64,SYM, 30,SYM, /* AX */ + SYM, 65,SYM, 66,SYM, 67, 68,SYM,SYM, 29, 41, 69, 70, 71, 30, 72, /* BX */ + 36, 35, 73, 74, 18, 38, 46, 75, 49, 33, 76, 32, 77, 40, 78, 34, /* CX */ + 79, 52, 47, 80, 81, 19, 24,SYM, 39, 82, 51, 83, 21, 84, 37, 54, /* DX */ + 36, 35, 85, 86, 18, 38, 46, 87, 49, 33, 88, 32, 89, 40, 90, 34, /* EX */ + 91, 52, 47, 92, 93, 19, 24,SYM, 39, 94, 51, 95, 21, 96, 37,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 4X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 6X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 4X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 6X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 36,SYM,100,SYM,SYM,SYM,SYM, 47, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 36,SYM,101,SYM,SYM,SYM,SYM, 47, /* BX */ - 102,103, 33, 48, 18, 32,104, 41, 43, 34,105,106,107,108, 38,109, /* CX */ - 28,110,111, 40, 52, 19, 24,SYM,112, 37, 58, 39, 21, 59, 30,113, /* DX */ - 114,115, 33, 48, 18, 32,116, 41, 43, 34,117,118,119,120, 38,121, /* EX */ - 28,122,123, 40, 52, 19, 24,SYM,124, 37, 58, 39, 21, 59, 30,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 97,SYM,SYM,SYM,SYM, 46, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 98,SYM,SYM,SYM,SYM, 46, /* BX */ + 99,100, 36, 50, 18, 38,101, 41, 49, 33,102,103,104,105, 34,106, /* CX */ + 29,107, 52, 42, 47, 19, 24,SYM,108, 48,109, 37, 21, 56, 30, 54, /* DX */ + 110,111, 36, 50, 18, 38,112, 41, 49, 33,113,114,115,116, 34,117, /* EX */ + 29,118, 52, 42, 47, 19, 24,SYM,119, 48,120, 37, 21, 56, 30,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 4X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 6X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 4X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 6X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 28,SYM, 28,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 30,125,SYM,SYM, 30,SYM,SYM,SYM,126,127,128,SYM, /* BX */ - 45, 35, 46,129, 18, 32, 47, 42, 49, 34,130,131, 56, 54,132,133, /* CX */ - 44, 55, 50, 40, 51, 19, 24,SYM, 36, 57,134,135, 21,136,137,138, /* DX */ - 45, 35, 46,139, 18, 32, 47, 42, 49, 34,140,141, 56, 54,142,143, /* EX */ - 44, 55, 50, 40, 51, 19, 24,SYM, 36, 57,144,145, 21,146,147,148, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM, 29,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 30,121,SYM,SYM, 30,SYM,SYM,SYM,122,123,124,SYM, /* BX */ + 53, 35,125,126, 18, 38, 46, 44, 45, 33, 55, 32,127, 40,128,129, /* CX */ + 130, 43,131, 42,132, 19, 24,SYM, 39,133, 51,134, 21, 57,135, 54, /* DX */ + 53, 35,136,137, 18, 38, 46, 44, 45, 33, 55, 32,138, 40,139,140, /* EX */ + 141, 43,142, 42,143, 19, 24,SYM, 39,144, 51,145, 21, 57,146,147, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 4X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 6X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,149,SYM,SYM,SYM,SYM,SYM,SYM, 28,SYM,150,ILL, 30,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 28,SYM,151,ILL, 30,152, /* 9X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 4X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 6X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,148,SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM,149,ILL, 30,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM,150,ILL, 30,151, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,153,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 45, 35, 46,154, 18, 32, 47, 42, 49, 34,155,156, 56, 54,157,158, /* CX */ - 44, 55, 50, 40, 51, 19, 24,SYM, 36, 57,159,160, 21,161,162,163, /* DX */ - 45, 35, 46,164, 18, 32, 47, 42, 49, 34,165,166, 56, 54,167,168, /* EX */ - 44, 55, 50, 40, 51, 19, 24,SYM, 36, 57,169,170, 21,171,172,173, /* FX */ + SYM,SYM,SYM,SYM,SYM,152,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 53, 35,153,154, 18, 38, 46, 44, 45, 33, 55, 32,155, 40,156,157, /* CX */ + 158, 43,159, 42,160, 19, 24,SYM, 39,161, 51,162, 21, 57,163, 54, /* DX */ + 53, 35,164,165, 18, 38, 46, 44, 45, 33, 55, 32,166, 40,167,168, /* EX */ + 169, 43,170, 42,171, 19, 24,SYM, 39,172, 51,173, 21, 57,174,175, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,77 +152,77 @@ static const unsigned char Windows_1257_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 4X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 23, 11, 2, 22, 14, 17, 1, 16, 8, 5, 12, 7, 9, /* 6X */ - 15, 31, 10, 3, 4, 6, 13, 26, 29, 25, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 4X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 23, 10, 1, 22, 15, 17, 2, 16, 8, 5, 12, 7, 9, /* 6X */ + 14, 31, 11, 3, 4, 6, 13, 26, 27, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM,ILL,SYM,ILL,SYM,SYM,SYM, /* 8X */ ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,ILL,SYM,ILL,SYM,SYM,ILL, /* 9X */ - SYM,ILL,SYM,SYM,SYM,ILL,SYM,SYM, 36,SYM,174,SYM,SYM,SYM,SYM, 47, /* AX */ - SYM,SYM,SYM,SYM,SYM,175,SYM,SYM, 36,SYM,176,SYM,SYM,SYM,SYM, 47, /* BX */ - 177,178, 33, 48, 18, 32,179, 41, 43, 34,180,181,182,183, 38,184, /* CX */ - 28,185,186, 40, 52, 19, 24,SYM,187, 37, 58, 39, 21, 59, 30,188, /* DX */ - 189,190, 33, 48, 18, 32,191, 41, 43, 34,192,193,194,195, 38,196, /* EX */ - 28,197,198, 40, 52, 19, 24,SYM,199, 37, 58, 39, 21, 59, 30,SYM, /* FX */ + SYM,ILL,SYM,SYM,SYM,ILL,SYM,SYM, 39,SYM,176,SYM,SYM,SYM,SYM, 46, /* AX */ + SYM,SYM,SYM,SYM,SYM,177,SYM,SYM, 39,SYM,178,SYM,SYM,SYM,SYM, 46, /* BX */ + 179,180, 36, 50, 18, 38,181, 41, 49, 33,182,183,184,185, 34,186, /* CX */ + 29,187, 52, 42, 47, 19, 24,SYM,188, 48,189, 37, 21, 56, 30, 54, /* DX */ + 190,191, 36, 50, 18, 38,192, 41, 49, 33,193,194,195,196, 34,197, /* EX */ + 29,198, 52, 42, 47, 19, 24,SYM,199, 48,200, 37, 21, 56, 30,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 64; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 20, 67, 23, 68, 11, 69, 2, 70, 22, 71, 14, 72, 17, - 73, 1, 74, 16, 75, 8, 76, 5, 77, 12, 78, 7, 79, 9, 80, 15, - 81, 31, 82, 10, 83, 3, 84, 4, 85, 6, 86, 13, 87, 26, 88, 29, - 89, 25, 90, 27, 97, 0, 98, 20, 99, 23, 100, 11, 101, 2,102, 22, - 103, 14, 104, 17, 105, 1, 106, 16, 107, 8, 108, 5, 109, 12,110, 7, - 111, 9, 112, 15, 113, 31, 114, 10, 115, 3, 116, 4, 117, 6,118, 13, - 119, 26, 120, 29, 121, 25, 122, 27, 196, 18, 213, 19, 214, 24,220, 21, - 228, 18, 245, 19, 246, 24, 252, 21, 352, 28, 353, 28, 381, 30,382, 30, + 65, 0, 66, 20, 67, 23, 68, 10, 69, 1, 70, 22, 71, 15, 72, 17, + 73, 2, 74, 16, 75, 8, 76, 5, 77, 12, 78, 7, 79, 9, 80, 14, + 81, 31, 82, 11, 83, 3, 84, 4, 85, 6, 86, 13, 87, 26, 88, 27, + 89, 25, 90, 28, 97, 0, 98, 20, 99, 23, 100, 10, 101, 1,102, 22, + 103, 15, 104, 17, 105, 2, 106, 16, 107, 8, 108, 5, 109, 12,110, 7, + 111, 9, 112, 14, 113, 31, 114, 11, 115, 3, 116, 4, 117, 6,118, 13, + 119, 26, 120, 27, 121, 25, 122, 28, 196, 18, 213, 19, 214, 24,220, 21, + 228, 18, 245, 19, 246, 24, 252, 21, 352, 29, 353, 29, 381, 30,382, 30, }; /* Model Table: - * Total considered sequences: 915 / 1024 - * - Positive sequences: first 453 (0.9950155799281164) - * - Probable sequences: next 161 (614-453) (0.003991392475357514) - * - Neutral sequences: last 410 (0.000993027596526086) - * - Negative sequences: 109 (off-ratio) + * Total considered sequences: 876 / 1024 + * - Positive sequences: first 431 (0.9950077226033445) + * - Probable sequences: next 157 (588-431) (0.003997910901044732) + * - Neutral sequences: last 436 (0.000994366495610799) + * - Negative sequences: 148 (off-ratio) * Negative sequences: TODO */ static const PRUint8 EstonianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,0,3,2,3,3,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,2,3,3,1,1,2,2,2,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,1,3,3,2,2,3,2,1,3,2,1, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,2,2,2,0,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,1,3,1,2,3,3,2,2,3,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,2,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,3,2,2,3,0,1,1,2,2,1,1,1, - 3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,2,2,3,3,3,2,3,3,3,1,2,0,3,1,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,0,2,2,3,2,0,1,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,1,3,3,1,1,2,2,0,2,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,0,0,1,1, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,2,0,1,2,3,2,0,0,2,2,2,1,0,3,1, - 3,3,3,3,3,3,3,3,3,3,2,1,3,2,3,3,2,2,3,3,3,3,2,2,3,2,1,1,0,0,0,0, - 3,3,3,3,2,3,3,3,3,3,2,2,2,2,2,2,2,2,3,3,0,3,0,1,3,0,0,0,1,0,0,0, - 3,3,3,3,2,3,3,3,3,3,3,1,3,2,2,3,1,3,1,0,1,2,1,0,2,3,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,2,3,3,2,3,1,2,3,1,3,3,3,0,3,1,1,3,2,1,1,1,1,0,0, - 3,2,3,0,3,1,3,2,2,3,1,1,2,0,0,2,0,0,3,3,0,2,0,1,1,0,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,3,3,1,3,3,0,1,3,3,3,3,2,3,0,1,1,3,1,0,0,0,0,0, - 2,3,3,3,3,3,1,3,3,2,3,3,3,3,3,3,0,3,3,0,3,0,0,0,0,1,0,0,0,0,0,0, - 1,3,3,3,3,3,3,3,2,1,3,3,3,2,3,3,3,3,0,3,2,0,0,0,0,0,0,0,1,0,0,0, - 3,3,3,3,1,3,3,3,2,3,3,1,1,0,1,1,3,2,0,1,2,3,1,1,0,2,0,1,0,0,0,0, - 3,0,2,3,3,3,0,3,3,3,3,3,3,2,3,3,1,3,1,0,2,3,1,0,0,0,0,1,0,0,0,0, - 3,3,3,2,3,2,3,2,0,3,3,1,1,0,1,0,2,0,3,0,0,3,2,0,3,1,0,1,0,0,0,1, - 3,3,3,2,3,3,3,2,3,3,2,1,3,1,1,1,0,3,0,0,1,1,0,3,0,2,0,2,0,1,0,1, - 1,2,3,3,3,3,0,3,3,1,3,3,2,2,2,3,1,1,0,0,2,1,1,0,3,0,0,0,0,1,0,0, - 2,1,3,3,2,3,1,2,1,2,3,2,2,1,2,2,0,1,0,0,1,0,0,2,1,0,0,0,0,1,0,0, - 3,3,3,2,1,0,1,1,1,3,1,0,1,0,0,0,1,2,0,0,0,0,1,1,1,1,2,0,0,0,0,0, - 3,3,3,0,1,1,2,2,1,3,0,2,1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,2,0,0,0,0, - 3,3,3,0,2,1,2,0,2,2,1,0,0,2,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 2,2,2,1,2,0,1,0,1,2,0,0,1,1,0,2,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0, - 3,2,2,1,0,0,2,2,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0, - 2,1,0,0,0,0,2,0,1,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,3,1,2,3,3,3,3,1,3,3,2,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,2,3,3,3,2,2,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,1,1,2,3,2,2,1,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,0,1,1,1,1, + 3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,2,3,3,3,3,1,3,1,2,3,2,1,1,2,3,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,2,3,1,1,1,1,1,0, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,2,3,2,2,2,0,1,0,1,1,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,3,3,2,2,3,3,1,2,1,1,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,3,2,3,3,1,3,1,1,2,1,1,0,0,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,3,2,3,3,1,2,3,2,2,1,0,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,3,2,0,0,1,2,2,1,1,1,2,0,1,0,3,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,1,2,3,2,3,2,2,2,3,3,3,3,1,2,3,2,1,1,0,0,0,0, + 3,3,3,3,2,3,3,3,3,3,1,2,2,2,2,2,1,2,3,3,0,2,0,0,3,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,2,3,1,3,3,1,3,1,2,3,3,3,1,3,1,0,3,1,0,0,1,0,0,0, + 3,3,3,3,2,3,3,3,3,3,1,3,3,2,2,2,2,3,0,0,1,3,1,0,0,2,1,0,0,0,0,0, + 3,3,2,1,3,0,3,2,1,3,0,0,3,0,2,0,0,0,3,3,0,2,0,0,1,0,0,0,0,0,0,0, + 3,3,3,2,3,3,3,3,3,3,2,2,3,3,1,0,3,3,3,3,1,3,1,1,1,3,2,0,1,0,0,2, + 2,3,3,3,3,3,0,3,3,2,3,3,3,3,3,3,1,3,3,0,3,0,0,1,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,2,1,3,3,3,2,3,3,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,2,2,3,3,2,2,3,1,3,1,1,1,1,3,1,1,0,2,2,1,2,0,2,1,0,0,0,0,0, + 2,1,0,3,3,3,0,3,3,2,3,3,3,3,3,3,1,3,0,0,3,3,1,1,0,0,0,0,0,0,0,0, + 3,3,3,2,3,3,3,2,1,3,0,3,1,0,0,1,1,0,3,0,0,3,3,1,2,0,0,0,1,0,0,0, + 3,3,3,2,3,2,3,1,3,3,1,2,3,1,0,1,0,3,0,0,1,0,0,2,0,2,0,1,0,0,0,1, + 2,3,2,3,3,2,0,3,3,1,3,3,2,2,3,2,1,1,0,0,2,0,1,0,3,1,1,0,0,0,0,1, + 3,2,1,2,2,3,2,3,1,2,2,2,2,0,2,2,0,0,0,0,1,0,1,2,0,0,1,1,0,0,0,0, + 3,3,3,2,2,0,1,2,1,2,1,2,1,0,0,1,0,2,0,0,1,0,2,1,0,1,2,0,0,0,0,0, + 2,0,2,0,1,1,1,0,1,1,1,0,1,1,1,0,0,2,0,0,1,0,0,2,0,1,0,1,0,0,0,0, + 2,2,2,1,1,0,2,1,1,2,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 2,3,2,0,1,0,2,1,1,2,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 2,1,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,2,1,0,1,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, }; @@ -231,7 +231,7 @@ const SequenceModel Iso_8859_4EstonianModel = Iso_8859_4_CharToOrderMap, EstonianLangModel, 32, - (float)0.9990069724034739, + (float)0.9990056335043892, PR_TRUE, "ISO-8859-4", "et" @@ -242,7 +242,7 @@ const SequenceModel Iso_8859_13EstonianModel = Iso_8859_13_CharToOrderMap, EstonianLangModel, 32, - (float)0.9990069724034739, + (float)0.9990056335043892, PR_TRUE, "ISO-8859-13", "et" @@ -253,7 +253,7 @@ const SequenceModel Iso_8859_15EstonianModel = Iso_8859_15_CharToOrderMap, EstonianLangModel, 32, - (float)0.9990069724034739, + (float)0.9990056335043892, PR_TRUE, "ISO-8859-15", "et" @@ -264,7 +264,7 @@ const SequenceModel Windows_1252EstonianModel = Windows_1252_CharToOrderMap, EstonianLangModel, 32, - (float)0.9990069724034739, + (float)0.9990056335043892, PR_TRUE, "WINDOWS-1252", "et" @@ -275,7 +275,7 @@ const SequenceModel Windows_1257EstonianModel = Windows_1257_CharToOrderMap, EstonianLangModel, 32, - (float)0.9990069724034739, + (float)0.9990056335043892, PR_TRUE, "WINDOWS-1257", "et" @@ -288,8 +288,8 @@ const LanguageModel EstonianModel = 64, EstonianLangModel, 32, - 3, - (float)0.33312644846916206, + 4, + (float)0.41592966773057316, 18, - (float)0.03563976943342159, + (float)0.035005595045841234, }; diff --git a/src/LangModels/LangFinnishModel.cpp b/src/LangModels/LangFinnishModel.cpp index 20d0321..f7e5a57 100644 --- a/src/LangModels/LangFinnishModel.cpp +++ b/src/LangModels/LangFinnishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:01:43.323316 + * On: 2022-12-14 23:54:09.799915 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 77,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* CX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38, 78, 48, 79, 32, 74, 67, 56, /* DX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* EX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38, 80, 48, 81, 32, 74, 67, 82, /* FX */ + SYM,SYM,SYM,SYM,SYM, 76,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27, 77, 45, 78, 38, 47, 65, /* CX */ + 53, 51, 79, 31, 49, 75, 21,SYM, 52, 80, 39, 68, 34, 69, 71, 62, /* DX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27, 81, 45, 82, 38, 47, 65, /* EX */ + 53, 51, 83, 31, 49, 75, 21,SYM, 52, 84, 39, 68, 34, 69, 71, 85, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_4_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 61, 83, 84,SYM, 85, 73,SYM,SYM, 27, 66, 86, 87,SYM, 33,SYM, /* AX */ - SYM, 61,SYM, 88,SYM, 89, 73,SYM,SYM, 27, 66, 90, 91, 47, 33, 47, /* BX */ - 41, 30, 59, 37, 11, 42, 40, 92, 49, 29, 57, 52, 39, 31, 51, 58, /* CX */ - 54, 93, 70, 94, 44, 71, 20,SYM, 38, 72, 48, 95, 32, 96, 45, 56, /* DX */ - 41, 30, 59, 37, 11, 42, 40, 97, 49, 29, 57, 52, 39, 31, 51, 58, /* EX */ - 54, 98, 70, 99, 44, 71, 20,SYM, 38, 72, 48,100, 32,101, 45,SYM, /* FX */ + SYM, 72, 86, 67,SYM, 87, 88,SYM,SYM, 29, 43, 89, 90,SYM, 33,SYM, /* AX */ + SYM, 72,SYM, 67,SYM, 91, 92,SYM,SYM, 29, 43, 93, 94, 44, 33, 44, /* BX */ + 35, 30, 60, 63, 12, 42, 40, 95, 48, 27, 64, 45, 96, 38, 47, 46, /* CX */ + 97, 58, 56, 66, 49, 75, 21,SYM, 52, 98, 39, 68, 34, 99, 57, 62, /* DX */ + 35, 30, 60, 63, 12, 42, 40,100, 48, 27, 64, 45,101, 38, 47, 46, /* EX */ + 102, 58, 56, 66, 49, 75, 21,SYM, 52,103, 39, 68, 34,104, 57,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,102,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* CX */ - 75, 53, 69, 34, 44, 71, 20,SYM, 38,103, 48,104, 32,105,106, 56, /* DX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* EX */ - 75, 53, 69, 34, 44, 71, 20,SYM, 38,107, 48,108, 32, 55,109,110, /* FX */ + SYM,SYM,SYM,SYM,SYM,105,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,106, 45,107, 38, 47, 65, /* CX */ + 55, 51,108, 31, 49, 75, 21,SYM, 52,109, 39, 68, 34,110,111, 62, /* DX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,112, 45,113, 38, 47, 65, /* EX */ + 55, 51,114, 31, 49, 75, 21,SYM, 52,115, 39, 68, 34, 74,116,117, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 38,SYM,111,SYM,SYM,SYM,SYM, 40, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 38,SYM,112,SYM,SYM,SYM,SYM, 40, /* BX */ - 61,113, 41, 43, 11, 42, 57, 66, 49, 29,114, 39,115,116, 58, 73, /* CX */ - 27, 64,117, 34, 70, 71, 20,SYM, 72, 76, 65, 45, 32, 62, 33, 56, /* DX */ - 61,118, 41, 43, 11, 42, 57, 66, 49, 29,119, 39,120,121, 58, 73, /* EX */ - 27, 64,122, 34, 70, 71, 20,SYM, 72, 76, 65, 45, 32, 62, 33,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 52,SYM, 67,SYM,SYM,SYM,SYM, 40, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 52,SYM, 67,SYM,SYM,SYM,SYM, 40, /* BX */ + 72,118, 35, 61, 12, 42, 64, 43, 48, 27, 59,119,120, 66, 46,121, /* CX */ + 29, 36, 58, 31, 56, 75, 21,SYM,122, 32, 50, 57, 34, 70, 33, 62, /* DX */ + 72,123, 35, 61, 12, 42, 64, 43, 48, 27, 59,124,125, 66, 46,126, /* EX */ + 29, 36, 58, 31, 56, 75, 21,SYM,127, 32, 50, 57, 34, 70, 33,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,18 +152,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 27,SYM, 27,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 33,123,SYM,SYM, 33,SYM,SYM,SYM,124,125,126,SYM, /* BX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* CX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38,127, 48,128, 32, 74, 67, 56, /* DX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* EX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38,129, 48,130, 32, 74, 67,131, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM, 29,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 33,128,SYM,SYM, 33,SYM,SYM,SYM, 73, 73,129,SYM, /* BX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,130, 45,131, 38, 47, 65, /* CX */ + 53, 51,132, 31, 49, 75, 21,SYM, 52,133, 39, 68, 34, 69, 71, 62, /* DX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,134, 45,135, 38, 47, 65, /* EX */ + 53, 51,136, 31, 49, 75, 21,SYM, 52,137, 39, 68, 34, 69, 71,138, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -173,74 +173,74 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 4X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 22, 18, 5, 23, 19, 16, 1, 14, 9, 6, 10, 3, 7, /* 6X */ - 15, 28, 12, 4, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,132,SYM,SYM,SYM,SYM,SYM,SYM, 27,SYM,133,ILL, 33,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 27,SYM,134,ILL, 33,135, /* 9X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 4X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 20, 22, 18, 4, 23, 19, 16, 1, 14, 9, 6, 11, 3, 7, /* 6X */ + 15, 28, 10, 5, 2, 8, 13, 24, 26, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,139,SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM, 73,ILL, 33,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 29,SYM, 73,ILL, 33,140, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,136,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* CX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38,137, 48,138, 32, 74, 67, 56, /* DX */ - 46, 30, 59, 37, 11, 42, 40, 35, 36, 29, 60, 52, 68, 31, 51, 50, /* EX */ - 63, 53, 69, 34, 44, 71, 20,SYM, 38,139, 48,140, 32, 74, 67,141, /* FX */ + SYM,SYM,SYM,SYM,SYM,141,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,142, 45,143, 38, 47, 65, /* CX */ + 53, 51,144, 31, 49, 75, 21,SYM, 52,145, 39, 68, 34, 69, 71, 62, /* DX */ + 54, 30, 60, 63, 12, 42, 40, 41, 37, 27,146, 45,147, 38, 47, 65, /* EX */ + 53, 51,148, 31, 49, 75, 21,SYM, 52,149, 39, 68, 34, 69, 71,150, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 58; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 21, 67, 22, 68, 18, 69, 5, 70, 23, 71, 19, 72, 16, - 73, 1, 74, 14, 75, 9, 76, 6, 77, 10, 78, 3, 79, 7, 80, 15, - 81, 28, 82, 12, 83, 4, 84, 2, 85, 8, 86, 13, 87, 24, 88, 26, - 89, 17, 90, 25, 97, 0, 98, 21, 99, 22, 100, 18, 101, 5,102, 23, - 103, 19, 104, 16, 105, 1, 106, 14, 107, 9, 108, 6, 109, 10,110, 3, - 111, 7, 112, 15, 113, 28, 114, 12, 115, 4, 116, 2, 117, 8,118, 13, - 119, 24, 120, 26, 121, 17, 122, 25, 196, 11, 214, 20, 228, 11,246, 20, - 352, 27, 353, 27, + 65, 0, 66, 20, 67, 22, 68, 18, 69, 4, 70, 23, 71, 19, 72, 16, + 73, 1, 74, 14, 75, 9, 76, 6, 77, 11, 78, 3, 79, 7, 80, 15, + 81, 28, 82, 10, 83, 5, 84, 2, 85, 8, 86, 13, 87, 24, 88, 26, + 89, 17, 90, 25, 97, 0, 98, 20, 99, 22, 100, 18, 101, 4,102, 23, + 103, 19, 104, 16, 105, 1, 106, 14, 107, 9, 108, 6, 109, 11,110, 3, + 111, 7, 112, 15, 113, 28, 114, 10, 115, 5, 116, 2, 117, 8,118, 13, + 119, 24, 120, 26, 121, 17, 122, 25, 196, 12, 201, 27, 214, 21,228, 12, + 233, 27, 246, 21, }; /* Model Table: - * Total considered sequences: 1166 / 841 - * - Positive sequences: first 398 (0.9950171899546914) - * - Probable sequences: next 196 (594-398) (0.003983288176498734) - * - Neutral sequences: last 247 (0.0009995218688099161) - * - Negative sequences: -325 (off-ratio) + * Total considered sequences: 1146 / 841 + * - Positive sequences: first 417 (0.9950442901604022) + * - Probable sequences: next 226 (643-417) (0.003959181230548281) + * - Neutral sequences: last 198 (0.0009965286090495296) + * - Negative sequences: -305 (off-ratio) * Negative sequences: TODO */ static const PRUint8 FinnishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,3,3,1,1,3,2,3,2,2,2,0,3,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,3,3,2,3,1,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,2,1,2, - 3,3,3,2,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,3,1,2,0,1,1, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,3,3,3,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,3,1,3,3,2,2,2,2,2,1, - 3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,3,3,1,2,3,1,1,1,1,1,0,1,0, - 3,3,2,2,2,3,2,3,3,1,3,3,2,1,1,3,1,3,2,1,2,3,2,2,2,1,1,0,1, - 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,1,2, - 3,3,2,1,2,3,2,3,3,1,1,3,2,1,1,2,0,3,1,1,1,1,0,1,0,0,1,0,0, - 3,3,0,2,1,3,2,3,3,0,1,3,2,1,1,2,0,3,1,0,3,0,1,1,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,2,2,3,3,1,1,3,3,3,2,1,3,1,1,2,1,1,0,0,0, - 3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,1,3,3,1,2,1,1,1,2,1,0,0,1, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,1,1,1,0,0, - 3,3,2,2,3,3,2,3,3,1,2,3,3,2,2,2,2,3,2,2,2,2,2,2,2,1,0,0,1, - 3,3,2,3,2,3,3,3,3,2,2,1,3,2,1,1,3,3,2,2,2,2,1,1,2,0,0,0,0, - 2,3,3,3,3,2,3,2,1,3,3,3,3,3,3,2,3,3,2,1,3,0,0,0,0,1,0,0,0, - 3,3,2,3,2,3,3,3,3,2,2,1,3,1,2,1,2,2,2,0,1,3,3,1,2,1,0,0,0, - 3,3,3,2,2,3,3,3,3,3,2,0,2,1,0,1,3,2,2,1,0,1,2,1,1,1,1,0,2, - 3,3,2,1,2,3,3,3,2,1,1,1,3,1,1,2,1,2,1,2,1,1,2,2,0,0,0,0,0, - 3,3,1,2,2,3,2,3,1,1,1,1,2,1,0,1,2,1,1,2,1,0,1,1,1,0,0,0,0, - 3,3,1,1,0,3,1,2,2,1,1,0,1,1,1,1,1,2,1,1,1,2,1,1,1,2,0,0,0, - 2,3,2,0,1,2,1,2,1,1,1,0,0,1,0,1,1,1,0,0,0,1,1,2,0,0,1,0,0, - 2,2,2,1,0,2,0,2,2,2,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, - 2,1,0,0,1,0,0,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,3,3,3,2,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,1,2,2,3,3,2,2,2,0,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,0,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,2,3,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,2,3,0,2,2, + 3,3,3,2,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,0,3,3,3,2,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,3,3,1,3,3,2,2,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,3,1,2,1,3,1,2,2,1,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2,2, + 3,3,2,2,3,3,2,3,3,2,2,3,3,1,2,3,2,3,1,2,3,2,2,2,2,2,1,2,1, + 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,0,0,0,0, + 3,3,1,1,3,2,2,3,3,1,2,1,3,1,1,0,1,3,2,1,0,0,1,1,0,0,0,1,0, + 3,3,2,2,3,2,2,3,3,2,1,2,3,1,0,1,1,3,1,0,1,3,1,2,0,0,0,1,0, + 3,3,3,2,3,3,3,3,3,2,3,2,3,1,1,3,3,3,2,1,1,3,1,2,1,1,0,2,0, + 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,1,3,3,1,1,2,1,1,2,3,0,2,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,2,3,2,2,1,1,1,0,0, + 3,3,2,2,3,3,2,3,3,0,3,2,3,3,2,2,3,3,2,2,2,2,2,2,2,2,0,2,1, + 3,3,2,3,3,2,3,3,3,2,3,2,1,1,1,2,3,3,2,2,2,2,1,1,2,1,0,1,0, + 3,3,2,3,3,3,3,3,3,2,3,2,1,1,2,1,2,3,2,1,3,1,3,0,1,0,0,2,1, + 2,3,3,3,1,3,3,2,1,3,3,3,3,3,3,3,3,3,2,1,1,3,1,1,1,0,0,0,0, + 3,3,3,2,3,2,3,3,3,3,3,2,0,0,1,1,3,2,2,1,1,0,2,1,1,2,0,1,2, + 3,3,3,1,3,2,3,3,3,0,3,2,1,1,1,1,1,2,0,2,1,2,2,3,1,0,0,1,0, + 3,3,2,2,3,3,2,3,1,2,2,1,2,0,0,2,2,2,1,1,1,1,3,1,2,0,0,0,1, + 3,3,2,2,3,2,1,2,2,1,2,2,0,1,1,2,2,2,1,1,2,0,2,1,1,2,1,1,1, + 2,3,2,0,2,1,1,2,1,0,0,1,0,2,0,1,1,1,0,0,1,0,2,2,0,0,1,0,0, + 1,0,2,2,2,2,2,2,1,1,2,1,0,1,0,2,0,0,2,2,1,0,2,1,0,1,1,0,0, + 2,1,0,0,0,1,0,0,3,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, }; @@ -249,7 +249,7 @@ const SequenceModel Iso_8859_1FinnishModel = Iso_8859_1_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "ISO-8859-1", "fi" @@ -260,7 +260,7 @@ const SequenceModel Iso_8859_4FinnishModel = Iso_8859_4_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "ISO-8859-4", "fi" @@ -271,7 +271,7 @@ const SequenceModel Iso_8859_9FinnishModel = Iso_8859_9_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "ISO-8859-9", "fi" @@ -282,7 +282,7 @@ const SequenceModel Iso_8859_13FinnishModel = Iso_8859_13_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "ISO-8859-13", "fi" @@ -293,7 +293,7 @@ const SequenceModel Iso_8859_15FinnishModel = Iso_8859_15_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "ISO-8859-15", "fi" @@ -304,7 +304,7 @@ const SequenceModel Windows_1252FinnishModel = Windows_1252_CharToOrderMap, FinnishLangModel, 29, - (float)0.9990004781311901, + (float)0.9990034713909505, PR_TRUE, "WINDOWS-1252", "fi" @@ -317,8 +317,8 @@ const LanguageModel FinnishModel = 58, FinnishLangModel, 29, - 3, - (float)0.3300643936651628, - 16, - (float)0.04489754832004237, + 4, + (float)0.4128194501284014, + 17, + (float)0.03274349583630724, }; diff --git a/src/LangModels/LangFrenchModel.cpp b/src/LangModels/LangFrenchModel.cpp index 4ec59ac..6e49ab6 100644 --- a/src/LangModels/LangFrenchModel.cpp +++ b/src/LangModels/LangFrenchModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 17:27:44.115466 + * On: 2022-12-14 20:39:17.167378 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 4X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 6X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 4X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 6X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM, 44,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 49, 51,SYM,SYM, 49,SYM,SYM,SYM, 34, 34, 59,SYM, /* BX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* CX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 60, 61, 56, /* DX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* EX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 62, 63, 64, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 47,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 53, 52,SYM,SYM, 53,SYM,SYM,SYM, 34, 34, 57,SYM, /* BX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* CX */ + 59, 46, 49, 44, 31, 60, 39,SYM, 54, 35, 50, 37, 38, 58, 61, 55, /* DX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* EX */ + 59, 46, 49, 44, 31, 62, 39,SYM, 54, 35, 50, 37, 38, 58, 63, 57, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 4X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 6X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 4X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 6X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 51,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* CX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 65, 66, 56, /* DX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* EX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 67, 68, 69, /* FX */ + SYM,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* CX */ + 59, 46, 49, 44, 31, 64, 39,SYM, 54, 35, 50, 37, 38, 58, 65, 55, /* DX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* EX */ + 59, 46, 49, 44, 31, 66, 39,SYM, 54, 35, 50, 37, 38, 58, 67, 57, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 4X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 26, 7, 13, 4, 8, /* 6X */ - 12, 20, 6, 1, 5, 9, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 70,SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM, 34,ILL, 49,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM, 34,ILL, 49, 71, /* 9X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 4X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 18, 11, 10, 0, 17, 16, 19, 3, 25, 27, 7, 13, 4, 9, /* 6X */ + 12, 20, 6, 1, 5, 8, 15, 30, 21, 24, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 68,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 34,ILL, 53,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 34,ILL, 53, 57, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 51,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* CX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 72, 73, 56, /* DX */ - 22, 39, 32, 46, 47, 58, 48, 29, 23, 14, 27, 38, 53, 42, 33, 35, /* EX */ - 57, 45, 54, 40, 31, 55, 43,SYM, 52, 37, 50, 36, 41, 74, 75, 76, /* FX */ + SYM,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* CX */ + 59, 46, 49, 44, 31, 69, 39,SYM, 54, 35, 50, 37, 38, 58, 70, 55, /* DX */ + 23, 41, 33, 51, 43, 48, 45, 29, 22, 14, 26, 40, 56, 42, 32, 36, /* EX */ + 59, 46, 49, 44, 31, 71, 39,SYM, 54, 35, 50, 37, 38, 58, 72, 57, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -129,66 +129,66 @@ static const int Unicode_Char_size = 76; static const unsigned int Unicode_CharOrder[] = { 65, 2, 66, 18, 67, 11, 68, 10, 69, 0, 70, 17, 71, 16, 72, 19, - 73, 3, 74, 25, 75, 26, 76, 7, 77, 13, 78, 4, 79, 8, 80, 12, - 81, 20, 82, 6, 83, 1, 84, 5, 85, 9, 86, 15, 87, 30, 88, 21, + 73, 3, 74, 25, 75, 27, 76, 7, 77, 13, 78, 4, 79, 9, 80, 12, + 81, 20, 82, 6, 83, 1, 84, 5, 85, 8, 86, 15, 87, 30, 88, 21, 89, 24, 90, 28, 97, 2, 98, 18, 99, 11, 100, 10, 101, 0,102, 17, - 103, 16, 104, 19, 105, 3, 106, 25, 107, 26, 108, 7, 109, 13,110, 4, - 111, 8, 112, 12, 113, 20, 114, 6, 115, 1, 116, 5, 117, 9,118, 15, - 119, 30, 120, 21, 121, 24, 122, 28, 192, 22, 194, 32, 199, 29,200, 23, - 201, 14, 202, 27, 206, 33, 207, 35, 212, 31, 217, 37, 219, 36,224, 22, - 226, 32, 231, 29, 232, 23, 233, 14, 234, 27, 238, 33, 239, 35,244, 31, - 249, 37, 251, 36, 338, 34, 339, 34, + 103, 16, 104, 19, 105, 3, 106, 25, 107, 27, 108, 7, 109, 13,110, 4, + 111, 9, 112, 12, 113, 20, 114, 6, 115, 1, 116, 5, 117, 8,118, 15, + 119, 30, 120, 21, 121, 24, 122, 28, 192, 23, 194, 33, 199, 29,200, 22, + 201, 14, 202, 26, 206, 32, 207, 36, 212, 31, 217, 35, 219, 37,224, 23, + 226, 33, 231, 29, 232, 22, 233, 14, 234, 26, 238, 32, 239, 36,244, 31, + 249, 35, 251, 37, 338, 34, 339, 34, }; /* Model Table: - * Total considered sequences: 1255 / 1444 - * - Positive sequences: first 465 (0.995025880940353) - * - Probable sequences: next 182 (647-465) (0.0039795148879469) - * - Neutral sequences: last 797 (0.000994604171700053) - * - Negative sequences: 189 (off-ratio) + * Total considered sequences: 1187 / 1444 + * - Positive sequences: first 450 (0.9950352320661208) + * - Probable sequences: next 168 (618-450) (0.003966397970469049) + * - Neutral sequences: last 826 (0.000998369963410184) + * - Negative sequences: 257 (off-ratio) * Negative sequences: TODO */ static const PRUint8 FrenchLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,2,3,0,0,3,3,2,0,3,3,3,1,1,0,0,1,1,0, - 3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,2,1,3,3,3,3,1,0,3,3,1,3,1,2,1,2,0,1,2,2,0,2,0, - 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,0,3,3,2,1,1,3,0,3,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,2,3,1,3,1,2,1,1,0,1,0,0,0, - 3,3,3,3,3,3,3,2,3,3,3,3,2,2,3,3,3,3,2,3,3,1,1,3,3,3,3,2,3,3,1,1,1,1,1,0,0,0, - 3,3,3,3,2,3,3,3,3,3,2,3,2,3,3,2,2,2,3,3,1,1,1,3,3,1,2,2,2,0,2,3,2,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,3,3,2,3,3,2,2,2,3,3,1,0,0,2,1, - 3,3,3,3,2,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,3,3,3,2,2,1,2,0,1,2,2,0,1,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,0,2,3,3,3,1,2,0,3,0,0,2,1,3,3,3, - 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,2,3,0,2,3,3,3,2,2,2,1,0,1,1,0,1,0,0, - 3,3,3,3,2,2,3,2,3,3,3,2,2,3,3,2,2,2,2,3,1,0,1,3,3,3,1,0,1,0,2,2,0,1,1,0,2,0, - 3,3,3,3,2,3,3,3,3,3,2,3,2,2,3,1,1,2,2,3,3,1,0,3,3,1,3,2,2,0,1,3,1,0,2,0,0,0, - 3,3,3,3,2,3,3,3,3,3,2,3,3,2,3,1,1,2,1,3,1,1,0,3,2,1,1,3,1,1,1,2,2,1,0,0,1,0, - 3,3,3,3,3,2,2,2,3,3,1,3,3,3,3,1,2,1,3,2,0,1,1,3,3,1,1,3,1,0,1,1,2,0,2,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,1,3,2,0,2,1,0,0,2,0,0,0,0,0, - 3,1,3,3,1,1,3,2,3,3,1,1,1,1,3,1,1,1,1,2,1,0,0,3,2,0,1,3,1,0,0,1,1,1,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,2,3,1,2,3,1,1,1,3,3,1,1,1,1,0,2,1,2,1,1,0,0,0, - 3,3,3,3,1,2,3,3,3,3,1,1,2,2,3,1,2,3,1,1,0,1,0,2,1,1,1,3,1,0,1,0,1,1,2,0,1,0, - 3,3,3,3,3,3,3,3,3,3,2,1,1,1,3,2,0,1,3,2,2,0,0,2,3,3,1,2,1,0,1,0,3,1,3,0,1,0, - 3,2,3,3,3,3,3,3,3,3,1,1,1,3,3,1,1,1,1,1,1,0,1,3,3,1,2,1,2,0,2,3,3,0,2,0,1,0, - 1,1,2,1,0,0,1,0,1,3,1,0,1,1,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 3,1,3,3,0,3,1,1,2,2,0,3,3,1,3,3,0,1,1,2,2,3,1,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,1,3,3,3,3,0,0,3,3,1,3,0,3,3,1,2,0,3,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,3,1,2,2,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0, - 3,1,3,3,1,1,1,1,3,3,1,1,1,1,2,0,0,1,0,1,0,0,2,2,1,1,1,0,0,0,1,0,0,1,0,0,1,0, - 3,2,3,3,2,2,2,3,3,3,1,1,1,3,2,1,2,1,2,3,0,1,0,0,2,1,2,1,0,0,1,1,1,0,1,0,0,0, - 0,1,0,0,2,3,0,2,0,0,1,3,1,3,0,2,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 3,1,3,3,1,2,1,1,3,2,1,1,1,1,2,1,1,1,2,1,1,1,0,1,2,1,1,0,2,0,1,0,0,0,0,0,0,0, - 0,0,3,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 3,2,3,3,2,1,2,1,3,1,1,1,1,1,1,0,1,1,1,2,0,0,0,0,1,0,1,0,0,0,2,1,0,0,0,0,0,0, - 0,1,0,1,3,3,0,3,0,0,1,0,2,3,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,1,2,3,1,2,0,0,1,3,1,2,0,0,3,0,1,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,3,3,1,3,1,0,1,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,1,1,2,1,1,0,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,3,1,0,2,2,1,2,1,0,2,2,0,2,1,1,1,1,1,0,2,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,1,3,2,2,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,1,3,2,0,2,3,3,2,1,0,1,1,0,2,1, + 3,3,3,3,2,3,2,3,3,3,2,3,3,3,3,2,2,3,3,3,3,1,3,0,3,1,0,3,1,0,2,0,1,1,2,0,0,2, + 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,3,3,0,3,3,3,3,1,3,1,0,0,3,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,0,2,2,1,3,3,1,2,1,0,0,0,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,2,3,1,3,0,3,3,2,3,3,3,2,1,1,1,2,0,0,0, + 3,3,3,3,2,3,3,3,3,3,1,3,2,2,3,2,1,1,2,3,1,1,3,1,3,1,3,1,2,1,2,3,0,2,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,0,3,1,3,3,2,3,2,3,1,3,0,0,0,2, + 3,3,3,3,2,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,3,3,3,1,1,2,2,1,1,2,1,2,1,0,0,0, + 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,2,2,3,2,0,2,3,3,3,3,0,1,0,1,0,0,0,1,0, + 2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,0,3,3,1,3,3,1,3,0,2,0,0,3,3,3, + 3,3,3,3,2,2,3,2,3,3,3,2,2,3,3,2,2,2,1,2,0,0,3,0,3,3,1,1,1,0,2,1,1,1,0,0,0,2, + 3,3,3,3,2,3,3,3,3,3,2,3,1,2,3,1,2,2,2,3,3,0,3,0,3,0,2,3,1,0,1,3,1,1,3,0,1,0, + 3,3,3,3,2,3,3,3,3,3,2,1,3,2,3,1,1,2,1,3,1,0,3,0,2,1,3,1,1,1,0,2,1,2,0,0,0,1, + 3,3,3,3,3,2,2,2,3,3,2,2,3,3,3,1,2,1,3,2,0,0,3,0,3,1,3,1,1,0,1,1,1,2,1,1,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,1,3,0,1,2,1,0,0,0,2,0,0,0,0, + 3,1,3,3,1,1,3,1,3,3,1,1,1,1,3,1,1,1,1,1,0,0,3,0,1,0,2,1,0,0,0,1,0,1,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,2,1,1,3,3,1,3,1,2,3,1,0,3,0,3,1,1,1,1,0,1,0,1,1,1,0,0,1, + 3,3,3,3,1,2,3,3,3,3,1,2,1,1,3,1,2,3,1,1,0,1,2,0,1,1,3,1,1,0,0,0,1,1,1,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,2,2,1,3,2,1,1,2,1,0,0,2,0,3,3,2,1,1,0,1,1,1,3,3,0,0,1, + 3,2,3,3,3,3,3,3,3,3,1,1,1,3,3,1,1,1,1,1,1,0,3,0,3,1,1,1,1,1,2,3,1,2,1,0,0,0, + 1,1,2,1,0,0,1,0,3,0,1,1,1,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1, + 3,1,3,3,0,3,1,1,3,2,1,3,3,1,3,3,0,2,1,2,2,3,1,0,2,1,0,1,0,0,1,0,0,0,0,0,0,0, + 0,3,0,0,3,3,3,3,0,0,3,3,1,3,0,3,3,1,2,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,3,3,3,2,3,3,3,3,3,3,2,2,1,2,1,1,1,2,0,2,0,0,1,2,1,1,1,0,0,0,0,0,0, + 3,1,3,2,1,0,1,1,3,3,1,1,1,1,2,0,0,1,1,1,0,0,0,3,0,1,0,1,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,2,3,1,2,0,0,0,3,1,3,0,2,0,0,0,0,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,1,2,2,2,3,3,1,1,2,2,2,1,2,1,1,3,0,0,0,0,2,1,1,2,0,1,1,0,0,0,0,0,0,1, + 3,1,3,3,1,1,1,1,2,3,1,1,1,2,2,1,1,1,1,2,1,0,1,0,2,1,0,1,2,0,1,1,1,1,0,0,0,0, + 1,0,3,1,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,2,0,0,0,0,1,0,0,1,0,0,2,0,0,1,0,0,0,0, + 0,2,0,0,2,3,1,3,0,0,0,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,1,1,0,3,3,1,3,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,2,3,1,2,0,0,1,3,1,2,0,0,3,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,1,0,1,1,1,1,1,3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,2,2,1,1,1,1,3,2,1,1,1,1,1,1,1,0,2,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0, + 0,1,0,0,1,3,2,2,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -197,7 +197,7 @@ const SequenceModel Iso_8859_15FrenchModel = Iso_8859_15_CharToOrderMap, FrenchLangModel, 38, - (float)0.9990053958283, + (float)0.9990016300365898, PR_TRUE, "ISO-8859-15", "fr" @@ -208,7 +208,7 @@ const SequenceModel Iso_8859_1FrenchModel = Iso_8859_1_CharToOrderMap, FrenchLangModel, 38, - (float)0.9990053958283, + (float)0.9990016300365898, PR_TRUE, "ISO-8859-1", "fr" @@ -219,7 +219,7 @@ const SequenceModel Windows_1252FrenchModel = Windows_1252_CharToOrderMap, FrenchLangModel, 38, - (float)0.9990053958283, + (float)0.9990016300365898, PR_TRUE, "WINDOWS-1252", "fr" @@ -232,8 +232,8 @@ const LanguageModel FrenchModel = 76, FrenchLangModel, 38, - 4, - (float)0.3741847216798905, + 5, + (float)0.448850221338782, 19, - (float)0.03469583335040825, + (float)0.03475814849488167, }; diff --git a/src/LangModels/LangGermanModel.cpp b/src/LangModels/LangGermanModel.cpp index 52c7c08..3ed2684 100644 --- a/src/LangModels/LangGermanModel.cpp +++ b/src/LangModels/LangGermanModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:05:20.300464 + * On: 2022-12-14 23:59:59.485669 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 6, 15, 12, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 13, /* 4X */ - 20, 29, 3, 4, 5, 9, 21, 18, 28, 27, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 6, 15, 12, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 13, /* 6X */ - 20, 29, 3, 4, 5, 9, 21, 18, 28, 27, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 6, 15, 13, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 12, /* 4X */ + 20, 29, 3, 4, 5, 9, 21, 18, 28, 26, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 6, 15, 13, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 12, /* 6X */ + 20, 29, 3, 4, 5, 9, 21, 18, 28, 26, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 47,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 32, 31, 48, 39, 22, 43, 51, 35, 37, 30, 42, 55, 44, 33, 49, 57, /* CX */ - 58, 52, 46, 38, 45, 54, 24,SYM, 34, 50, 40, 53, 23, 56, 60, 26, /* DX */ - 32, 31, 48, 39, 22, 43, 51, 35, 37, 30, 42, 55, 44, 33, 49, 57, /* EX */ - 58, 52, 46, 38, 45, 54, 24,SYM, 34, 50, 40, 53, 23, 56, 61, 62, /* FX */ + SYM,SYM,SYM,SYM,SYM, 55,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 41, 31, 40, 35, 22, 52, 43, 37, 34, 30, 51, 45, 60, 32, 48, 59, /* CX */ + 36, 42, 50, 33, 44, 57, 24,SYM, 47, 56, 38, 53, 23, 49, 46, 27, /* DX */ + 41, 31, 40, 35, 22, 52, 43, 37, 34, 30, 51, 45, 60, 32, 48, 59, /* EX */ + 36, 42, 50, 33, 44, 57, 24,SYM, 47, 56, 38, 53, 23, 49, 46, 61, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,75 +89,75 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 6, 15, 12, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 13, /* 4X */ - 20, 29, 3, 4, 5, 9, 21, 18, 28, 27, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 6, 15, 12, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 13, /* 6X */ - 20, 29, 3, 4, 5, 9, 21, 18, 28, 27, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 63,SYM,SYM,SYM,SYM,SYM,SYM, 36,SYM, 59,ILL, 41,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 36,SYM, 59,ILL, 41, 64, /* 9X */ + SYM, 6, 15, 13, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 12, /* 4X */ + 20, 29, 3, 4, 5, 9, 21, 18, 28, 26, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 6, 15, 13, 7, 0, 16, 11, 8, 2, 25, 17, 10, 14, 1, 12, /* 6X */ + 20, 29, 3, 4, 5, 9, 21, 18, 28, 26, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 62,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 54,ILL, 58,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 54,ILL, 58, 63, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 47,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 32, 31, 48, 39, 22, 43, 51, 35, 37, 30, 42, 55, 44, 33, 49, 57, /* CX */ - 58, 52, 46, 38, 45, 54, 24,SYM, 34, 50, 40, 53, 23, 56, 65, 26, /* DX */ - 32, 31, 48, 39, 22, 43, 51, 35, 37, 30, 42, 55, 44, 33, 49, 57, /* EX */ - 58, 52, 46, 38, 45, 54, 24,SYM, 34, 50, 40, 53, 23, 56, 66, 67, /* FX */ + SYM,SYM,SYM,SYM,SYM, 55,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 41, 31, 40, 35, 22, 52, 43, 37, 34, 30, 51, 45, 60, 32, 48, 59, /* CX */ + 36, 42, 50, 33, 44, 57, 24,SYM, 47, 56, 38, 53, 23, 49, 46, 27, /* DX */ + 41, 31, 40, 35, 22, 52, 43, 37, 34, 30, 51, 45, 60, 32, 48, 59, /* EX */ + 36, 42, 50, 33, 44, 57, 24,SYM, 47, 56, 38, 53, 23, 49, 46, 64, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 59; static const unsigned int Unicode_CharOrder[] = { - 65, 6, 66, 15, 67, 12, 68, 7, 69, 0, 70, 16, 71, 11, 72, 8, - 73, 2, 74, 25, 75, 17, 76, 10, 77, 14, 78, 1, 79, 13, 80, 20, + 65, 6, 66, 15, 67, 13, 68, 7, 69, 0, 70, 16, 71, 11, 72, 8, + 73, 2, 74, 25, 75, 17, 76, 10, 77, 14, 78, 1, 79, 12, 80, 20, 81, 29, 82, 3, 83, 4, 84, 5, 85, 9, 86, 21, 87, 18, 88, 28, - 89, 27, 90, 19, 97, 6, 98, 15, 99, 12, 100, 7, 101, 0,102, 16, + 89, 26, 90, 19, 97, 6, 98, 15, 99, 13, 100, 7, 101, 0,102, 16, 103, 11, 104, 8, 105, 2, 106, 25, 107, 17, 108, 10, 109, 14,110, 1, - 111, 13, 112, 20, 113, 29, 114, 3, 115, 4, 116, 5, 117, 9,118, 21, - 119, 18, 120, 28, 121, 27, 122, 19, 196, 22, 214, 24, 220, 23,223, 26, + 111, 12, 112, 20, 113, 29, 114, 3, 115, 4, 116, 5, 117, 9,118, 21, + 119, 18, 120, 28, 121, 26, 122, 19, 196, 22, 214, 24, 220, 23,223, 27, 228, 22, 246, 24, 252, 23, }; /* Model Table: - * Total considered sequences: 1194 / 900 - * - Positive sequences: first 494 (0.9950332887709427) - * - Probable sequences: next 153 (647-494) (0.003970985671306937) - * - Neutral sequences: last 253 (0.0009957255577504043) - * - Negative sequences: -294 (off-ratio) + * Total considered sequences: 1313 / 900 + * - Positive sequences: first 511 (0.9950430213396004) + * - Probable sequences: next 186 (697-511) (0.0039634314878256305) + * - Neutral sequences: last 203 (0.0009935471725739387) + * - Negative sequences: -413 (off-ratio) * Negative sequences: TODO */ static const PRUint8 GermanLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,1,2,2,3,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,0,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,3,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,0,1,2,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,2,3,3,2,2,0,3,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,2,3,3,3,2,0,3,1,1, - 3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,1,1,0,1,3,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,1,1, - 3,3,3,3,3,3,3,2,3,3,3,3,1,3,3,3,2,3,2,2,2,2,3,3,2,2,0,2,1,1, - 3,1,3,3,2,3,3,3,3,3,3,1,2,3,2,1,1,3,1,1,1,2,1,1,0,1,0,2,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,3,3,2,2,1, - 3,3,3,2,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,1,1,2,1,1, - 3,3,3,3,3,3,3,2,3,3,3,3,2,3,2,3,2,3,3,3,1,2,3,3,2,3,0,2,0,1, - 3,3,3,3,3,3,3,2,3,3,3,3,1,3,2,3,3,3,2,2,2,2,3,3,3,2,0,1,1,1, - 3,3,3,3,3,3,3,2,2,3,3,3,1,3,3,2,3,2,3,2,2,2,3,3,3,1,0,2,0,0, - 3,2,3,2,2,2,3,1,2,3,2,1,1,3,1,1,1,1,1,1,1,1,3,3,3,3,0,1,0,1, - 3,2,3,2,3,3,3,2,2,3,3,3,1,3,2,3,2,2,3,2,2,2,3,3,3,1,0,2,0,0, - 3,1,3,3,3,3,3,3,3,3,3,1,1,3,2,1,3,1,1,2,3,2,3,1,1,2,0,2,1,1, - 3,1,3,2,2,1,3,2,1,2,1,2,1,3,1,1,1,1,1,1,2,2,1,1,3,1,0,1,0,0, - 1,3,3,3,3,3,1,3,3,3,3,3,3,2,3,2,3,1,0,1,1,1,0,0,0,0,3,0,0,1, - 1,3,0,3,3,3,0,3,3,0,3,3,3,0,2,3,2,1,0,0,2,0,0,1,0,0,2,0,0,0, - 1,3,0,3,3,3,1,3,3,0,3,3,3,1,3,1,3,2,2,1,2,2,0,0,0,0,3,1,0,0, - 3,1,2,1,1,1,3,1,1,3,1,1,1,3,1,1,0,1,1,1,1,1,3,3,2,1,0,1,0,0, - 3,3,3,2,3,3,1,1,2,2,3,2,1,1,2,3,1,1,1,1,1,1,0,0,1,0,0,0,0,0, - 3,3,1,2,3,2,3,2,1,2,3,1,2,2,3,2,1,2,1,2,3,1,0,1,0,2,0,1,0,0, - 3,1,3,1,1,3,2,1,1,2,1,1,1,1,1,1,1,2,1,1,3,1,0,0,1,0,0,1,1,0, - 0,0,1,1,0,1,1,0,0,3,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,2,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,1,2,2,2,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,2,3,3,3,2,2,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,2,3,3,3,2,3,0,0,1, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,2,2,3,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,1,1, + 3,3,3,3,3,3,3,2,3,3,3,3,3,1,3,3,2,3,3,2,2,2,3,3,2,2,3,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,3,3,3,3,1, + 3,1,3,3,2,3,3,3,3,3,3,1,3,3,2,1,1,3,1,2,1,1,1,0,1,1,2,0,1,2, + 3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,2,3,2,3,2,3,3,3,1,3,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,2,2,3,3,3,2,3,0,0,1, + 3,3,3,3,3,3,3,2,2,3,3,3,3,2,2,3,3,2,2,2,2,2,3,3,3,2,1,0,1,1, + 3,3,3,3,3,3,3,2,3,3,3,3,3,1,3,2,3,3,3,3,2,2,3,3,3,2,3,0,1,0, + 3,2,3,2,2,2,3,2,2,3,2,1,3,1,1,1,2,1,2,1,1,1,3,3,3,2,1,0,0,0, + 3,2,3,2,3,3,3,2,2,3,3,3,3,1,2,3,2,2,3,3,2,2,3,3,3,1,2,0,0,1, + 3,1,3,3,3,3,3,2,3,3,3,1,3,2,2,2,3,1,1,2,3,1,3,1,2,1,2,1,0,0, + 3,1,3,2,2,1,3,1,1,2,1,2,3,1,1,1,1,1,1,1,1,1,1,1,3,0,1,0,0,0, + 2,3,3,3,3,3,1,3,3,3,3,3,2,3,3,2,3,2,0,2,2,1,0,0,0,0,1,3,0,2, + 0,3,0,3,3,3,0,3,3,0,3,3,0,3,2,3,2,0,0,0,2,0,0,1,1,0,0,2,0,0, + 1,3,1,3,3,3,1,3,3,0,3,3,0,3,3,2,3,3,2,2,2,1,0,0,1,0,0,3,1,0, + 3,1,2,1,2,0,3,1,1,3,1,1,3,1,1,1,0,1,0,0,1,1,3,3,2,1,1,0,1,1, + 3,3,2,3,3,2,3,2,1,2,3,2,3,2,3,2,1,2,1,2,3,1,1,0,1,1,1,0,1,0, + 3,2,3,2,2,3,1,1,2,2,3,2,0,1,2,3,2,1,1,1,1,1,0,0,0,0,0,0,0,1, + 3,1,3,1,1,3,2,1,1,2,1,0,2,1,1,1,2,1,1,1,3,1,0,0,0,1,1,0,1,0, + 1,0,1,2,1,0,2,1,1,3,1,0,1,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1, }; @@ -166,7 +166,7 @@ const SequenceModel Iso_8859_1GermanModel = Iso_8859_1_CharToOrderMap, GermanLangModel, 30, - (float)0.9990042744422496, + (float)0.9990064528274261, PR_TRUE, "ISO-8859-1", "de" @@ -177,7 +177,7 @@ const SequenceModel Windows_1252GermanModel = Windows_1252_CharToOrderMap, GermanLangModel, 30, - (float)0.9990042744422496, + (float)0.9990064528274261, PR_TRUE, "WINDOWS-1252", "de" @@ -190,8 +190,8 @@ const LanguageModel GermanModel = 59, GermanLangModel, 30, - 3, - (float)0.3342907100494642, + 4, + (float)0.41151145287118224, 20, - (float)0.031235642270464454, + (float)0.031167320677876705, }; diff --git a/src/LangModels/LangGreekModel.cpp b/src/LangModels/LangGreekModel.cpp index 7506c46..29e5b1d 100644 --- a/src/LangModels/LangGreekModel.cpp +++ b/src/LangModels/LangGreekModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:05:43.615861 + * On: 2022-12-15 00:00:15.231612 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_7_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 32, 49, 40, 42, 31, 50, 47, 43, 33, 55, 52, 39, 44, 34, 35, /* 4X */ - 48, 59, 36, 38, 37, 45, 53, 54, 56, 51, 57,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 32, 49, 40, 42, 31, 50, 47, 43, 33, 55, 52, 39, 44, 34, 35, /* 6X */ - 48, 59, 36, 38, 37, 45, 53, 54, 56, 51, 57,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 32, 48, 40, 41, 31, 50, 49, 44, 33, 55, 54, 39, 43, 34, 36, /* 4X */ + 47, 59, 35, 37, 38, 45, 52, 53, 58, 51, 57,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 32, 48, 40, 41, 31, 50, 49, 44, 33, 55, 54, 39, 43, 34, 36, /* 6X */ + 47, 59, 35, 37, 38, 45, 52, 53, 58, 51, 57,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM, 17,SYM, 19, 21, 15,SYM, 16,SYM, 24, 26, /* BX */ - 58, 0, 28, 18, 20, 5, 30, 9, 25, 3, 6, 14, 12, 4, 29, 1, /* CX */ - 11, 7,ILL, 8, 2, 13, 27, 23, 41, 22, 46, 60, 17, 19, 21, 15, /* DX */ - 62, 0, 28, 18, 20, 5, 30, 9, 25, 3, 6, 14, 12, 4, 29, 1, /* EX */ - 11, 7, 10, 8, 2, 13, 27, 23, 41, 22, 46, 60, 16, 24, 26,ILL, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 17,SYM, 19, 22, 15,SYM, 16,SYM, 24, 27, /* BX */ + 56, 0, 26, 18, 20, 5, 30, 9, 25, 3, 8, 14, 12, 4, 29, 1, /* CX */ + 11, 6,ILL, 7, 2, 13, 28, 23, 42, 21, 46, 60, 17, 19, 22, 15, /* DX */ + 61, 0, 26, 18, 20, 5, 30, 9, 25, 3, 8, 14, 12, 4, 29, 1, /* EX */ + 11, 6, 10, 7, 2, 13, 28, 23, 42, 21, 46, 60, 16, 24, 27,ILL, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,132 +89,134 @@ static const unsigned char Windows_1253_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 32, 49, 40, 42, 31, 50, 47, 43, 33, 55, 52, 39, 44, 34, 35, /* 4X */ - 48, 59, 36, 38, 37, 45, 53, 54, 56, 51, 57,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 32, 49, 40, 42, 31, 50, 47, 43, 33, 55, 52, 39, 44, 34, 35, /* 6X */ - 48, 59, 36, 38, 37, 45, 53, 54, 56, 51, 57,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 32, 48, 40, 41, 31, 50, 49, 44, 33, 55, 54, 39, 43, 34, 36, /* 4X */ + 47, 59, 35, 37, 38, 45, 52, 53, 58, 51, 57,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 32, 48, 40, 41, 31, 50, 49, 44, 33, 55, 54, 39, 43, 34, 36, /* 6X */ + 47, 59, 35, 37, 38, 45, 52, 53, 58, 51, 57,SYM,SYM,SYM,SYM,CTR, /* 7X */ SYM,ILL,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,ILL,SYM,ILL,ILL,ILL,ILL, /* 8X */ ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,ILL,SYM,ILL,ILL,ILL,ILL, /* 9X */ SYM,SYM, 17,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 61,SYM,SYM, 19, 21, 15,SYM, 16,SYM, 24, 26, /* BX */ - 58, 0, 28, 18, 20, 5, 30, 9, 25, 3, 6, 14, 12, 4, 29, 1, /* CX */ - 11, 7,ILL, 8, 2, 13, 27, 23, 41, 22, 46, 60, 17, 19, 21, 15, /* DX */ - 62, 0, 28, 18, 20, 5, 30, 9, 25, 3, 6, 14, 12, 4, 29, 1, /* EX */ - 11, 7, 10, 8, 2, 13, 27, 23, 41, 22, 46, 60, 16, 24, 26,ILL, /* FX */ + SYM,SYM,SYM,SYM,SYM, 62,SYM,SYM, 19, 22, 15,SYM, 16,SYM, 24, 27, /* BX */ + 56, 0, 26, 18, 20, 5, 30, 9, 25, 3, 8, 14, 12, 4, 29, 1, /* CX */ + 11, 6,ILL, 7, 2, 13, 28, 23, 42, 21, 46, 60, 17, 19, 22, 15, /* DX */ + 61, 0, 26, 18, 20, 5, 30, 9, 25, 3, 8, 14, 12, 4, 29, 1, /* EX */ + 11, 6, 10, 7, 2, 13, 28, 23, 42, 21, 46, 60, 16, 24, 27,ILL, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 84; +static const int Unicode_Char_size = 86; static const unsigned int Unicode_CharOrder[] = { - 65, 32, 67, 40, 69, 31, 73, 33, 76, 39, 78, 34, 79, 35, 82, 36, - 83, 38, 84, 37, 97, 32, 99, 40, 101, 31, 105, 33, 108, 39,110, 34, - 111, 35, 114, 36, 115, 38, 116, 37, 902, 17, 904, 19, 905, 21,906, 15, - 908, 16, 910, 24, 911, 26, 913, 0, 914, 28, 915, 18, 916, 20,917, 5, - 918, 30, 919, 9, 920, 25, 921, 3, 922, 6, 923, 14, 924, 12,925, 4, - 926, 29, 927, 1, 928, 11, 929, 7, 931, 8, 931, 10, 932, 2,933, 13, - 934, 27, 935, 23, 936, 41, 937, 22, 940, 17, 941, 19, 942, 21,943, 15, - 945, 0, 946, 28, 947, 18, 948, 20, 949, 5, 950, 30, 951, 9,952, 25, - 953, 3, 954, 6, 955, 14, 956, 12, 957, 4, 958, 29, 959, 1,960, 11, - 961, 7, 962, 10, 963, 8, 964, 2, 965, 13, 966, 27, 967, 23,968, 41, - 969, 22, 972, 16, 973, 24, 974, 26, + 65, 32, 67, 40, 68, 41, 69, 31, 73, 33, 76, 39, 78, 34, 79, 36, + 82, 35, 83, 37, 84, 38, 97, 32, 99, 40, 100, 41, 101, 31,105, 33, + 108, 39, 110, 34, 111, 36, 114, 35, 115, 37, 116, 38, 902, 17,904, 19, + 905, 22, 906, 15, 908, 16, 910, 24, 911, 27, 913, 0, 914, 26,915, 18, + 916, 20, 917, 5, 918, 30, 919, 9, 920, 25, 921, 3, 922, 8,923, 14, + 924, 12, 925, 4, 926, 29, 927, 1, 928, 11, 929, 6, 931, 7,931, 10, + 932, 2, 933, 13, 934, 28, 935, 23, 936, 42, 937, 21, 940, 17,941, 19, + 942, 22, 943, 15, 945, 0, 946, 26, 947, 18, 948, 20, 949, 5,950, 30, + 951, 9, 952, 25, 953, 3, 954, 8, 955, 14, 956, 12, 957, 4,958, 29, + 959, 1, 960, 11, 961, 6, 962, 10, 963, 7, 964, 2, 965, 13,966, 28, + 967, 23, 968, 42, 969, 21, 972, 16, 973, 24, 974, 27, }; /* Model Table: - * Total considered sequences: 1629 / 1764 - * - Positive sequences: first 850 (0.9950192468921002) - * - Probable sequences: next 252 (1102-850) (0.003986534258695218) - * - Neutral sequences: last 662 (0.0009942188492045867) - * - Negative sequences: 135 (off-ratio) + * Total considered sequences: 1515 / 1849 + * - Positive sequences: first 852 (0.9950198012242328) + * - Probable sequences: next 229 (1081-852) (0.003981133733535591) + * - Neutral sequences: last 768 (0.0009990650422315728) + * - Negative sequences: 334 (off-ratio) * Negative sequences: TODO */ static const PRUint8 GreekLangModel[] = { - 2,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,1,3,2,3, - 3,1,3,3,3,2,3,3,3,3,0,0,0,0,0,0,0,1,0,0,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3, - 3,2,3,3,3,2,3,3,3,3,0,0,0,1,0,0,0,0,0,0,3, - 3,3,3,3,2,3,2,3,3,3,3,1,3,3,3,3,3,3,2,3,1, - 3,3,2,3,2,3,2,2,0,3,0,0,0,0,1,0,0,0,0,0,0, + 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, + 0,3,3,3,3,3,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3, + 2,3,3,3,3,3,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,2,3,0, + 3,3,2,3,3,2,3,2,0,3,0,0,0,0,0,2,0,0,0,0,0,0, 3,3,3,2,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3, - 3,3,3,1,3,3,3,3,3,3,0,1,0,1,0,0,0,1,0,0,3, - 3,3,3,3,3,3,3,2,3,3,2,2,3,3,2,3,3,3,3,3,3, - 3,3,2,3,3,3,2,1,1,2,0,0,0,0,1,0,0,1,0,0,0, - 3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,1,3, - 1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,0,0,3, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3, - 3,3,3,3,3,3,3,2,0,1,0,1,0,0,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,2,0,1,0,0,0,0,0,0,0,0,1, + 3,3,3,1,3,3,3,3,3,3,0,0,0,0,0,1,0,0,0,0,0,3, + 3,3,3,3,3,3,2,3,3,3,3,1,2,3,3,3,3,3,3,3,3, + 3,3,3,3,3,1,3,2,1,3,0,1,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3, + 3,2,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1,0,0,0,0,0,1, 3,3,3,3,2,3,3,3,3,3,0,3,3,3,3,3,3,3,2,3,3, - 3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,3,1,3,2,3,3,3,1,3,3,3,0,3,1,1,1,3,2,3, - 0,0,3,1,3,0,3,2,3,0,0,0,0,0,0,0,0,0,0,0,3, - 0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 3,3,3,3,3,3,1,3,1,3,1,3,1,3,3,3,3,3,1,3,0, - 3,3,1,3,1,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,2,3,3,3,1,1,2,3,2,3,3,3,2,3,3,3,1,3,1, - 3,3,2,3,0,3,3,3,0,1,0,1,0,0,0,0,0,0,0,0,2, + 3,3,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,1,3,3, + 3,3,2,3,2,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,3,1,3,3,3,3,3,0,3,3,3,0,3,1,0,0,3,1,3, + 0,0,3,1,3,2,0,3,3,0,1,0,0,0,0,0,0,0,0,0,0,3, + 1,1,1,0,0,1,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0, + 0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,1,1,3,1,3,0,3,3,3,3,3,1,3,1, + 3,3,1,3,1,1,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,2,3,3,3,1,3,1,3,2,3,3,3,1,3,3,3,1,3,0, + 3,3,1,3,0,3,3,3,0,1,0,0,0,0,0,1,1,0,0,0,0,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3, - 3,1,3,0,3,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3, - 3,3,3,3,3,3,3,1,2,3,2,3,3,3,3,3,3,3,3,3,3, - 3,3,2,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,2, + 0,3,3,0,3,3,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 3,3,3,3,3,3,1,3,3,3,2,3,3,3,3,3,3,3,3,3,3, + 3,3,2,3,3,3,3,3,1,1,0,0,0,0,0,1,0,0,0,0,0,2, 3,3,3,1,3,3,3,3,3,3,3,3,3,0,3,0,0,0,3,0,3, - 0,3,3,0,3,0,3,3,3,3,0,0,0,0,0,0,0,1,0,0,3, - 2,3,3,2,3,3,3,3,3,3,3,3,3,1,3,0,0,0,3,0,3, - 0,2,3,0,3,0,3,3,2,3,0,0,0,0,0,0,0,0,0,0,3, - 2,3,3,3,3,2,3,3,3,3,3,3,3,1,3,0,0,0,3,0,3, - 0,1,3,0,3,0,3,3,3,3,0,0,0,0,0,0,0,0,1,0,2, - 3,3,1,3,3,3,3,3,0,3,0,0,3,3,3,3,3,3,3,3,3, - 3,3,3,3,0,3,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,2,3,3,3,1,3,0,0,0,3,0,3, - 0,3,3,0,3,0,3,3,3,3,0,0,0,1,0,0,0,0,0,0,3, - 3,3,1,3,2,3,2,3,1,3,0,0,1,3,0,3,3,3,1,3,0, - 3,3,0,3,0,3,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0, - 1,0,3,1,3,2,3,3,3,0,3,3,3,0,3,0,0,0,3,0,3, - 0,1,3,0,3,0,3,1,3,1,0,0,0,0,0,0,0,0,0,0,2, - 2,2,3,3,3,2,3,3,3,1,3,3,3,1,3,2,1,3,3,1,3, - 3,1,2,0,3,1,3,3,2,2,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,0,3,1,3,1,0,3,3,3,3,3,3,1,3,0, - 3,3,0,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 2,3,3,2,3,3,3,3,3,2,3,3,3,1,3,0,0,0,3,0,3, + 2,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,2, + 3,3,3,3,3,3,3,3,3,2,3,3,3,1,3,0,0,0,3,1,3, + 1,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,2, + 3,3,1,3,3,3,3,0,3,3,0,0,3,3,3,3,3,3,3,3,3, + 3,3,3,3,0,1,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,1,3,3,3,1,3,0,0,0,3,0,3, + 3,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 3,3,0,3,2,3,3,0,1,3,0,0,1,3,0,3,3,3,1,3,1, + 3,3,0,3,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,2,3,2,3,1,3,3,3,1,3,3,3,1,3,2,1,3,3,1,3, + 0,3,2,0,3,3,1,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,3,2,3,2,3,3,3,1,3,3,3,0,3,0,0,0,3,1,3, + 0,0,3,0,3,1,0,3,2,1,0,0,0,0,0,0,0,0,0,0,0,2, + 3,3,3,3,3,3,3,1,0,3,1,0,3,3,3,3,3,3,0,3,0, + 3,3,0,3,3,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 3,3,3,2,3,3,3,3,3,2,3,3,3,0,3,0,0,0,3,0,3, - 0,2,3,0,3,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3, - 3,3,0,3,3,3,0,3,1,3,0,0,3,3,3,3,3,3,1,3,0, - 3,3,0,3,0,3,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0, - 2,2,3,3,3,1,2,3,3,3,3,3,3,0,3,0,0,0,2,0,3, - 0,2,2,0,3,0,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,3,2,3,2,3,1,0,1,3,3,3,3,3,3,3,1, - 3,3,0,3,3,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,1,3,1,3,1,3,1,3,1,1,0,3,3,3,3,3,2,3,3, - 3,3,0,2,0,3,1,2,0,1,1,0,0,0,0,1,0,0,0,0,0, - 3,3,1,3,0,3,1,0,0,3,0,2,1,3,1,3,3,3,1,3,0, - 3,3,0,3,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,1,3,1,3,1,1,1,3,0,1,2,2,1,3,3,3,1,3,0, - 3,3,0,2,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0, - 0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,1,0,0,0,0,0,3,2,3,3,2,3,3,3,3,3,0, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,1,0,0,0,0,0,3,3,2,3,3,3,3,3,3,3,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0, - 0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,3,3,2,3,0, - 0,0,0,0,1,0,0,1,1,0,1,1,1,1,0,1,0,0,0,0,1, - 0,0,0,1,0,0,0,0,0,0,2,2,3,3,3,3,3,3,3,3,0, - 1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0, - 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0, - 0,0,0,1,0,0,0,0,0,0,3,3,3,1,3,3,3,3,2,2,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,3,3,3,2,3,2,3,3,2,3,0, + 2,0,3,0,3,3,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3, + 3,3,0,3,3,3,3,0,1,3,1,0,3,3,3,3,3,3,0,3,0, + 3,3,0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,1,3,1,3,3,1,1,3,1,0,1,3,3,3,3,3,2,3,3, + 3,3,0,2,0,2,2,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0, + 2,2,3,2,3,1,3,3,2,3,3,3,3,0,3,0,0,0,1,0,3, + 2,0,2,0,3,3,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,1, + 3,3,3,3,2,3,3,2,0,3,0,0,1,3,3,3,3,3,2,3,0, + 3,3,0,3,3,0,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,1,3,0,3,0,0,1,3,0,2,1,3,0,3,2,3,1,3,0, + 3,3,0,3,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 3,3,1,3,2,3,1,1,1,3,0,1,2,2,1,3,3,3,1,3,1, + 3,3,1,2,0,1,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,0,0,0,0,1,1,1,0,1,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,3,3,3,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,2,3,3,3,2,3,3,3,3,3,0, + 0,0,0,0,0,0,1,1,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,2,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,1,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,3,2,3,3,3,2,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,3,3,3,1,3,1,3,2,3,2,0, - 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,0,0,0,0,0,0,3,3,3,2,3,3,3,2,3,2,0, - 3,3,0,3,0,3,0,0,0,3,0,1,0,3,0,2,2,2,0,1,0, - 3,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,0, + 0,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,1,1,0,0,0,0,2,2,2,3,3,3,3,3,3,3,3,0, + 0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,2,2,3,3,3,2,3,1,0, + 0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,1,3,3,3,3,2,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,1,1,3,2,2,3,2,3,0, + 0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,1,3,3,2,3,3,2,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,3,3,3,2,3,3,2,1,2,1,2,0, + 3,3,1,2,0,3,0,0,0,3,0,0,0,3,0,3,2,2,0,1,0, + 2,3,0,1,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -222,8 +224,8 @@ const SequenceModel Iso_8859_7GreekModel = { Iso_8859_7_CharToOrderMap, GreekLangModel, - 42, - (float)0.9990057811507954, + 43, + (float)0.9990009349577684, PR_FALSE, "ISO-8859-7", "el" @@ -233,8 +235,8 @@ const SequenceModel Windows_1253GreekModel = { Windows_1253_CharToOrderMap, GreekLangModel, - 42, - (float)0.9990057811507954, + 43, + (float)0.9990009349577684, PR_FALSE, "WINDOWS-1253", "el" @@ -244,11 +246,11 @@ const LanguageModel GreekModel = { "el", Unicode_CharOrder, - 84, + 86, GreekLangModel, - 42, - 5, - (float)0.3796638326464317, + 43, + 6, + (float)0.440545731568196, 27, - (float)0.03455794045912186, + (float)0.03465402569480207, }; diff --git a/src/LangModels/LangHebrewModel.cpp b/src/LangModels/LangHebrewModel.cpp index d609413..33b857e 100644 --- a/src/LangModels/LangHebrewModel.cpp +++ b/src/LangModels/LangHebrewModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:05:54.189238 + * On: 2022-12-14 23:55:24.014547 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_8_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 46, 44, 42, 53, 59, 65, 62, 60, 48, 69, 74, 58, 41, 63, 67, /* 4X */ - 57, 78, 55, 52, 54, 66, 61, 70, 71, 76, 77,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 27, 47, 37, 38, 26, 56, 43, 40, 29, 73, 51, 34, 39, 32, 31, /* 6X */ - 45, 75, 30, 35, 33, 36, 49, 64, 72, 50, 68,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 45, 51, 42, 52, 57, 62, 58, 67, 48, 72, 70, 59, 53, 60, 64, /* 4X */ + 56, 78, 61, 46, 50, 65, 66, 69, 76, 74, 77,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 28, 47, 37, 38, 27, 55, 41, 40, 29, 73, 54, 34, 39, 31, 32, /* 6X */ + 44, 75, 30, 35, 33, 36, 43, 68, 71, 49, 63,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,CTR,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 79,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,CTR, /* BX */ + SYM,SYM,SYM,SYM,SYM, 80,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,CTR, /* BX */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* CX */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,SYM, /* DX */ - 8, 6, 20, 13, 2, 1, 23, 16, 19, 0, 24, 18, 4, 11, 7, 22, /* EX */ - 10, 17, 12, 25, 14, 28, 21, 15, 3, 9, 5,CTR,CTR,SYM,SYM,CTR, /* FX */ + 8, 5, 20, 12, 2, 1, 23, 16, 19, 0, 24, 18, 4, 11, 7, 22, /* EX */ + 10, 17, 13, 25, 15, 26, 21, 14, 3, 9, 6,CTR,CTR,SYM,SYM,CTR, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,173 +89,173 @@ static const unsigned char Windows_1255_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 46, 44, 42, 53, 59, 65, 62, 60, 48, 69, 74, 58, 41, 63, 67, /* 4X */ - 57, 78, 55, 52, 54, 66, 61, 70, 71, 76, 77,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 27, 47, 37, 38, 26, 56, 43, 40, 29, 73, 51, 34, 39, 32, 31, /* 6X */ - 45, 75, 30, 35, 33, 36, 49, 64, 72, 50, 68,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,CTR,SYM, 80,SYM,SYM,SYM,SYM, 81,SYM,CTR,SYM,CTR,CTR,CTR,CTR, /* 8X */ + SYM, 45, 51, 42, 52, 57, 62, 58, 67, 48, 72, 70, 59, 53, 60, 64, /* 4X */ + 56, 78, 61, 46, 50, 65, 66, 69, 76, 74, 77,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 28, 47, 37, 38, 27, 55, 41, 40, 29, 73, 54, 34, 39, 31, 32, /* 6X */ + 44, 75, 30, 35, 33, 36, 43, 68, 71, 49, 63,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,CTR,SYM, 81,SYM,SYM,SYM,SYM, 82,SYM,CTR,SYM,CTR,CTR,CTR,CTR, /* 8X */ CTR,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,CTR,SYM,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM, 82,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 83,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + SYM,SYM,SYM,SYM, 83,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 84,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - SYM,SYM,SYM,SYM, 84, 85, 86,SYM,SYM,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* DX */ - 8, 6, 20, 13, 2, 1, 23, 16, 19, 0, 24, 18, 4, 11, 7, 22, /* EX */ - 10, 17, 12, 25, 14, 28, 21, 15, 3, 9, 5,CTR,CTR,SYM,SYM,CTR, /* FX */ + SYM,SYM,SYM,SYM, 85, 86, 79,SYM,SYM,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* DX */ + 8, 5, 20, 12, 2, 1, 23, 16, 19, 0, 24, 18, 4, 11, 7, 22, /* EX */ + 10, 17, 13, 25, 15, 26, 21, 14, 3, 9, 6,CTR,CTR,SYM,SYM,CTR, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 64; static const unsigned int Unicode_CharOrder[] = { - 65, 46, 66, 44, 67, 42, 68, 53, 69, 59, 71, 62, 72, 60, 73, 48, - 76, 58, 77, 41, 78, 63, 80, 57, 82, 55, 83, 52, 84, 54, 86, 61, - 97, 27, 98, 47, 99, 37, 100, 38, 101, 26, 102, 56, 103, 43, 104, 40, - 105, 29, 107, 51, 108, 34, 109, 39, 110, 32, 111, 31, 112, 45, 114, 30, - 115, 35, 116, 33, 117, 36, 118, 49, 121, 50, 1488, 8, 1489, 6,1490, 20, - 1491, 13, 1492, 2, 1493, 1, 1494, 23, 1495, 16, 1496, 19, 1497, 0,1498, 24, - 1499, 18, 1500, 4, 1501, 11, 1502, 7, 1503, 22, 1504, 10, 1505, 17,1506, 12, - 1507, 25, 1508, 14, 1509, 28, 1510, 21, 1511, 15, 1512, 3, 1513, 9,1514, 5, + 65, 45, 66, 51, 67, 42, 68, 52, 69, 57, 70, 62, 71, 58, 73, 48, + 76, 59, 77, 53, 78, 60, 80, 56, 82, 61, 83, 46, 84, 50, 97, 28, + 98, 47, 99, 37, 100, 38, 101, 27, 102, 55, 103, 41, 104, 40, 105, 29, + 107, 54, 108, 34, 109, 39, 110, 31, 111, 32, 112, 44, 114, 30, 115, 35, + 116, 33, 117, 36, 118, 43, 121, 49, 122, 63, 1488, 8, 1489, 5,1490, 20, + 1491, 12, 1492, 2, 1493, 1, 1494, 23, 1495, 16, 1496, 19, 1497, 0,1498, 24, + 1499, 18, 1500, 4, 1501, 11, 1502, 7, 1503, 22, 1504, 10, 1505, 17,1506, 13, + 1507, 25, 1508, 15, 1509, 26, 1510, 21, 1511, 14, 1512, 3, 1513, 9,1514, 6, }; /* Model Table: - * Total considered sequences: 1605 / 4096 - * - Positive sequences: first 698 (0.9950195693248958) - * - Probable sequences: next 340 (1038-698) (0.003982282638035017) - * - Neutral sequences: last 3058 (0.000998148037069213) - * - Negative sequences: 2491 (off-ratio) + * Total considered sequences: 1571 / 4096 + * - Positive sequences: first 663 (0.9950033744779837) + * - Probable sequences: next 339 (1002-663) (0.003997985590807662) + * - Neutral sequences: last 3094 (0.0009986399312086336) + * - Negative sequences: 2525 (off-ratio) * Negative sequences: TODO */ static const PRUint8 HebrewLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,3,3,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,0,1,0,0,0,0,0,0,0,0,0,0,0, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,0,0,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,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, - 3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,1,1,1,1,2,1,1,0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, - 3,3,3,3,3,3,3,3,2,3,3,3,0,3,3,3,0,3,3,3,3,3,3,3,1,2,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,0,0,0,0,0,0, + 1,0,1,1,1,2,1,2,2,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,2,0,3,0,0,2,0,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,1,1,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, - 3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,2,3,3,3,3,3,3,3,1,2,0,0,3,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,0,3,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,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, + 3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,0,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, 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,2,3,1,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, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,1,0,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,2,3,2,0,2,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,1,3,3,0,3,3,0,2,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,0,3,3,1,3,3,0,3,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,0,3,3,3,2,1,0,2,0,0,2,0,0,0, + 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,1,3,3,3,2,1,1,2,2,0,0,0,0,0, 0,0,0,0,0,0,0,0,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,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, + 1,0,1,0,1,1,0,1,2,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,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,3,0,3,3,3,3,2,3,2,2,3,1,3,3,3,2,2,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,2,2,2,3,1,3,3,3,2,2,3,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,3,0,3,3,2, - 3,3,3,3,2,3,3,3,2,3,0,2,1,2,0,3,0,3,2,2,1,0,0,0,2,0,0,0,0,0,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,0,3,3,0, - 3,3,3,3,2,3,3,3,3,0,0,3,0,2,0,3,0,3,3,2,1,1,1,0,2,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,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,3,3,3, - 3,3,3,3,3,3,3,3,1,0,0,3,0,2,0,3,0,3,1,2,0,0,1,0,2,0,0,0,0,0,0,0, - 0,0,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,3,2,3, - 2,3,2,3,3,2,3,2,1,1,0,3,0,2,0,3,0,2,3,3,0,0,0,0,2,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,3,3, - 3,3,3,3,3,3,3,3,2,0,1,3,0,3,0,2,0,3,2,3,1,1,1,0,3,0,1,0,0,0,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,2,3, - 3,3,2,3,3,3,3,1,1,0,0,3,0,1,0,1,0,0,2,2,1,1,0,0,2,0,0,0,0,0,0,0, - 0,0,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,3,3,3, - 1,2,2,2,3,1,0,1,3,0,0,0,1,2,0,1,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,1,3, - 1,3,3,2,3,1,2,2,1,1,0,2,0,2,0,2,0,2,2,1,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,2,3, - 1,3,1,3,2,3,2,2,3,0,0,1,0,2,1,1,0,1,2,2,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,1, - 3,3,3,3,0,3,2,3,1,0,0,1,0,2,0,2,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,2,3, - 0,3,2,1,3,2,0,0,3,0,0,0,1,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,2,3, - 1,1,1,2,2,1,1,2,2,0,1,2,0,0,0,1,1,1,2,0,1,0,0,0,0,1,0,0,1,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,0,2, - 2,0,1,1,2,1,1,2,0,0,0,0,0,2,0,2,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,1,2, - 2,2,2,1,2,1,0,0,0,0,1,0,0,1,0,0,0,1,2,1,0,1,0,0,0,0,0,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,2,0,3, - 0,0,0,0,2,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,2,2,3, - 0,0,2,0,2,0,0,0,2,0,2,0,1,0,2,0,2,0,0,0,1,2,1,1,0,1,1,1,1,0,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,0,3,2,2, - 2,1,2,2,2,0,1,1,2,0,0,1,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,2,3,3, - 1,0,2,0,3,0,1,0,1,1,2,0,2,0,1,0,1,0,1,0,1,1,0,0,0,1,0,0,0,0,0,2, - 0,0,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,2,3,2, - 0,2,2,2,2,0,0,1,2,1,0,0,0,2,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,0, - 2,1,2,2,2,2,2,2,1,2,2,1,1,2,1,1,1,1,0,1,2,1,2,2,0,1,2,0,1,1,0,2, - 0,0,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,2,0,2,3,2, - 0,0,3,1,3,0,0,1,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,1,2, - 2,1,1,2,2,1,0,1,0,2,1,0,0,1,2,0,3,0,0,0,2,1,1,1,0,2,1,1,0,1,1,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,2, - 0,0,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,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,0,1,1,1, - 2,2,2,2,1,2,0,1,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,0,2,1,1, - 1,1,1,3,2,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,2, - 0,3,1,0,2,2,0,1,2,0,2,0,1,2,2,0,1,0,1,1,1,1,2,1,2,1,0,2,1,0,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,3, - 0,0,0,0,2,0,0,0,0,1,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,1,1,0,2,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2, - 0,0,0,0,2,0,0,0,3,1,0,0,1,0,2,0,2,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,0,2,1,3, - 0,0,0,0,2,0,0,0,0,1,1,0,1,0,2,0,1,0,0,0,1,1,1,0,0,1,0,2,0,0,0,0, - 0,0,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,2,0,2,2,2, - 0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2, - 0,0,2,0,2,0,0,0,2,1,1,0,0,0,2,0,1,0,1,0,1,1,0,0,0,1,1,1,1,1,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,3,0,2, - 0,0,0,0,2,0,0,0,0,1,2,0,1,0,2,0,3,0,1,0,1,1,1,1,0,1,2,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,2,0, - 2,1,2,1,1,1,2,1,0,1,2,1,0,0,1,0,1,2,0,0,1,1,1,2,0,1,1,1,0,0,1,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,0,2,0,2, - 0,0,0,0,2,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,3,0,2, - 0,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,0,0,0,2,1,0,0,1,1,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,2,2,2, - 1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,1,0,0,1,0,0,1,1,1,0,2, - 0,0,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,0,2,1,2, - 0,0,0,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,2,2,1,0,0,1,0,1,0,0,1,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3, + 2,3,3,3,2,3,3,3,2,3,0,2,2,0,0,2,0,2,0,1,0,2,2,2,0,0,0,0,1,0,0,2, + 0,0,0,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,1,3,3,3, + 1,3,3,3,3,3,3,3,2,3,0,3,2,0,1,2,0,2,0,0,0,1,2,2,0,0,0,0,0,0,0,2, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3, + 3,3,3,3,3,3,3,3,1,3,0,3,2,0,0,3,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,2, + 0,0,0,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,2,2, + 3,3,2,3,3,2,3,2,1,3,1,2,1,0,0,2,0,2,0,0,0,1,2,2,0,0,0,1,0,0,0,2, + 0,0,0,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,2,3, + 3,3,1,3,3,3,3,1,1,3,0,1,0,0,1,2,0,2,0,0,0,0,2,2,0,0,0,0,0,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3, + 3,3,3,3,3,3,2,3,1,3,0,3,3,0,0,2,0,2,2,0,0,1,2,3,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1, + 3,3,2,3,3,1,1,1,3,0,0,1,1,0,0,0,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,2, + 0,0,0,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,1, + 3,3,3,2,3,1,2,2,0,2,0,2,2,0,0,2,0,2,0,0,0,1,1,2,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,3,2,1, + 2,3,2,3,2,3,1,2,2,2,0,2,2,0,0,2,0,2,0,0,0,0,2,1,0,0,0,0,0,0,0,2, + 0,0,0,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,2,2,3,3, + 2,3,3,3,1,2,2,3,0,2,0,2,2,0,0,2,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,0, + 3,3,2,1,3,2,1,0,3,0,0,0,0,0,0,0,0,2,0,1,0,0,2,0,0,0,0,0,0,0,0,0, + 0,0,0,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,2,1, + 2,1,1,2,2,1,1,2,0,1,1,0,0,0,0,1,2,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1,2, + 3,1,1,1,2,1,1,2,1,0,0,0,2,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,1, + 2,2,2,1,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,2, + 2,1,2,2,2,0,1,1,2,1,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,2,2,0, + 3,0,2,0,2,0,0,0,2,0,2,0,0,1,1,0,2,1,0,1,2,1,0,0,1,1,0,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,0, + 2,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,2,2,0, + 2,2,2,2,3,0,0,1,2,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2, + 0,1,2,1,2,1,1,1,1,2,2,1,1,1,1,1,1,0,2,1,1,0,1,2,1,0,0,2,2,2,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0, + 2,2,1,0,2,2,0,1,1,0,1,1,2,2,1,0,1,1,2,0,0,0,1,1,1,1,1,1,0,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,2,2,0, + 2,0,2,1,3,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,1,2, + 1,1,1,2,1,0,0,1,0,0,2,0,1,2,2,0,2,0,2,1,1,1,0,0,1,1,1,1,1,1,2,0, + 0,0,0,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,1,1,2, + 1,2,2,2,2,2,0,2,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,3,0, + 2,0,0,0,1,0,0,0,3,0,2,0,0,1,2,0,2,1,1,1,0,1,0,0,0,2,0,0,0,1,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,1, + 2,0,2,0,2,0,0,0,1,0,1,0,0,2,1,0,2,1,1,1,1,1,0,0,0,1,1,0,2,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,2,1,0, + 2,0,0,0,2,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,2,0,0, + 2,0,0,0,2,0,0,0,0,0,1,0,0,2,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,0, + 0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,2,2,1, + 2,2,1,2,2,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0, + 2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, + 0,0,0,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,1,2,0, + 2,0,2,1,1,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2, + 0,1,2,1,2,1,1,1,0,1,2,1,0,1,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,2,0, + 2,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,1,2,0,1,1,1,0,0,1,1,0,1,2,0,0,0, + 0,0,0,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,0,0, + 2,1,0,0,1,0,0,0,0,0,1,0,0,1,1,0,2,0,1,1,0,0,0,0,1,1,0,1,0,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0, + 2,0,0,0,0,0,0,0,0,0,1,0,0,2,1,0,2,0,1,2,2,1,0,0,0,1,0,0,1,0,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0, + 2,0,0,0,1,0,0,0,1,0,1,0,0,2,0,0,1,1,1,1,1,1,0,0,0,2,0,0,0,0,0,0, + 0,0,0,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,0, + 2,0,2,0,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,1,0,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,0, + 2,1,0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, }; @@ -264,7 +264,7 @@ const SequenceModel Iso_8859_8HebrewModel = Iso_8859_8_CharToOrderMap, HebrewLangModel, 64, - (float)0.9990018519629308, + (float)0.9990013600687914, PR_FALSE, "ISO-8859-8", "he" @@ -275,7 +275,7 @@ const SequenceModel Windows_1255HebrewModel = Windows_1255_CharToOrderMap, HebrewLangModel, 64, - (float)0.9990018519629308, + (float)0.9990013600687914, PR_FALSE, "WINDOWS-1255", "he" @@ -289,7 +289,7 @@ const LanguageModel HebrewModel = HebrewLangModel, 64, 5, - (float)0.4409862284999801, - 22, - (float)0.031930999645072025, + (float)0.44272429757612475, + 21, + (float)0.04068630985148685, }; diff --git a/src/LangModels/LangHindiModel.cpp b/src/LangModels/LangHindiModel.cpp index d48a34d..ab7ecd8 100644 --- a/src/LangModels/LangHindiModel.cpp +++ b/src/LangModels/LangHindiModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:09:07.193296 + * On: 2022-12-14 20:23:15.737999 **/ /* Character Mapping Table: @@ -62,205 +62,199 @@ * ligature of 'o' and 'e' exists in ISO-8859-15 but not in ISO-8859-1 * even though they are both used for French. Same for the euro sign. */ -static const int Unicode_Char_size = 86; +static const int Unicode_Char_size = 83; static const unsigned int Unicode_CharOrder[] = { - 2305, 46, 2306, 9, 2307, 69, 2309, 26, 2310, 38, 2311, 36, 2312, 44,2313, 39, - 2314, 70, 2315, 71, 2317, 72, 2318, 82, 2319, 33, 2320, 61, 2321, 63,2323, 48, - 2324, 37, 2325, 2, 2326, 41, 2327, 20, 2328, 52, 2329, 79, 2330, 34,2331, 50, - 2332, 19, 2333, 60, 2334, 57, 2335, 28, 2336, 51, 2337, 35, 2338, 56,2339, 40, - 2340, 8, 2341, 27, 2342, 18, 2343, 30, 2344, 6, 2346, 14, 2347, 43,2348, 22, - 2349, 29, 2350, 11, 2351, 13, 2352, 1, 2353, 85, 2354, 15, 2355, 74,2357, 16, - 2358, 25, 2359, 32, 2360, 7, 2361, 12, 2364, 42, 2365, 80, 2366, 0,2367, 5, - 2368, 10, 2369, 23, 2370, 31, 2371, 45, 2372, 77, 2373, 73, 2374, 78,2375, 4, - 2376, 21, 2377, 49, 2378, 84, 2379, 17, 2380, 47, 2381, 3, 2385, 83,2387, 81, - 2400, 76, 2404, 24, 2405, 75, 2406, 54, 2407, 53, 2408, 55, 2409, 68,2410, 66, - 2411, 59, 2412, 64, 2413, 67, 2414, 65, 2415, 58, 2416, 62, + 2305, 45, 2306, 8, 2307, 70, 2309, 26, 2310, 41, 2311, 37, 2312, 44,2313, 36, + 2314, 60, 2315, 71, 2317, 72, 2318, 77, 2319, 33, 2320, 65, 2321, 58,2323, 52, + 2324, 40, 2325, 2, 2326, 38, 2327, 20, 2328, 51, 2329, 74, 2330, 32,2331, 49, + 2332, 19, 2333, 61, 2334, 69, 2335, 27, 2336, 54, 2337, 30, 2338, 55,2339, 39, + 2340, 9, 2341, 29, 2342, 18, 2343, 35, 2344, 7, 2346, 15, 2347, 43,2348, 22, + 2349, 28, 2350, 11, 2351, 13, 2352, 1, 2353, 82, 2354, 14, 2355, 79,2357, 16, + 2358, 24, 2359, 34, 2360, 6, 2361, 12, 2364, 42, 2365, 75, 2366, 0,2367, 5, + 2368, 10, 2369, 23, 2370, 31, 2371, 47, 2372, 80, 2373, 73, 2374, 78,2375, 4, + 2376, 21, 2377, 48, 2379, 17, 2380, 46, 2381, 3, 2400, 81, 2404, 25,2405, 76, + 2406, 50, 2407, 53, 2408, 56, 2409, 66, 2410, 68, 2411, 57, 2412, 62,2413, 64, + 2414, 63, 2415, 59, 2416, 67, }; /* Model Table: - * Total considered sequences: 2165 / 7396 - * - Positive sequences: first 1351 (0.9950085486567504) - * - Probable sequences: next 387 (1738-1351) (0.003992816717832359) - * - Neutral sequences: last 5658 (0.0009986346254172718) - * - Negative sequences: 5231 (off-ratio) + * Total considered sequences: 2239 / 6889 + * - Positive sequences: first 1379 (0.9950003274894658) + * - Probable sequences: next 426 (1805-1379) (0.004003168850449601) + * - Neutral sequences: last 5084 (0.0009965036600846355) + * - Negative sequences: 4650 (off-ratio) * Negative sequences: TODO */ static const PRUint8 HindiLangModel[] = { - 1,3,3,1,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,1,3,3,3,3,0,3,3,3,3,3,0,0,3,3,3,2, - 3,3,0,3,0,3,0,1,3,3,0,0,0,2,0,0,0,3,2,2,0,0,0,0,0,0,0,3,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,1,3,2,1,0,2,2,3,3,0, - 3,2,3,0,3,1,3,3,2,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,2,3,0,3,3,3,1,3,2,1,2,3,0,0,0,0,3,1,3, - 2,3,3,1,3,0,3,2,3,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,0, - 0,3,3,0,1,0,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,0,3,0,0,3,0,3,3,3,3,0,3,0,3,3,0,0,0,0,3,3,0, - 3,0,0,0,0,0,0,3,3,3,0,0,0,2,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,3,3,0,2,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,3,0,2,0,3,2,3,3,3,1,1,2,3,3,0, - 3,3,0,1,0,1,0,1,3,2,0,0,0,0,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0, - 0,3,3,1,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,3,3,3,3,3,0,3,3,3,3,1,0,2,2,3,3,0, - 3,0,0,0,0,3,0,3,2,3,0,0,0,1,0,0,0,1,0,3,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,3,2,3,3,2,3,3,3,1,0,2,0,0,0,0, - 2,3,3,0,3,0,3,0,0,0,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,3,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,0,0,3,3,0,3,0,2,3,3,1,0,2,1,0,2,1, - 3,2,3,2,3,1,3,0,1,1,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,0,3,3,3,0,3,1,2,3,0,0,0,0,0,0,2,0, - 1,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,3,2,0,2,3,3,3,2,3,0,3,3,3,0,3,0,3,3,0,3,3,3,3,0,2,2,3,3,1,0,2,0,1,3,0, - 2,0,0,0,0,1,0,1,3,3,0,1,0,2,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,1,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,1,2,3,2,3,0,3,3,3,3,1,0,3,1,3,3,0, - 3,2,0,2,0,2,0,3,3,2,0,0,0,3,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,2,3,2,3,3,1,1,3,3,1,0,3,1,3,1,1, - 2,3,3,1,3,0,3,3,3,1,0,1,0,1,0,0,0,3,0,2,0,0,0,0,0,0,1,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,2,3,2,3,1,2,0,3,3,2,0,3,0,0,3,2,0,0,1,0,3,2,0, - 2,0,3,2,3,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,1,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,0,3,3,3,3,3,1,0,3,2,1,0,0,0,3,0,1, - 2,0,0,2,3,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,3,0,3,3,3,0,3,3,2,3,3,1,0,0,0,3,1,0, - 1,1,3,0,3,0,3,1,3,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,0,3,3,0,3,1,0,3,3,0,0,1,0,1,3,0, - 2,0,0,0,3,0,3,1,0,3,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,0,3,0,1,3,3,3,2,2,0,3,3,0,0,1,0,2,0,0, - 2,0,3,0,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,1,3,3,2,3,0,3,3,3,3,3,0,2,0,3,3,1, - 3,3,0,1,0,1,0,0,1,1,0,0,0,2,0,0,0,1,0,3,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,0,2,0,2,1,3,1,0,2,2,0,0,0,0,2,1,1, - 2,1,3,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,1,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,0,0,3,3,3,3,0,0,0,2,0,0,0,0,0,0,3, - 2,1,0,0,3,0,3,0,1,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,1,0,0,2,3,2,3,0,3,0,3,0,0,0,0,3,0,3, - 2,3,3,0,3,0,3,0,3,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,1,0,0,0,0, - 0,3,3,0,0,0,3,3,3,3,0,3,2,3,3,3,3,0,3,3,3,1,3,0,3,3,1,3,3,2,3,0,2,1,2,3,1,0,0,0,3,1,0, - 2,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,3,3,2,3,1,1,1,0,2,1,2,3,0,0,3,3,1,0,0,1,0,2,0, - 0,3,3,2,3,0,3,1,0,2,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,1,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,0,3,2,2,3,3,3,0,3,3,3,3,2,0,3,1,3,3,0, - 3,3,0,3,0,3,0,3,2,2,0,0,0,2,0,0,0,3,1,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,2,3,0,0,0,2,3,2,0,0,3,3,3,3,1,3,0,2,3,2,0,3,0,2,2,3,0,1,2,1,0,0,2,1,0,3,1,3,2,0,1,0, - 2,1,0,0,0,1,0,1,0,1,2,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,3,3,3,2,2,0,0,1,2,0,3,0,0,2,0,0,0,0,0,0,0,0, - 1,0,2,0,2,0,2,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,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,0,3,0,3,3,3,3,0,3,0,3,3,0,0,0,0,0,3,0, - 3,0,0,1,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,2,2,3,3,3,1,1,1,3,3,3,0,1,2,1,0,3,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,1,1,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, - 3,3,3,3,3,3,3,3,3,2,3,3,2,1,2,3,3,3,0,2,1,3,3,3,0,1,1,0,0,0,0,3,0,0,1,2,0,0,0,0,1,1,0, - 2,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,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,1,2,3,3,3,1,0,3,1,3,3,3,3,2,3,3,0,3,0,0,0,0,2,1,0,3,0,0,0,2,0,0,0,0,1,0,0, - 0,0,1,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,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,2,3,2,3,3,0,1,1,1,3,3,0,0,3,1,1,3,1,2,0,0,0,0,1,3,0,0,2,2,0,0,1,0,0,0,0, - 0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,1,3,1,2,3,3,2,1,3,2,3,3,1,0,2,0,1,2,0, - 2,1,0,3,0,2,0,2,2,1,0,2,0,3,0,0,0,1,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, - 3,3,3,3,3,3,2,1,3,1,3,3,1,3,2,0,1,3,3,3,2,1,1,3,0,1,0,0,2,3,3,0,2,0,0,2,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,3,3,0,0,0,3,3,3,3,0,3,1,3,3,3,3,0,1,3,3,1,2,0,3,3,1,2,3,0,0,0,0,1,3,3,1,0,1,0,2,0,0, - 3,1,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,0,0,3,2,3,0,1,0,0,3,1,0,3,0,1,1,2,0,0,0,0,1,0,0, - 0,0,0,0,3,1,2,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, - 3,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,3,3,1,0,2,3,3,3,1,2,0,0,1,1,0,2,0,0,3,1,1,0,0,0,0,0,3, - 2,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,3,3,0,0,0,3,3,3,3,0,3,0,3,2,3,3,0,3,3,2,0,3,0,0,3,1,2,3,0,1,0,1,1,3,3,0,0,1,0,3,0,1, - 2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,0,1,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,2,1,1,0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,3,3,0,3,2,3,3,3,3,0,3,3,3,0,3,0,3,3,0,0,2,2,3,0,1,3,3,2,3,0,0,1,0,3,0, - 2,3,0,3,0,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,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,3,3,3,3,0,3,1,0,3,3,1,0,3,3,3,0,2,0,0,0,0,2,2,3,2,0,2,0,3,3,0,0,0,0,0,1,0, - 1,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,1,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,3,2,3,3,1,3,3,1,3,3,1,1,1,0,1,3,2,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,1,3,3,3,2,0,2,3,3,1,3,2,3,2,1,3,3,1,0,0,0,2,2,0,3,0,0,0,3,0,0,0,0,3,0,3, - 1,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,1,3,3,2,1,2,3,2,3,3,1,3,3,3,3,1,0,0,0,0,0,1,3,1,0,0,1,0,0,0,0,0,1,1, - 0,2,0,1,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,3,3,3,3,3,2,3,0,1,0,1,3,1,3,2,2,3,3,1,3,1,1,0,0,2,0,0,3,0,1,0,2,0,0,0,0,0,0,3, - 0,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,2,0,0,0,2,3,1,3,0,2,0,2,2,2,1,0,2,2,1,0,2,0,3,3,3,0,3,0,0,0,0,3,0,2,0,0,0,0,0,1,0, - 1,0,0,0,0,2,0,0,0,0,0,2,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,2,0,0,0,0,3,3,3,0,0,3,0,3,0,1,0,3,3,2,0,0,0,0,3,1,3,0,2,0,0,3,0,0,0,0,0,0,0,1,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,3,0,0,0,1,3,2,0,0,0,2,1,1,1,3,0,3,2,3,0,1,0,2,0,0,0,3,1,3,0,0,0,3,2,0,0,1,0,0,2,0, - 0,1,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,3,3,0,2,3,1,2,3,2,0,3,3,3,0,2,0,0,3,0,3,3,0,3,0,0,0,1,3,0,0,0,0,1,2,0, - 1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,2,2,2,3,0,3,1,0,2,3,2,0,1,1,0,0,2,0,1,2,0,0,2,0,0,0,0,1,0,2,1,0,0,1,1,1,0, - 2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,0,3,0,3,0,3,3,3,3,0,0,3,2,0,3,0,0,2,0,0,3,0,0,0,0,1,1,3,1,0,0,1,2,0,0, - 3,0,0,0,0,0,0,0,0,0,0,1,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, - 3,0,0,1,3,3,0,1,3,2,3,2,3,0,1,3,2,3,1,1,0,0,0,3,0,0,0,0,2,0,0,3,0,0,0,3,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,1,3,2,3,3,3,1,3,3,3,2,2,1,1,1,3,3,0,1,1,0,3,0,1,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,1,0,0, - 1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,2,2,3,3,3,1,0,3,3,3,1,0,0,2,1,3,0,0,0,0,1,3,0,1,0,0,3,0,0,3,0,0,0,1,0,0,0,0,1,0,0, - 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,3,3,0,0,0,0,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,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,0,0,0,0,3,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,0,0,2,3,0,0,0,0,3,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,1,2,0,2,2,1,0,3,2,2,0,0,0,0,2,0,2,1,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,3, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,2,1,0,0,0,1,0,2,0,0,0,0,0,1,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,3,3,0,0,0,0,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,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,2,3,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,2,1,0,3,2,3,0,2,3,3,1,0,0,0,2,0,1,2,0,0,0,0,3,0,0,0,0,1,0,1,0,0,0,0,2,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,1,2,0,0,0,3,3,3,3,0,0,0,0,1,2,1,0,0,1,0,0,2,0,0,2,0,0,0,0,0,0,1,0,1,1,2,0,0,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,2,2,0,0,0,0,1,0,0,0,3,0,2,2,1,0,0,0,0,1,0,3,0,0,0,1,0,0,0,0,0,0,3,0,2,0,0,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,0,0,0,3,3,0,0,0,0,0,1,2,2,1,0,0,0,2,0,1,0,0,0,0,0,2,0,0,0,0,0,0,1,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,2,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,0,0,2,3,0,0,0,0,2,3,3,2,2,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,3,3,0,0,0,0,3,3,3,2,2,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,3,2,0,0,3,3,0,0,0,0,2,3,2,3,2,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,0,0,2,3,0,0,0,0,2,2,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,2,3,2,0,0,3,2,0,0,0,0,3,2,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,1,0,3,3,0,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,1,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,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,1,2,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,3,3,3,0,3,3,3,3,3,3,3,3,0, + 0,1,3,3,3,1,0,0,2,1,3,3,0,3,3,0,0,0,0,3,2,0,0,0,3,0,1,0,1,2,0,0,1,2,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,3,3,3,3,2,3,3,0,0,3,3,0, + 1,0,3,2,1,3,3,3,2,1,3,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,3,3,3,1,3,3,3,3,3,3,1,2,0,1,0,0,3,0, + 0,3,2,3,0,3,3,3,2,0,0,1,0,3,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0, + 0,3,3,0,0,0,3,3,0,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,1,0,3,3,3,3,0,3,0,3,3,0,0,3,3,0, + 0,0,3,0,0,0,1,0,3,0,3,1,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0, + 2,3,3,0,2,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,1,3,3,0,3,1,3,2,1,2,3,3,0, + 1,0,3,1,1,0,0,0,0,2,2,2,0,3,2,0,0,0,0,2,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 0,3,3,1,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,3,3,3,0,3,3,3,3,1,2,3,3,0, + 1,2,3,0,0,0,0,0,3,1,2,3,0,3,0,0,0,0,0,0,1,0,0,0,1,0,3,0,0,2,0,0,0,2,0,1,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,2,0,3,3,0,3,3,3,3,0,0,0,1,3,0,0, + 2,1,3,2,3,3,3,3,0,1,2,2,0,1,0,0,0,0,0,2,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,3,3,3,3,3,2,0,2,1,0,0, + 1,0,3,3,0,3,3,3,0,1,1,0,0,0,0,0,0,0,0,3,1,0,0,0,0,0,3,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0, + 0,3,3,1,0,0,3,3,1,3,0,2,3,3,3,3,3,0,3,3,3,0,3,0,3,3,1,3,3,3,3,0,3,1,1,3,0,0,3,2,0, + 0,0,2,1,0,0,0,0,1,1,3,0,0,3,2,1,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,2,0,3,3,3,2,3,3,2,0,0,0,0,2,0,0, + 1,0,2,0,0,3,3,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,3,3,0,3,2,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,2,2,3,0,3,3,3,3,0,1,3,3,0, + 3,1,3,2,0,0,0,0,3,2,3,2,0,3,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,0,3,2,2,3,3,3,2,0,3,1,1,2,3,0, + 1,0,3,3,1,3,3,3,3,1,1,0,0,3,1,0,0,0,0,3,3,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,2,3,3,3,3,2,3,2,3,1,1,0,3,2,3,3,3,3,0,0,1,1,1,2,3,0, + 0,0,2,1,2,3,2,3,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,3,3,3,0,3,3,2,3,3,2,0,0,3,1,0,0,3,0, + 0,1,1,0,0,3,0,3,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, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,0,3,3,3,1,0,1,1,0,3,0,1, + 0,0,3,2,0,3,0,3,0,0,3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,1,1,3,3,3,3,3,3,3,3,2,0,0,2,3,0, + 0,0,1,0,1,3,3,3,2,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,0,3,3,1,3,2,3,0,0,3,0,2,0,3,0, + 0,0,1,2,3,0,3,3,1,0,2,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 0,3,3,0,1,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,2,3,3,3,3,0,3,3,3,3,2,3,3,3,0, + 3,1,3,3,2,0,0,0,1,0,2,1,1,1,3,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,1,2,0,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,0,0,2,0,1,3,1,0,1,1,0,0,2,2,0, + 0,0,2,2,0,3,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,1,0,3,3,0,2,3,0,0,0,3,0,0,0,0,0, + 0,3,2,2,0,3,1,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,2,0,3,3,2,3,3,0,3,0,3,0,0,0,3,0, + 1,3,2,3,0,3,3,2,0,0,0,0,0,3,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0, + 1,3,3,0,0,0,3,3,3,3,0,3,2,3,3,3,3,0,3,3,3,0,3,0,3,3,0,3,2,3,3,0,3,1,2,3,0,0,0,3,0, + 1,0,2,0,1,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, + 3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,3,3,3,3,3,2,3,2,1,0,3,0,0,3,3,3,0,0,2,0,1,2,0,0, + 1,0,1,3,2,3,3,3,1,0,2,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,3,3,1,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,2,3,2,3,3,3,2,3,0,3,3,3,3,1,3,3,3,0, + 3,0,3,3,3,0,0,0,3,0,0,3,0,2,1,0,0,0,0,0,3,0,0,0,2,0,2,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,3,3,3,0,2,1,0,2,0,1,3,2,0,0,0,0,0,1,0,0, + 0,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0, + 0,2,3,0,0,0,3,2,0,2,0,3,3,3,0,3,3,0,2,3,2,0,3,0,2,2,3,1,2,0,2,0,2,2,0,1,2,3,2,0,2, + 1,0,2,1,0,0,0,0,1,0,0,1,2,0,0,2,0,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,0,0,3,3,3,3,0,3,0,2,3,0,0,3,2,0, + 0,0,3,0,1,0,0,0,2,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,3,3,3,3,2,0,3,2,3,3,2,2,2,3,3,3,1,2,0,0,0,0,2,3,1,1,0,0,0,1,0,1,0, + 2,0,2,0,0,2,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,3,2,3,1,0,3,3,2,3,3,3,2,3,3,0,3,1,1,0,3,1,0,2,3,0,0,0,0,0,0,1,2,0, + 0,0,0,0,2,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,1,2,3,3,0,2,3,2,3,3,1,0,2,1,1,3,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,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,2,0,3,3,2,2,3,2,3,3,0,0,1,1,3,3,2,1,1,2,0,0,0,3,3,0,0,0,0,1,0,1,0, + 0,3,2,0,0,2,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,2,2,2,3,2,1,3,0,3,3,3,2,0,1,3,1,0, + 2,0,3,1,3,0,0,0,3,1,0,2,0,3,2,0,0,0,0,0,2,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,1,1,3,1,3,1,1,0,3,2,0,3,3,1,2,0,0,0,1,0,0,0, + 2,0,0,0,1,3,0,1,0,0,1,1,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,3,3,0,0,0,3,3,3,2,0,3,1,3,3,2,3,0,1,3,3,0,3,0,3,3,1,3,0,2,3,0,3,2,0,0,0,1,0,2,0, + 2,0,3,1,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,1,1,1,3,3,3,0,3,0,2,1,3,3,3,2,2,0,2,2,1,0,2,1,0,1,0,2,1,2,3,0,0,0,3,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,2,3,3,3,1,1,1,2,3,3,1,0,2,0,0,3,2,2,0,0,0,0,2,3,2,0,0,1,0,0,0,0,0, + 0,0,0,1,1,3,2,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,3,3,3,3,0,3,0,0,3,3,1,0,3,3,3,0,2,0,1,0,1,3,3,3,3,0,3,0,3,3,0,2,1,2,0, + 1,0,1,0,1,0,0,0,2,0,1,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,3,3,0,3,1,3,3,3,3,0,1,3,3,0,3,0,2,1,0,3,0,1,3,0,3,3,0,2,0,0,0,3,0, + 1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,3,3,3,3,2,0,1,3,3,2,3,3,2,2,2,3,3,0,1,0,2,2,0,3,3,1,0,0,0,0,0,0,3,0, + 0,3,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,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,1,3,3,2,0,3,0,3,3,3,2,2,2,0,1,3,2,2,0,0,2,1,1,0,0,0,0,2,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,3,0,0,0,0,0,0,0,1,3,0,0,3,1,0,0,1,0,0,0,0,0,0,0,1,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,1, + 0,3,3,0,0,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,0,3,0,3,3,0,2,2,0,2,0,3,3,2,3,3,3,3,2,0, + 0,0,1,3,3,0,0,0,0,0,1,1,0,2,0,0,0,0,0,1,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,2,3,0,3,3,3,1,2,3,2,3,3,2,1,2,3,3,3,0,1,0,0,0,0,1,2,0,0,0,0,0,0,1,0,0, + 0,1,2,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,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,3,3,3,3,3,2,3,3,0,1,0,3,1,1,3,0,1,1,3,0,3,0,0,0,2,0,0,1,3,0,3,0,0,0,0,0,2,0, + 1,3,0,1,1,2,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,2,0,0,0,3,2,3,0,0,2,0,2,2,2,2,0,1,2,2,0,1,0,2,3,1,3,0,0,2,0,0,3,0,0,0,0,0,0,0, + 2,0,1,1,0,0,0,0,0,2,1,2,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,1,3,0,0,0,3,2,0,2,0,2,1,1,1,1,3,0,3,2,3,0,2,0,1,3,0,3,0,0,2,0,3,1,0,3,1,1,3,0,0, + 0,0,0,1,1,0,0,0,2,0,0,0,0,1,1,0,0,0,0,1,1,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,3,3,3,3,0,3,3,0,3,2,2,0,3,3,3,0,3,0,3,1,0,3,2,3,3,0,2,0,2,2,0,0,2,0,0, + 0,0,2,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,2,1,3,3,0,2,3,0,0,3,0,0,3,3,2,0,0,0,3,0,0,0,3,3,0,0,0,0,3,0,0,0,0,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,0,0,0,3,0,3,3,3,2,0,0,3,2,0,3,0,1,0,0,3,0,0,3,0,2,0,0,0,0,2,0,2,0, + 0,0,3,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,1,0,3,3,0,2,2,3,3,1,3,0,3,2,2,3,1,0,0,0,1,3,0,0,0,1,0,0,2,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,0,0,0,0,0,0,0,0,2,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,2,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,3,0,0,3,0,0,3,3,0,3,0,0,3,3,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,2,3,3,3,0,3,3,1,3,2,1,0,2,1,2,3,2,0,1,0,1,3,1,1,0,3,0,0,2,3,0,0,0,0,0,0,0,1,0, + 0,1,0,1,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,2,3,0,0,2,2,0,3,3,2,0,1,1,1,0,1,0,2,0,1,3,0,0,2,0,0,0,0,0,0,1,1,0,0, + 2,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,3,3,0,3,0,0,3,3,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,1,3,3,3,3,0,3,3,3,3,1,2,1,1,0,2,3,0,0,1,0,3,2,2,1,0,0,3,0,0,3,0,0,0,0,0,0,0,1,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,1,3,2,0,1,3,2,2,1,0,0,2,0,1,3,0,0,0,1,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, + 0,3,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,3,3,0,2,0,0,3,3,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,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,3,0,0,2,3,0,2,0,0,3,2,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,0,0,0,3,3,1,0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,0,0,0,3,0,1,1,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,2,0,0,0,0,0,0,0,0,0,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,3,0,0,3,3,0,3,0,0,3,3,3,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,2,3,3,0,0,0,0,0,0,3,0,0,2,0,0,0,1,0,0,1,0,2,0,0,0,0,1,0,0,2,0,0,2,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, + 3,2,2,0,3,2,0,3,1,2,3,0,0,0,3,1,1,2,0,1,1,0,1,3,0,0,0,2,0,0,2,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,3,1,0,3,3,0,3,0,0,3,3,3,0,3,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,2,3,0,3,0,0,2,3,3,0,2,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,2,0,0,0,0,0,0,0,0,0,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,2,0,0,3,3,0,3,0,0,2,3,3,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,1,3,3,0,2,0,1,2,0,2,0,0,0,0,0,2,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,3,2,0,2,0,0,3,2,2,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,2,1,0,0,0,1,0,0,0,0,3,0,0,1,2,1,0,0,0,1,0,3,0,0,0,2,0,0,0,2,0,0,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,2,3,0,3,0,0,2,3,3,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,2,1,0,0,0,0,2,1,0,0,0,0,0,1,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,1,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,0,0,0,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,3,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -268,11 +262,11 @@ const LanguageModel HindiModel = { "hi", Unicode_CharOrder, - 86, + 83, HindiLangModel, - 86, - 0, - (float)0, + 83, + 7, + (float)0.4172238383435763, 41, - (float)0.030491597602687492, + (float)0.033113346067542536, }; diff --git a/src/LangModels/LangHungarianModel.cpp b/src/LangModels/LangHungarianModel.cpp index 8a863e9..230eff0 100644 --- a/src/LangModels/LangHungarianModel.cpp +++ b/src/LangModels/LangHungarianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:30:39.653036 + * On: 2022-12-15 00:16:34.282219 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 15, 23, 16, 0, 25, 12, 20, 7, 22, 8, 4, 13, 5, 9, /* 4X */ - 21, 34, 6, 3, 2, 19, 18, 32, 33, 17, 10,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 15, 23, 16, 0, 25, 12, 20, 7, 22, 8, 4, 13, 5, 9, /* 6X */ - 21, 34, 6, 3, 2, 19, 18, 32, 33, 17, 10,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 15, 26, 16, 0, 25, 13, 19, 8, 22, 7, 4, 14, 5, 9, /* 4X */ + 20, 34, 6, 3, 2, 21, 17, 32, 33, 18, 10,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 15, 26, 16, 0, 25, 13, 19, 8, 22, 7, 4, 14, 5, 9, /* 6X */ + 20, 34, 6, 3, 2, 21, 17, 32, 33, 18, 10,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 58,SYM, 39,SYM, 54, 49,SYM,SYM, 36, 47, 61, 62,SYM, 45, 59, /* AX */ - SYM, 58,SYM, 39,SYM, 54, 49,SYM,SYM, 36, 47, 63, 64,SYM, 45, 59, /* BX */ - 65, 11, 50, 40, 35, 66, 38, 41, 37, 14, 53, 51, 57, 28, 52, 67, /* CX */ - 46, 44, 60, 24, 55, 27, 26,SYM, 48, 68, 30, 31, 29, 43, 56, 42, /* DX */ - 69, 11, 50, 40, 35, 70, 38, 41, 37, 14, 53, 51, 57, 28, 52, 71, /* EX */ - 46, 44, 60, 24, 55, 27, 26,SYM, 48, 72, 30, 31, 29, 43, 56,SYM, /* FX */ + SYM, 58,SYM, 38,SYM, 60, 52,SYM,SYM, 37, 51, 59, 61,SYM, 46, 54, /* AX */ + SYM, 58,SYM, 38,SYM, 62, 52,SYM,SYM, 37, 51, 59, 63,SYM, 46, 54, /* BX */ + 64, 11, 44, 42, 36, 65, 40, 35, 45, 12, 55, 49, 57, 28, 47, 66, /* CX */ + 50, 43, 67, 24, 41, 27, 23,SYM, 53, 68, 30, 31, 29, 48, 56, 39, /* DX */ + 69, 11, 44, 42, 36, 70, 40, 35, 45, 12, 55, 49, 57, 28, 47, 71, /* EX */ + 50, 43, 72, 24, 41, 27, 23,SYM, 53, 73, 30, 31, 29, 48, 56,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,77 +89,77 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 15, 23, 16, 0, 25, 12, 20, 7, 22, 8, 4, 13, 5, 9, /* 4X */ - 21, 34, 6, 3, 2, 19, 18, 32, 33, 17, 10,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 15, 23, 16, 0, 25, 12, 20, 7, 22, 8, 4, 13, 5, 9, /* 6X */ - 21, 34, 6, 3, 2, 19, 18, 32, 33, 17, 10,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 36,SYM, 49, 73, 45, 74, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 36,SYM, 49, 75, 45, 76, /* 9X */ - SYM,SYM,SYM, 39,SYM, 58,SYM,SYM,SYM,SYM, 47,SYM,SYM,SYM,SYM, 59, /* AX */ - SYM,SYM,SYM, 39,SYM,SYM,SYM,SYM,SYM, 58, 47,SYM, 54,SYM, 54, 59, /* BX */ - 77, 11, 50, 40, 35, 78, 38, 41, 37, 14, 53, 51, 57, 28, 52, 79, /* CX */ - 46, 44, 60, 24, 55, 27, 26,SYM, 48, 80, 30, 31, 29, 43, 56, 42, /* DX */ - 81, 11, 50, 40, 35, 82, 38, 41, 37, 14, 53, 51, 57, 28, 52, 83, /* EX */ - 46, 44, 60, 24, 55, 27, 26,SYM, 48, 84, 30, 31, 29, 43, 56,SYM, /* FX */ + SYM, 1, 15, 26, 16, 0, 25, 13, 19, 8, 22, 7, 4, 14, 5, 9, /* 4X */ + 20, 34, 6, 3, 2, 21, 17, 32, 33, 18, 10,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 15, 26, 16, 0, 25, 13, 19, 8, 22, 7, 4, 14, 5, 9, /* 6X */ + 20, 34, 6, 3, 2, 21, 17, 32, 33, 18, 10,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 37,SYM, 52, 59, 46, 74, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 37,SYM, 52, 59, 46, 75, /* 9X */ + SYM,SYM,SYM, 38,SYM, 58,SYM,SYM,SYM,SYM, 51,SYM,SYM,SYM,SYM, 54, /* AX */ + SYM,SYM,SYM, 38,SYM,SYM,SYM,SYM,SYM, 58, 51,SYM, 76,SYM, 77, 54, /* BX */ + 78, 11, 44, 42, 36, 79, 40, 35, 45, 12, 55, 49, 57, 28, 47, 80, /* CX */ + 50, 43, 81, 24, 41, 27, 23,SYM, 53, 82, 30, 31, 29, 48, 56, 39, /* DX */ + 83, 11, 44, 42, 36, 84, 40, 35, 45, 12, 55, 49, 57, 28, 47, 85, /* EX */ + 50, 43, 86, 24, 41, 27, 23,SYM, 53, 87, 30, 31, 29, 48, 56,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 64; static const unsigned int Unicode_CharOrder[] = { - 65, 1, 66, 15, 67, 23, 68, 16, 69, 0, 70, 25, 71, 12, 72, 20, - 73, 7, 74, 22, 75, 8, 76, 4, 77, 13, 78, 5, 79, 9, 80, 21, - 82, 6, 83, 3, 84, 2, 85, 19, 86, 18, 89, 17, 90, 10, 97, 1, - 98, 15, 99, 23, 100, 16, 101, 0, 102, 25, 103, 12, 104, 20,105, 7, - 106, 22, 107, 8, 108, 4, 109, 13, 110, 5, 111, 9, 112, 21,114, 6, - 115, 3, 116, 2, 117, 19, 118, 18, 121, 17, 122, 10, 193, 11,201, 14, - 205, 28, 211, 24, 214, 26, 218, 30, 220, 29, 225, 11, 233, 14,237, 28, - 243, 24, 246, 26, 250, 30, 252, 29, 336, 27, 337, 27, 368, 31,369, 31, + 65, 1, 66, 15, 67, 26, 68, 16, 69, 0, 70, 25, 71, 13, 72, 19, + 73, 8, 74, 22, 75, 7, 76, 4, 77, 14, 78, 5, 79, 9, 80, 20, + 82, 6, 83, 3, 84, 2, 85, 21, 86, 17, 89, 18, 90, 10, 97, 1, + 98, 15, 99, 26, 100, 16, 101, 0, 102, 25, 103, 13, 104, 19,105, 8, + 106, 22, 107, 7, 108, 4, 109, 14, 110, 5, 111, 9, 112, 20,114, 6, + 115, 3, 116, 2, 117, 21, 118, 17, 121, 18, 122, 10, 193, 11,201, 12, + 205, 28, 211, 24, 214, 23, 218, 30, 220, 29, 225, 11, 233, 12,237, 28, + 243, 24, 246, 23, 250, 30, 252, 29, 336, 27, 337, 27, 368, 31,369, 31, }; /* Model Table: - * Total considered sequences: 1249 / 1024 - * - Positive sequences: first 728 (0.9950146122040027) - * - Probable sequences: next 170 (898-728) (0.003990738185399856) - * - Neutral sequences: last 126 (0.0009946496105974756) - * - Negative sequences: -225 (off-ratio) + * Total considered sequences: 1221 / 1024 + * - Positive sequences: first 713 (0.9950428169725475) + * - Probable sequences: next 143 (856-713) (0.003957871411948477) + * - Neutral sequences: last 168 (0.0009993116155040394) + * - Negative sequences: -197 (off-ratio) * Negative sequences: TODO */ static const PRUint8 HungarianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,1,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,1,3,1,1,2,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,2,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,1,1,3,3,0,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,3,3,3,3,1,0,2,2,2,1, - 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3, - 1,2,3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,1,3,3,3,3,3,3,0,3,0,0,3,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,3,3,3,3,3,2,3,3,3,3, - 1,2,3,3,3,3,3,3,3,1,3,0,3,3,2,3,3,1,3,1,3,3,3,3,0,1,0,0,1,1,0,0, - 3,3,2,3,3,3,3,3,2,3,1,3,1,1,3,3,3,3,1,3,2,3,2,2,3,2,3,3,3,3,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,2,3,3,3,2,3,1,3,2,1,3,3,2,1,3,3,2,1,3,2,3,3,3,3,3,3,2,3, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,3,1,3,1,3,3,2,3,1,2,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,1,3,1,3,1,3,3,2,2,3,1,3,2,1,2,3,3,3,2,3,3,2,3,2, - 3,3,3,3,3,2,3,3,3,3,3,3,2,2,3,2,2,2,3,3,3,3,3,3,3,3,3,2,3,3,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,2,3,1,2,3,2,2,3,3,3,2,3,1,2,2,3,2, - 3,3,3,3,3,2,3,3,3,3,3,3,1,2,3,2,2,2,2,3,3,1,1,3,2,1,1,0,3,0,0,0, - 2,3,3,3,3,3,3,3,3,1,3,2,3,3,1,3,3,1,3,1,3,3,3,3,1,3,1,0,0,1,1,0, - 3,3,3,2,3,2,3,3,1,3,0,3,2,2,3,3,2,2,1,3,1,2,3,3,2,3,3,3,1,3,2,2, - 1,0,3,3,3,3,3,0,3,0,3,0,3,3,0,3,3,1,3,1,2,3,1,2,0,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,2,3,2,3,3,2,3,3,0,3,1,3,3,3,2,0,3,0,1,2,1,2,0, - 1,2,3,3,3,3,3,1,2,0,3,0,3,3,1,3,2,0,3,1,0,2,3,3,0,1,0,0,0,1,0,0, - 1,1,3,3,3,3,3,0,3,0,3,0,3,2,0,1,2,0,2,0,1,1,2,1,0,1,0,0,0,1,0,0, - 1,2,3,3,3,3,3,1,2,0,3,0,3,1,1,3,2,0,2,0,1,1,3,3,0,1,0,0,0,0,0,0, - 3,1,2,3,3,3,3,1,3,0,3,0,1,2,1,2,0,0,3,2,2,0,3,1,0,3,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,1,1,2,2,1, + 3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,0,1,3,3,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3, + 1,2,3,3,3,3,3,3,3,1,3,1,2,3,3,3,3,3,1,3,3,3,3,0,0,3,3,0,2,0,0,0, + 3,1,3,3,3,3,3,3,3,2,3,0,2,3,3,3,3,3,1,3,3,1,3,0,0,2,3,0,1,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,3, + 3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,2,2,2,3,3,3,2,2,3,3,3,2,3,3,3,3, + 3,3,2,3,3,3,3,2,3,3,1,3,3,1,1,3,3,1,2,2,3,3,3,3,3,2,2,3,3,3,2,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2, + 3,3,3,3,2,2,3,2,3,3,0,3,3,2,1,3,1,3,2,1,1,2,3,3,2,2,2,3,3,3,2,3, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,2,3,3,3,3,3, + 3,3,3,3,3,3,3,1,3,3,1,3,3,1,2,1,1,1,3,2,1,3,1,3,3,1,1,3,3,2,3,2, + 3,3,3,3,3,2,3,3,3,3,3,3,3,2,2,3,2,3,1,3,3,3,3,2,3,2,3,2,3,3,2,1, + 3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,3,2,3,3,1,2,0,1,2,3,1,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,1,2,2,3,3,3,3,2,2,1,2,3,3,2, + 1,0,3,3,3,3,3,3,0,0,3,0,0,3,3,3,3,3,0,1,3,0,1,0,0,1,2,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,1,3,2,1,3,3,3,3,3,0,3,3,1,3,1,1,3,3,0,1,1,1,1, + 3,3,3,1,3,1,3,1,3,3,1,3,3,1,1,2,1,1,2,1,1,3,2,3,2,3,2,3,0,3,2,2, + 3,3,3,3,3,2,3,3,3,3,3,3,3,1,2,3,2,2,2,3,1,3,1,1,1,1,3,0,3,0,1,1, + 3,3,3,3,3,3,3,3,3,2,3,1,2,3,3,3,3,3,0,3,3,1,3,1,1,3,2,1,1,1,1,0, + 1,1,3,3,3,3,3,2,0,1,3,1,1,3,3,1,3,3,0,0,3,0,3,0,0,1,3,0,1,0,1,0, + 1,2,3,3,3,3,3,3,0,0,3,0,0,3,2,1,2,2,0,2,1,0,1,0,0,0,1,0,0,0,0,0, + 1,2,3,3,3,3,3,2,2,1,3,0,1,3,1,2,3,2,0,1,1,0,3,0,0,1,2,0,0,0,0,0, + 3,1,2,3,3,3,3,3,1,0,3,0,1,1,1,2,1,3,0,2,0,1,3,0,0,2,1,0,1,0,1,0, }; @@ -168,7 +168,7 @@ const SequenceModel Iso_8859_2HungarianModel = Iso_8859_2_CharToOrderMap, HungarianLangModel, 32, - (float)0.9990053503894025, + (float)0.999000688384496, PR_FALSE, "ISO-8859-2", "hu" @@ -179,7 +179,7 @@ const SequenceModel Windows_1250HungarianModel = Windows_1250_CharToOrderMap, HungarianLangModel, 32, - (float)0.9990053503894025, + (float)0.999000688384496, PR_FALSE, "WINDOWS-1250", "hu" @@ -192,8 +192,8 @@ const LanguageModel HungarianModel = 64, HungarianLangModel, 32, - 5, - (float)0.3814879541823728, + 6, + (float)0.4436196326698296, 25, - (float)0.03523635287103696, + (float)0.03548460884537605, }; diff --git a/src/LangModels/LangIrishModel.cpp b/src/LangModels/LangIrishModel.cpp index 92ff29c..c3d3282 100644 --- a/src/LangModels/LangIrishModel.cpp +++ b/src/LangModels/LangIrishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:08:23.900202 + * On: 2022-12-14 23:59:16.710336 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 4X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 6X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 4X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 6X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 45,SYM, 45,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 44, 50,SYM,SYM, 44,SYM,SYM,SYM, 51, 52, 53,SYM, /* BX */ - 40, 16, 54, 55, 31, 36, 56, 35, 33, 18, 46, 37, 57, 17, 43, 49, /* CX */ - 47, 41, 39, 20, 58, 59, 32,SYM, 38, 60, 21, 61, 34, 42, 62, 63, /* DX */ - 40, 16, 64, 65, 31, 36, 66, 35, 33, 18, 46, 37, 67, 17, 43, 49, /* EX */ - 47, 41, 39, 20, 68, 69, 32,SYM, 38, 70, 21, 71, 34, 42, 72, 73, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 37,SYM, 37,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 49, 55,SYM,SYM, 49,SYM,SYM,SYM, 56, 57, 58,SYM, /* BX */ + 41, 16, 48, 59, 34, 43, 53, 39, 31, 18, 60, 38, 51, 17, 50, 54, /* CX */ + 40, 35, 36, 20, 45, 61, 32,SYM, 42, 46, 21, 62, 33, 44, 63, 52, /* DX */ + 41, 16, 48, 64, 34, 43, 53, 39, 31, 18, 65, 38, 51, 17, 50, 54, /* EX */ + 40, 35, 36, 20, 45, 66, 32,SYM, 42, 46, 21, 67, 33, 44, 68, 69, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 4X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 6X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 4X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 6X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 74,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 40, 16, 75, 76, 31, 36, 77, 35, 33, 18, 46, 37, 78, 17, 43, 49, /* CX */ - 47, 41, 39, 20, 79, 80, 32,SYM, 38, 81, 21, 82, 34, 42, 83, 84, /* DX */ - 40, 16, 85, 86, 31, 36, 87, 35, 33, 18, 46, 37, 88, 17, 43, 49, /* EX */ - 47, 41, 39, 20, 89, 90, 32,SYM, 38, 91, 21, 92, 34, 42, 93, 94, /* FX */ + SYM,SYM,SYM,SYM,SYM, 70,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 41, 16, 48, 71, 34, 43, 53, 39, 31, 18, 72, 38, 51, 17, 50, 54, /* CX */ + 40, 35, 36, 20, 45, 73, 32,SYM, 42, 46, 21, 74, 33, 44, 75, 52, /* DX */ + 41, 16, 48, 76, 34, 43, 53, 39, 31, 18, 77, 38, 51, 17, 50, 54, /* EX */ + 40, 35, 36, 20, 45, 78, 32,SYM, 42, 46, 21, 79, 33, 44, 80, 81, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 4X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 6X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 4X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 6X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 95,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 40, 16, 96, 97, 31, 36, 98, 35, 33, 18, 46, 37, 99, 17, 43, 49, /* CX */ - 100, 41, 39, 20,101,102, 32,SYM, 38,103, 21,104, 34,105, 48,106, /* DX */ - 40, 16,107,108, 31, 36,109, 35, 33, 18, 46, 37,110, 17, 43, 49, /* EX */ - 111, 41, 39, 20,112,113, 32,SYM, 38,114, 21,115, 34,116, 48,117, /* FX */ + SYM,SYM,SYM,SYM,SYM, 82,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 41, 16, 48, 83, 34, 43, 53, 39, 31, 18, 84, 38, 51, 17, 50, 54, /* CX */ + 85, 35, 36, 20, 45, 86, 32,SYM, 42, 46, 21, 87, 33, 88, 47, 52, /* DX */ + 41, 16, 48, 89, 34, 43, 53, 39, 31, 18, 90, 38, 51, 17, 50, 54, /* EX */ + 91, 35, 36, 20, 45, 92, 32,SYM, 42, 46, 21, 93, 33, 94, 47, 95, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 4X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 23, 10, 13, 2, 9, /* 6X */ - 22, 30, 4, 6, 7, 14, 24, 26, 29, 25, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,118,SYM,SYM,SYM,SYM,SYM,SYM, 45,SYM,119,ILL, 44,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 45,SYM,120,ILL, 44,121, /* 9X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 4X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 8, 11, 5, 19, 12, 3, 1, 27, 24, 10, 13, 2, 9, /* 6X */ + 22, 30, 4, 6, 7, 14, 25, 26, 29, 23, 28,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 96,SYM,SYM,SYM,SYM,SYM,SYM, 37,SYM, 97,ILL, 49,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 37,SYM, 98,ILL, 49, 99, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,122,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 40, 16,123,124, 31, 36,125, 35, 33, 18, 46, 37,126, 17, 43, 49, /* CX */ - 47, 41, 39, 20,127,128, 32,SYM, 38,129, 21,130, 34, 42,131,132, /* DX */ - 40, 16,133,134, 31, 36,135, 35, 33, 18, 46, 37,136, 17, 43, 49, /* EX */ - 47, 41, 39, 20,137,138, 32,SYM, 38,139, 21,140, 34, 42,141,142, /* FX */ + SYM,SYM,SYM,SYM,SYM,100,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 41, 16, 48,101, 34, 43, 53, 39, 31, 18,102, 38, 51, 17, 50, 54, /* CX */ + 40, 35, 36, 20, 45,103, 32,SYM, 42, 46, 21,104, 33, 44,105, 52, /* DX */ + 41, 16, 48,106, 34, 43, 53, 39, 31, 18,107, 38, 51, 17, 50, 54, /* EX */ + 40, 35, 36, 20, 45,108, 32,SYM, 42, 46, 21,109, 33, 44,110,111, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -150,57 +150,57 @@ static const int Unicode_Char_size = 62; static const unsigned int Unicode_CharOrder[] = { 65, 0, 66, 15, 67, 8, 68, 11, 69, 5, 70, 19, 71, 12, 72, 3, - 73, 1, 74, 27, 75, 23, 76, 10, 77, 13, 78, 2, 79, 9, 80, 22, - 81, 30, 82, 4, 83, 6, 84, 7, 85, 14, 86, 24, 87, 26, 88, 29, - 89, 25, 90, 28, 97, 0, 98, 15, 99, 8, 100, 11, 101, 5,102, 19, - 103, 12, 104, 3, 105, 1, 106, 27, 107, 23, 108, 10, 109, 13,110, 2, - 111, 9, 112, 22, 113, 30, 114, 4, 115, 6, 116, 7, 117, 14,118, 24, - 119, 26, 120, 29, 121, 25, 122, 28, 193, 16, 201, 18, 205, 17,211, 20, + 73, 1, 74, 27, 75, 24, 76, 10, 77, 13, 78, 2, 79, 9, 80, 22, + 81, 30, 82, 4, 83, 6, 84, 7, 85, 14, 86, 25, 87, 26, 88, 29, + 89, 23, 90, 28, 97, 0, 98, 15, 99, 8, 100, 11, 101, 5,102, 19, + 103, 12, 104, 3, 105, 1, 106, 27, 107, 24, 108, 10, 109, 13,110, 2, + 111, 9, 112, 22, 113, 30, 114, 4, 115, 6, 116, 7, 117, 14,118, 25, + 119, 26, 120, 29, 121, 23, 122, 28, 193, 16, 201, 18, 205, 17,211, 20, 218, 21, 225, 16, 233, 18, 237, 17, 243, 20, 250, 21, }; /* Model Table: - * Total considered sequences: 853 / 961 - * - Positive sequences: first 461 (0.995039617055503) - * - Probable sequences: next 163 (624-461) (0.003960483178947816) - * - Neutral sequences: last 337 (0.0009998997655491504) - * - Negative sequences: 108 (off-ratio) + * Total considered sequences: 866 / 961 + * - Positive sequences: first 465 (0.9950412672131922) + * - Probable sequences: next 161 (626-465) (0.003964208227885013) + * - Neutral sequences: last 335 (0.0009945245589227936) + * - Negative sequences: 95 (off-ratio) * Negative sequences: TODO */ static const PRUint8 IrishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,0,3,0,1,3,3,3,3,3,2,3,2,2, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,1,3,3,3,3,3,3,3,1,2,3,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2,0,1, - 3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,2,1,0,0,0, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2,1,1, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,3,2,0,3,3,3,3,3,2,3,3,1, - 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,3,1,3,2,1,2,0,1, - 3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,3,3,3,2,3,3,2,2,3,3,2,1,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,3,3,3,1,3,1,2,1,1,2,0,3, - 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,1,3,0,3,3,3,3,3,3,1,3,2,1, - 3,3,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,1,2,0,0, - 3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,3,3,3,1,1,2,3,3,1,1,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,2,3,2,0,1,1,1,2,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,2,1,3,3,3,3,3,3,2,3,3,3,0,2,3,0,0,1,0,0, - 3,3,3,2,3,3,3,3,3,2,3,3,3,3,2,3,3,3,1,2,0,0,3,2,2,2,1,1,2,2,0, - 3,3,2,3,3,3,3,2,2,3,3,1,1,1,3,2,3,3,3,1,3,2,3,0,0,3,0,1,0,0,2, - 0,3,3,0,3,0,3,3,3,0,3,3,3,3,0,3,0,2,0,3,0,1,3,0,1,0,0,0,0,0,0, - 2,1,3,0,3,0,3,3,3,3,3,3,2,2,1,3,0,0,0,2,1,3,1,1,2,0,0,0,0,0,0, - 3,3,2,0,2,2,2,2,1,2,2,2,1,1,1,2,1,1,0,1,2,2,1,1,1,0,0,0,0,0,0, - 3,3,2,3,3,3,1,2,1,3,3,0,2,1,3,0,3,3,3,3,3,2,0,0,0,2,0,0,0,0,0, - 1,3,3,1,3,0,3,3,3,0,3,3,3,3,0,2,0,0,0,2,0,2,3,0,1,0,1,0,1,0,0, - 0,3,3,0,3,0,3,3,3,0,3,3,2,3,0,3,0,1,0,0,0,0,3,0,0,0,0,1,0,0,0, - 3,3,2,3,3,3,3,3,2,3,3,2,0,1,3,2,3,3,3,2,3,3,3,1,0,2,0,1,1,1,0, - 3,3,2,3,3,3,3,1,1,3,3,1,0,3,3,1,0,0,1,0,1,0,0,2,1,3,1,0,0,0,0, - 3,3,2,0,2,3,3,2,0,3,2,0,2,0,2,1,3,2,3,1,3,1,0,1,1,2,0,0,0,0,0, - 3,2,3,1,2,3,3,2,2,3,3,2,1,2,2,3,0,0,0,1,0,0,2,1,1,1,2,0,1,1,0, - 3,3,2,2,2,3,2,2,0,3,2,1,0,0,0,0,0,0,0,1,0,0,1,1,0,2,2,0,0,0,0, - 3,3,1,0,2,3,0,0,0,3,0,0,0,1,3,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0, - 3,3,1,3,0,3,2,1,0,2,1,1,2,1,2,1,1,0,0,0,2,0,0,1,1,2,1,0,2,0,0, - 2,3,0,0,0,2,0,2,1,2,0,0,0,0,1,0,0,0,0,2,0,0,1,0,1,0,1,0,0,0,0, - 2,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,0,3,0,0,3,3,3,3,3,2,3,3,1, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,3,2,3,3,3,3,3,1,2,3,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,0,1, + 3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,1,1,0,0, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,1,1,1, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,3,1,0,3,3,3,3,3,2,3,3,1, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,3,3,2,3,2,2,2,0,3,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,3,3,3,1,3,3,0,1,0,2,0,3, + 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,1,3,0,2,3,3,3,3,3,2,2,3,1, + 3,3,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,1,1,2,0,0, + 3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,3,3,3,3,1,3,1,2,3,0,2,0,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,2,3,2,0,2,1,2,2,1,0,0,0, + 3,3,3,3,3,3,3,2,3,3,3,1,2,3,3,3,3,3,3,2,3,3,3,3,1,0,0,1,2,0,1, + 3,3,3,2,3,3,3,3,3,1,3,3,3,3,0,3,3,3,1,2,0,0,2,2,2,2,0,2,2,2,1, + 3,3,2,3,3,3,3,2,3,3,3,2,1,1,3,3,3,3,3,3,3,2,3,3,0,0,0,1,0,0,2, + 0,3,3,0,3,0,3,3,3,0,3,3,3,3,0,3,0,2,0,3,0,0,3,1,0,0,0,0,0,0,0, + 2,0,3,0,3,0,3,3,3,3,3,3,2,3,1,3,0,0,0,2,1,3,1,0,1,1,0,0,0,0,0, + 3,3,2,0,2,2,2,2,1,2,2,2,0,2,1,1,1,1,0,1,1,2,2,0,0,1,0,0,0,0,0, + 3,3,0,3,3,3,0,2,1,3,3,0,2,1,3,0,3,3,3,3,3,2,1,2,0,0,1,1,0,0,0, + 0,3,3,0,3,0,3,3,3,0,3,3,3,3,0,2,0,0,0,2,0,2,3,0,0,2,1,0,1,0,0, + 0,3,3,0,3,0,3,3,3,0,3,3,2,2,0,3,0,1,0,0,0,0,3,0,0,0,0,1,0,0,0, + 3,3,2,3,3,3,3,3,2,3,3,1,0,2,3,2,3,2,3,1,3,2,3,2,1,0,0,1,0,1,0, + 3,2,3,1,2,3,3,2,2,3,3,3,3,2,3,3,0,0,0,1,1,0,2,1,1,1,2,0,1,0,0, + 3,3,2,3,2,3,3,1,0,3,3,1,2,3,3,1,1,0,0,1,0,0,0,3,2,1,1,1,0,0,0, + 3,3,2,0,2,3,3,1,0,3,2,0,1,0,2,1,3,3,3,0,3,0,0,2,0,1,0,0,0,0,0, + 3,3,2,2,2,3,2,2,1,3,2,0,0,1,2,3,0,0,1,1,1,0,1,2,3,0,2,0,0,0,0, + 3,3,1,0,2,3,0,0,0,3,1,0,0,0,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0, + 3,3,1,3,1,3,1,1,1,3,0,1,1,2,2,1,0,0,0,0,1,0,0,2,1,1,0,0,2,0,0, + 3,2,1,1,0,2,1,2,1,2,1,0,0,0,0,1,0,0,0,2,0,0,2,0,0,1,1,0,0,1,0, + 2,2,0,1,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, }; @@ -209,7 +209,7 @@ const SequenceModel Iso_8859_15IrishModel = Iso_8859_15_CharToOrderMap, IrishLangModel, 31, - (float)0.9990001002344508, + (float)0.9990054754410772, PR_TRUE, "ISO-8859-15", "ga" @@ -220,7 +220,7 @@ const SequenceModel Iso_8859_1IrishModel = Iso_8859_1_CharToOrderMap, IrishLangModel, 31, - (float)0.9990001002344508, + (float)0.9990054754410772, PR_TRUE, "ISO-8859-1", "ga" @@ -231,7 +231,7 @@ const SequenceModel Iso_8859_9IrishModel = Iso_8859_9_CharToOrderMap, IrishLangModel, 31, - (float)0.9990001002344508, + (float)0.9990054754410772, PR_TRUE, "ISO-8859-9", "ga" @@ -242,7 +242,7 @@ const SequenceModel Windows_1252IrishModel = Windows_1252_CharToOrderMap, IrishLangModel, 31, - (float)0.9990001002344508, + (float)0.9990054754410772, PR_TRUE, "WINDOWS-1252", "ga" @@ -255,8 +255,8 @@ const LanguageModel IrishModel = 62, IrishLangModel, 31, - 3, - (float)0.3435309101596943, + 4, + (float)0.41512943556580745, 19, - (float)0.03729009503282062, + (float)0.038838485225387374, }; diff --git a/src/LangModels/LangItalianModel.cpp b/src/LangModels/LangItalianModel.cpp index b9f5b71..297bd97 100644 --- a/src/LangModels/LangItalianModel.cpp +++ b/src/LangModels/LangItalianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:09:46.154350 + * On: 2022-12-15 00:04:23.458332 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 4X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 6X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 4X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 6X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 61,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* CX */ - 62, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 63, 56, 52, /* DX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* EX */ - 64, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 65, 56, 66, /* FX */ + SYM,SYM,SYM,SYM,SYM, 57,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* CX */ + 59, 44, 24, 33, 43, 65, 34,SYM, 49, 25, 48, 53, 36, 66, 67, 62, /* DX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* EX */ + 59, 44, 24, 33, 43, 68, 34,SYM, 49, 25, 48, 53, 36, 69, 70, 71, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_3_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 4X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 6X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 4X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 6X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 67,SYM,SYM,SYM,ILL, 68,SYM,SYM, 60, 59, 58, 69,SYM,ILL, 70, /* AX */ - SYM, 71,SYM,SYM,SYM,SYM, 72,SYM,SYM, 73, 59, 58, 74,SYM,ILL, 75, /* BX */ - 21, 36, 41,ILL, 33, 76, 77, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* CX */ - ILL, 43, 23, 37, 50, 78, 32,SYM, 79, 25, 51, 55, 34, 80, 81, 52, /* DX */ - 21, 36, 41,ILL, 33, 82, 83, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* EX */ - ILL, 43, 23, 37, 50, 84, 32,SYM, 85, 25, 51, 55, 34, 86, 87,SYM, /* FX */ + SYM, 50,SYM,SYM,SYM,ILL, 72,SYM,SYM, 73, 64, 55, 74,SYM,ILL, 75, /* AX */ + SYM, 50,SYM,SYM,SYM,SYM, 76,SYM,SYM, 58, 64, 55, 77,SYM,ILL, 78, /* BX */ + 21, 39, 45,ILL, 47, 61, 79, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* CX */ + ILL, 44, 24, 33, 43, 60, 34,SYM, 63, 25, 48, 53, 36, 80, 81, 62, /* DX */ + 21, 39, 45,ILL, 47, 61, 82, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* EX */ + ILL, 44, 24, 33, 43, 60, 34,SYM, 63, 25, 48, 53, 36, 83, 84,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 4X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 6X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 4X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 6X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 88,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* CX */ - 58, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 60, 59, 52, /* DX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* EX */ - 58, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 89, 59, 90, /* FX */ + SYM,SYM,SYM,SYM,SYM, 57,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* CX */ + 55, 44, 24, 33, 43, 85, 34,SYM, 49, 25, 48, 53, 36, 86, 64, 62, /* DX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* EX */ + 55, 44, 24, 33, 43, 87, 34,SYM, 49, 25, 48, 53, 36, 58, 64, 88, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 4X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 6X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 4X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 6X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 40,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 45, 91,SYM,SYM, 45,SYM,SYM,SYM, 57, 57, 92,SYM, /* BX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* CX */ - 93, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 94, 56, 52, /* DX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* EX */ - 95, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34, 96, 56, 97, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 42,SYM, 42,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 54, 57,SYM,SYM, 54,SYM,SYM,SYM, 51, 51, 89,SYM, /* BX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* CX */ + 59, 44, 24, 33, 43, 90, 34,SYM, 49, 25, 48, 53, 36, 91, 92, 62, /* DX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* EX */ + 59, 44, 24, 33, 43, 93, 34,SYM, 49, 25, 48, 53, 36, 94, 95, 96, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,85 +152,80 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 4X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 18, 9, 10, 1, 16, 14, 19, 0, 31, 24, 5, 13, 4, 3, /* 6X */ - 12, 20, 7, 8, 6, 11, 15, 28, 26, 27, 17,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 98,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 57,ILL, 45,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 57,ILL, 45, 99, /* 9X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 4X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 17, 9, 10, 1, 16, 14, 19, 0, 30, 26, 5, 13, 4, 3, /* 6X */ + 12, 20, 7, 8, 6, 11, 15, 28, 23, 27, 18,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 97,SYM,SYM,SYM,SYM,SYM,SYM, 42,SYM, 51,ILL, 54,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 42,SYM, 51,ILL, 54, 98, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,100,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* CX */ - 101, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34,102, 56, 52, /* DX */ - 21, 36, 41, 42, 33, 47, 35, 39, 22, 30, 44, 46, 29, 38, 54, 48, /* EX */ - 103, 43, 23, 37, 50, 53, 32,SYM, 49, 25, 51, 55, 34,104, 56,105, /* FX */ + SYM,SYM,SYM,SYM,SYM, 57,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* CX */ + 59, 44, 24, 33, 43, 99, 34,SYM, 49, 25, 48, 53, 36,100,101, 62, /* DX */ + 21, 39, 45, 40, 47, 52, 37, 35, 22, 29, 41, 32, 31, 38, 46, 56, /* EX */ + 59, 44, 24, 33, 43,102, 34,SYM, 49, 25, 48, 53, 36,103,104,105, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 76; +static const int Unicode_Char_size = 68; static const unsigned int Unicode_CharOrder[] = { - 65, 2, 66, 18, 67, 9, 68, 10, 69, 1, 70, 16, 71, 14, 72, 19, - 73, 0, 74, 31, 75, 24, 76, 5, 77, 13, 78, 4, 79, 3, 80, 12, - 81, 20, 82, 7, 83, 8, 84, 6, 85, 11, 86, 15, 87, 28, 88, 26, - 89, 27, 90, 17, 97, 2, 98, 18, 99, 9, 100, 10, 101, 1,102, 16, - 103, 14, 104, 19, 105, 0, 106, 31, 107, 24, 108, 5, 109, 13,110, 4, + 65, 2, 66, 17, 67, 9, 68, 10, 69, 1, 70, 16, 71, 14, 72, 19, + 73, 0, 74, 30, 75, 26, 76, 5, 77, 13, 78, 4, 79, 3, 80, 12, + 81, 20, 82, 7, 83, 8, 84, 6, 85, 11, 86, 15, 87, 28, 88, 23, + 89, 27, 90, 18, 97, 2, 98, 17, 99, 9, 100, 10, 101, 1,102, 16, + 103, 14, 104, 19, 105, 0, 106, 30, 107, 26, 108, 5, 109, 13,110, 4, 111, 3, 112, 12, 113, 20, 114, 7, 115, 8, 116, 6, 117, 11,118, 15, - 119, 28, 120, 26, 121, 27, 122, 17, 192, 21, 193, 36, 196, 33,198, 35, - 200, 22, 201, 30, 204, 29, 210, 23, 211, 37, 214, 32, 217, 25,220, 34, - 224, 21, 225, 36, 228, 33, 230, 35, 232, 22, 233, 30, 236, 29,242, 23, - 243, 37, 246, 32, 249, 25, 252, 34, + 119, 28, 120, 23, 121, 27, 122, 18, 192, 21, 200, 22, 201, 29,203, 32, + 204, 31, 210, 24, 211, 33, 217, 25, 224, 21, 232, 22, 233, 29,235, 32, + 236, 31, 242, 24, 243, 33, 249, 25, }; /* Model Table: - * Total considered sequences: 1168 / 1444 - * - Positive sequences: first 312 (0.9950294718278113) - * - Probable sequences: next 206 (518-312) (0.003975533066303161) - * - Neutral sequences: last 926 (0.000994995105885521) - * - Negative sequences: 276 (off-ratio) + * Total considered sequences: 1088 / 1156 + * - Positive sequences: first 301 (0.99504151171882) + * - Probable sequences: next 203 (504-301) (0.00396113186513658) + * - Neutral sequences: last 652 (0.0009973564160433712) + * - Negative sequences: 68 (off-ratio) * Negative sequences: TODO */ static const PRUint8 ItalianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,2,1,0,1,2,1,0,0,0,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,0,2,2,0,3,3,2,0,0,2,0,1,0,0,0,1, - 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,0,3,0,2,3,3,1,0,3,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,0,2,0,2,0,2,2,2,0,1,2,0,0,0,0,0,0, - 3,3,3,3,3,2,3,3,3,3,3,3,2,2,3,3,3,3,2,2,3,1,1,3,3,0,0,2,2,2,2,2,1,1,1,0,1,1, - 3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,1,2,1,2,2,0,1,2,1,2,2,1,1,2,1,0,1,1, - 3,3,3,3,3,3,3,3,3,3,1,3,2,2,1,2,2,2,2,3,0,3,1,3,1,2,1,3,2,2,2,1,1,1,1,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,1,1,3,2,2,2,1,1,1,2,1,1,1, - 3,3,3,3,2,3,3,3,3,3,2,3,3,3,2,3,3,1,3,3,3,1,1,3,2,2,1,2,2,3,2,1,1,1,0,0,1,0, - 3,3,3,3,3,3,3,3,2,3,2,3,1,2,1,1,2,1,1,3,3,1,1,3,3,0,1,3,1,2,2,1,0,0,0,1,1,0, - 3,3,3,3,2,2,2,3,2,2,3,3,2,2,2,2,2,1,2,2,1,2,1,2,1,1,1,2,2,2,2,2,1,1,1,1,0,1, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,2,1,0,1,3,2,0,2,1,2,3,1,2,0,0,0,0,1,0, - 3,3,3,3,2,3,3,3,3,3,2,3,3,2,1,1,2,1,1,3,1,1,1,2,1,1,1,1,1,2,1,1,1,1,0,2,0,1, - 3,3,3,3,2,2,2,2,3,2,2,3,3,3,1,1,1,1,3,1,0,1,1,2,1,0,1,2,1,1,2,1,1,1,2,0,1,1, - 3,3,3,3,3,3,2,3,2,2,2,3,1,2,3,1,1,1,2,3,1,0,1,2,1,1,0,2,2,1,1,1,2,1,1,0,0,1, - 3,3,3,3,1,2,1,3,2,1,1,3,0,1,1,3,1,0,1,0,0,1,1,2,1,0,0,1,0,1,1,1,1,2,0,1,1,0, - 3,3,3,3,1,3,2,3,1,1,1,3,1,1,2,0,3,1,1,1,0,1,2,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0, - 3,3,3,3,1,1,1,0,1,1,1,3,1,1,1,1,0,3,1,1,1,1,1,2,1,0,0,1,1,1,0,1,0,0,1,0,1,0, - 3,3,3,3,3,3,2,3,2,2,2,3,2,1,1,1,1,0,3,1,0,1,1,1,1,2,0,2,1,2,2,1,1,1,1,0,0,1, - 3,3,3,3,2,3,2,3,2,1,2,3,1,2,1,1,1,1,1,1,0,0,1,0,1,0,0,2,1,1,3,1,1,1,1,0,1,1, - 1,0,2,0,0,1,1,1,1,0,0,3,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, - 1,1,1,1,1,1,1,2,2,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,1,1,3,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,2,2,2,2,1,0,2,1,3,1,1,1,0,1,2,0,1,0,1,2,1,0,2,1,0,1,0,2,1,1,0,0,0, - 0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,2,2,2,1,1,2,0,0,2,1,1,1,1,0,3,1,0,0,1,0,0,0,0,0,1,3,0,1,0,0,0,0,0,0,0,1,0, - 2,2,3,2,2,3,2,2,2,2,2,1,2,2,2,1,1,1,2,1,0,1,1,0,1,1,1,2,1,1,0,1,0,0,1,0,1,0, - 3,3,3,3,2,2,2,1,2,1,1,1,0,1,0,0,1,1,1,2,0,0,0,0,1,0,0,1,2,0,0,0,0,1,1,0,0,0, - 0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,2,2,2,1,2,1,2,2,1,2,0,1,1,2,1,1,1,2,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0, - 2,3,3,3,1,1,1,1,1,1,1,3,1,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,1, - 1,0,0,0,2,1,2,1,1,1,1,0,1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0, - 1,1,0,0,2,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,1,1,2,1,1,1,0,1,1,1,0,1,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,1,0,1,1,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,2,1,0,1,1,1,0,1,0,1,1,1,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,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,3,2,1,1,2,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,0,3,2,0,2,3,3,0,2,0,0,1, + 3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,1,2,0,0,3,3,2,0,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,2,2,0,0,2,2,3,1,2,1,1,1, + 3,3,3,3,3,2,3,3,3,3,3,3,1,2,3,3,3,2,3,2,3,1,2,1,3,1,2,2,2,2,2,2,0,1, + 3,3,3,3,2,3,3,1,3,3,3,3,3,3,3,3,3,3,2,2,1,2,1,1,2,1,2,3,1,2,1,2,0,1, + 3,3,3,3,3,3,3,3,3,2,1,3,2,2,2,2,1,2,2,3,0,3,2,1,3,2,1,3,2,2,1,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,1,3,1,3,3,2,2,1,2,1,1, + 3,3,3,3,2,3,3,2,3,3,3,3,3,3,2,3,3,3,1,3,3,1,1,0,2,2,2,2,2,2,1,3,1,1, + 3,3,3,3,3,3,3,3,2,3,1,3,1,2,1,1,1,1,0,3,3,2,0,1,3,1,3,3,1,2,1,2,1,1, + 3,3,3,3,1,2,2,3,2,2,3,3,1,2,2,1,2,1,2,2,0,2,1,0,2,1,1,2,2,2,1,2,2,1, + 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,1,1,1,2,3,0,2,2,1,1,2,2,0,0, + 3,3,3,3,1,3,2,3,2,2,2,3,3,1,1,1,0,1,1,3,0,1,1,1,2,1,1,1,0,2,1,1,1,0, + 3,3,3,3,2,2,2,1,2,2,1,3,3,3,1,1,1,3,1,1,1,1,1,1,2,1,1,2,1,2,1,1,1,1, + 3,3,3,3,3,3,2,3,2,2,1,3,1,2,3,1,1,2,1,3,1,1,1,1,2,1,1,2,2,2,1,1,0,1, + 3,3,3,3,1,1,1,3,1,1,1,3,0,1,1,3,1,1,0,1,0,1,1,0,2,1,0,1,0,2,0,1,1,0, + 3,3,3,3,1,3,2,3,1,1,1,3,1,1,2,1,3,1,0,0,0,1,2,0,1,1,0,1,0,1,1,1,1,0, + 3,3,3,3,3,3,2,3,2,2,2,3,1,1,1,0,1,3,1,1,0,1,1,0,1,2,1,2,0,2,1,2,1,1, + 3,3,3,3,1,1,1,1,1,0,1,3,1,1,1,1,1,0,3,1,0,1,0,0,2,0,1,1,1,1,1,1,1,0, + 3,3,3,3,2,2,2,3,2,1,2,3,1,2,1,1,1,1,1,0,0,1,1,0,1,0,1,2,1,3,0,1,1,0, + 2,0,2,0,0,1,0,0,1,0,0,3,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, + 2,0,0,1,1,1,1,1,1,1,1,2,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,1,0,1,1,1,2,2,1,1,0,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,2,2,2,0,1,2,1,1,2,0,1,2,1,1,3,1,1,0,1,0,0,0,3,0,0,0,1,1,0,0,0,0,0, + 1,0,0,0,2,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 1,1,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,2,2,1,2,2,1,1,2,1,3,1,1,1,1,0,2,0,1,0,1,0,0,2,2,1,1,1,0,0,0, + 1,2,3,2,2,2,2,2,3,2,2,1,2,2,1,1,1,2,1,1,0,0,0,1,0,1,1,2,1,0,1,0,0,0, + 3,3,3,2,1,2,2,1,2,1,1,1,1,1,0,0,1,0,1,2,0,0,0,0,0,0,1,1,2,0,1,0,0,0, + 1,2,2,1,2,2,2,2,2,1,2,1,1,2,2,1,1,1,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0, + 2,3,3,3,1,1,1,1,1,1,1,2,1,1,1,0,0,1,0,0,0,2,0,0,1,0,1,1,1,1,1,0,1,0, + 0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,1,2,1,1,1,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,2,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -238,8 +233,8 @@ const SequenceModel Iso_8859_1ItalianModel = { Iso_8859_1_CharToOrderMap, ItalianLangModel, - 38, - (float)0.9990050048941145, + 34, + (float)0.9990026435839566, PR_TRUE, "ISO-8859-1", "it" @@ -249,8 +244,8 @@ const SequenceModel Iso_8859_3ItalianModel = { Iso_8859_3_CharToOrderMap, ItalianLangModel, - 38, - (float)0.9990050048941145, + 34, + (float)0.9990026435839566, PR_TRUE, "ISO-8859-3", "it" @@ -260,8 +255,8 @@ const SequenceModel Iso_8859_9ItalianModel = { Iso_8859_9_CharToOrderMap, ItalianLangModel, - 38, - (float)0.9990050048941145, + 34, + (float)0.9990026435839566, PR_TRUE, "ISO-8859-9", "it" @@ -271,8 +266,8 @@ const SequenceModel Iso_8859_15ItalianModel = { Iso_8859_15_CharToOrderMap, ItalianLangModel, - 38, - (float)0.9990050048941145, + 34, + (float)0.9990026435839566, PR_TRUE, "ISO-8859-15", "it" @@ -282,8 +277,8 @@ const SequenceModel Windows_1252ItalianModel = { Windows_1252_CharToOrderMap, ItalianLangModel, - 38, - (float)0.9990050048941145, + 34, + (float)0.9990026435839566, PR_TRUE, "WINDOWS-1252", "it" @@ -293,11 +288,11 @@ const LanguageModel ItalianModel = { "it", Unicode_CharOrder, - 76, + 68, ItalianLangModel, - 38, - 3, - (float)0.3420627434224581, + 34, + 4, + (float)0.42999498479538617, 16, - (float)0.03959671985669916, + (float)0.03980172126113431, }; diff --git a/src/LangModels/LangLatvianModel.cpp b/src/LangModels/LangLatvianModel.cpp index 69122e3..581daee 100644 --- a/src/LangModels/LangLatvianModel.cpp +++ b/src/LangModels/LangLatvianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:11:03.758761 + * On: 2022-12-15 00:06:43.950451 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_4_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 4X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 6X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 4X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 6X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 67, 68, 51,SYM, 69, 27,SYM,SYM, 23, 21, 30, 70,SYM, 29,SYM, /* AX */ - SYM, 71,SYM, 51,SYM, 72, 27,SYM,SYM, 23, 21, 30, 73, 63, 29, 63, /* BX */ - 8, 41, 60, 65, 38, 47, 36, 74, 33, 37, 75, 57, 43, 48, 61, 18, /* CX */ - 76, 24, 42, 31, 64, 45, 44,SYM, 59, 62, 54, 66, 39, 77, 26, 49, /* DX */ - 8, 41, 60, 65, 38, 47, 36, 78, 33, 37, 79, 57, 43, 48, 61, 18, /* EX */ - 80, 24, 42, 31, 64, 45, 44,SYM, 59, 62, 54, 66, 39, 81, 26,SYM, /* FX */ + SYM, 53, 72, 52,SYM, 73, 26,SYM,SYM, 23, 21, 31, 74,SYM, 29,SYM, /* AX */ + SYM, 53,SYM, 52,SYM, 75, 26,SYM,SYM, 23, 21, 31, 76, 59, 29, 59, /* BX */ + 8, 44, 68, 62, 41, 60, 37, 58, 32, 36, 49, 56, 50, 48, 61, 19, /* CX */ + 70, 25, 66, 30, 67, 57, 42,SYM, 63, 54, 51, 77, 38, 78, 28, 46, /* DX */ + 8, 44, 68, 62, 41, 60, 37, 58, 32, 36, 49, 56, 50, 48, 61, 19, /* EX */ + 70, 25, 66, 30, 67, 57, 42,SYM, 63, 54, 51, 79, 38, 80, 28,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_10_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 4X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 6X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 4X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 6X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 82, 21, 30, 18, 83, 31,SYM, 27, 84, 23, 85, 29,SYM, 26, 63, /* AX */ - SYM, 86, 21, 30, 18, 87, 31,SYM, 27, 88, 23, 89, 29, 90, 26, 63, /* BX */ - 8, 41, 60, 65, 38, 47, 36, 91, 33, 37, 92, 57, 43, 48, 61, 93, /* CX */ - 94, 24, 42, 46, 64, 45, 44, 95, 59, 62, 54, 66, 39, 53, 96, 49, /* DX */ - 8, 41, 60, 65, 38, 47, 36, 97, 33, 37, 98, 57, 43, 48, 61, 99, /* EX */ - 100, 24, 42, 46, 64, 45, 44,101, 59, 62, 54, 66, 39, 53,102,103, /* FX */ + SYM, 53, 21, 31, 19, 81, 30,SYM, 26, 70, 23, 82, 29,SYM, 28, 59, /* AX */ + SYM, 53, 21, 31, 19, 83, 30,SYM, 26, 70, 23, 84, 29, 71, 28, 59, /* BX */ + 8, 44, 68, 62, 41, 60, 37, 58, 32, 36, 49, 56, 50, 48, 61, 85, /* CX */ + 86, 25, 66, 43, 67, 57, 42, 87, 63, 54, 51, 88, 38, 64, 69, 46, /* DX */ + 8, 44, 68, 62, 41, 60, 37, 58, 32, 36, 49, 56, 50, 48, 61, 89, /* EX */ + 90, 25, 66, 43, 67, 57, 42, 91, 63, 54, 51, 92, 38, 64, 69, 93, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,130 +110,87 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 4X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 22, 12, 3, 25, 19, 28, 1, 16, 11, 9, 13, 7, 10, /* 6X */ - 15, 40, 5, 2, 4, 6, 14, 32, 35, 34, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 4X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 18, 22, 12, 3, 24, 17, 27, 1, 16, 11, 10, 13, 7, 9, /* 6X */ + 15, 39, 4, 2, 5, 6, 14, 34, 35, 33, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 59,SYM, 51,SYM,SYM,SYM,SYM, 36, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 59,SYM, 51,SYM,SYM,SYM,SYM, 36, /* BX */ - 104,105, 8, 52, 38, 47,106, 21, 33, 37, 58, 43, 30, 31, 18, 27, /* CX */ - 23, 56, 24, 46, 42, 45, 44,SYM, 62, 50, 55, 26, 39,107, 29, 49, /* DX */ - 108,109, 8, 52, 38, 47,110, 21, 33, 37, 58, 43, 30, 31, 18, 27, /* EX */ - 23, 56, 24, 46, 42, 45, 44,SYM, 62, 50, 55, 26, 39,111, 29,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 63,SYM, 52,SYM,SYM,SYM,SYM, 37, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 63,SYM, 52,SYM,SYM,SYM,SYM, 37, /* BX */ + 53, 58, 8, 55, 41, 60, 49, 21, 32, 36, 94, 50, 31, 30, 19, 26, /* CX */ + 23, 45, 25, 43, 66, 57, 42,SYM, 54, 40, 47, 28, 38, 65, 29, 46, /* DX */ + 53, 58, 8, 55, 41, 60, 49, 21, 32, 36, 95, 50, 31, 30, 19, 26, /* EX */ + 23, 45, 25, 43, 66, 57, 42,SYM, 54, 40, 47, 28, 38, 65, 29,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 82; +static const int Unicode_Char_size = 80; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 17, 67, 22, 68, 12, 69, 3, 70, 25, 71, 19, 72, 28, - 73, 1, 74, 16, 75, 11, 76, 9, 77, 13, 78, 7, 79, 10, 80, 15, - 81, 40, 82, 5, 83, 2, 84, 4, 85, 6, 86, 14, 87, 32, 88, 35, - 89, 34, 90, 20, 97, 0, 98, 17, 99, 22, 100, 12, 101, 3,102, 25, - 103, 19, 104, 28, 105, 1, 106, 16, 107, 11, 108, 9, 109, 13,110, 7, - 111, 10, 112, 15, 113, 40, 114, 5, 115, 2, 116, 4, 117, 6,118, 14, - 119, 32, 120, 35, 121, 34, 122, 20, 196, 38, 198, 36, 201, 37,220, 39, - 228, 38, 230, 36, 233, 37, 252, 39, 256, 8, 257, 8, 268, 33,269, 33, - 274, 21, 275, 21, 290, 30, 291, 30, 298, 18, 299, 18, 310, 31,311, 31, - 315, 27, 316, 27, 325, 24, 326, 24, 352, 23, 353, 23, 362, 26,363, 26, - 381, 29, 382, 29, + 65, 0, 66, 18, 67, 22, 68, 12, 69, 3, 70, 24, 71, 17, 72, 27, + 73, 1, 74, 16, 75, 11, 76, 10, 77, 13, 78, 7, 79, 9, 80, 15, + 81, 39, 82, 4, 83, 2, 84, 5, 85, 6, 86, 14, 87, 34, 88, 35, + 89, 33, 90, 20, 97, 0, 98, 18, 99, 22, 100, 12, 101, 3,102, 24, + 103, 17, 104, 27, 105, 1, 106, 16, 107, 11, 108, 10, 109, 13,110, 7, + 111, 9, 112, 15, 113, 39, 114, 4, 115, 2, 116, 5, 117, 6,118, 14, + 119, 34, 120, 35, 121, 33, 122, 20, 198, 37, 201, 36, 220, 38,230, 37, + 233, 36, 252, 38, 256, 8, 257, 8, 268, 32, 269, 32, 274, 21,275, 21, + 290, 31, 291, 31, 298, 19, 299, 19, 310, 30, 311, 30, 315, 26,316, 26, + 325, 25, 326, 25, 352, 23, 353, 23, 362, 28, 363, 28, 381, 29,382, 29, }; /* Model Table: - * Total considered sequences: 1210 / 1681 - * - Positive sequences: first 612 (0.9950080943923969) - * - Probable sequences: next 215 (827-612) (0.003994106293262911) - * - Neutral sequences: last 854 (0.0009977993143401864) - * - Negative sequences: 471 (off-ratio) + * Total considered sequences: 1225 / 1600 + * - Positive sequences: first 641 (0.9950084809045374) + * - Probable sequences: next 222 (863-641) (0.003991829224555987) + * - Neutral sequences: last 737 (0.0009996898709065949) + * - Negative sequences: 375 (off-ratio) * Negative sequences: TODO */ static const PRUint8 LatvianLangModel[] = { - 3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,2,3, - 3,2,3,3,3,3,0,3,3,3,3,2,2,3,3,2,0,0,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3, - 3,2,3,3,3,3,1,3,3,3,3,3,2,3,0,2,0,1,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, - 3,3,3,1,0,2,3,2,3,1,0,1,2,0,2,0,0,1,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3, - 3,1,3,3,3,3,0,3,3,3,3,3,3,3,3,2,0,0,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,2,3,3,3,0,1,2,3,1,2,2,0,1,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, - 3,3,3,3,3,3,3,3,3,2,3,3,2,1,3,1,0,2,1,2,0, - 3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,2,3, - 3,2,3,3,3,2,0,3,2,2,2,2,1,3,1,2,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, - 3,3,3,3,0,3,2,0,3,2,0,0,1,3,2,0,0,1,0,0,1, - 2,2,3,1,3,3,1,3,0,3,0,3,3,3,3,3,3,3,0,3, - 3,0,3,3,3,3,0,3,1,3,1,1,0,2,0,0,0,0,0,0,0, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,0,3,3,0,3,2,1,1,1,2,2,1,0,2,1,1,0, - 3,2,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,3, - 3,2,3,3,3,3,0,3,3,2,3,2,3,3,2,2,0,0,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,1,2,2, - 2,2,3,3,3,1,3,3,3,0,0,0,1,0,2,0,0,0,1,1,0, - 3,3,3,3,2,3,3,3,3,2,3,2,2,3,3,2,2,2,3,2, - 3,3,1,1,2,2,3,0,2,3,0,0,2,0,2,0,0,1,1,0,0, - 3,3,3,3,3,2,3,3,3,2,3,3,3,3,2,3,3,3,3,3, - 2,3,2,3,0,1,3,0,1,1,2,0,0,0,2,1,0,1,1,1,0, - 3,3,3,3,1,2,3,3,3,3,3,3,3,1,2,3,3,2,3,2, - 2,3,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,2,2,2,2,3,1,1,0,0,1,2,0,3,1,2,0,0, - 3,3,3,3,1,1,3,3,3,1,3,1,2,1,2,0,1,1,2,0, - 0,3,1,1,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 3,3,3,3,2,3,3,3,3,3,3,3,2,1,3,2,3,2,3,1, - 1,3,1,1,0,1,3,3,2,1,0,0,0,0,1,0,0,1,0,1,0, - 0,1,3,1,3,3,0,3,0,3,0,3,3,3,3,3,3,3,1,3, - 3,0,3,3,3,1,0,3,0,2,1,2,0,2,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,2,0,1,2,2, - 2,2,0,3,1,2,3,3,2,2,0,0,1,0,2,0,0,1,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, - 2,3,3,2,3,1,2,0,1,0,0,1,2,0,2,0,0,0,0,0,0, - 0,0,3,1,3,3,1,3,0,3,0,3,3,3,3,2,3,2,0,3, - 3,1,3,3,2,1,0,3,0,2,3,2,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,1,3,3,3,3,2,2,2,2,1,3,3,2, - 2,3,2,0,0,0,1,0,3,0,1,0,0,1,3,0,0,0,0,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,2,0,3,2, - 2,3,0,1,2,0,1,2,0,0,0,3,1,2,0,0,0,0,0,0,0, - 3,3,2,3,1,1,3,2,3,2,3,1,1,1,2,2,0,2,0,1, - 1,3,1,3,1,0,2,0,0,0,2,3,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,1,1,3,3,1,0,2,0,1,2,0,2,2, - 1,3,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,1,0,1,0, - 0,0,3,0,3,3,0,3,0,3,1,3,3,2,3,3,2,1,0,3, - 3,0,3,3,0,1,1,0,1,2,0,2,0,0,0,0,0,0,0,0,0, - 3,3,2,3,2,2,3,1,3,2,3,1,1,2,2,1,2,1,1,0, - 1,2,0,3,3,0,3,1,0,0,3,2,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,2,3,1,0,2,0,0,0,1,3,0, - 0,2,1,0,0,0,2,1,1,0,0,0,2,0,1,0,0,1,0,0,0, - 3,3,3,3,0,2,3,3,3,2,3,2,1,2,2,1,1,1,3,0, - 0,2,1,1,3,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0, - 2,3,0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 3,3,1,3,1,0,3,0,2,0,2,0,0,0,1,0,0,0,3,0, - 0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 3,3,3,3,1,1,1,1,0,2,3,1,0,1,0,0,1,0,0,0, - 0,1,1,0,0,0,0,0,2,0,0,0,2,0,2,0,0,0,0,0,0, - 3,3,3,3,1,0,3,1,2,0,2,2,0,0,1,2,0,0,1,0, - 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,2,3,2,2,2,2,2,0,2,2,2,2,2,1,1,0,3,0,0, - 0,0,3,0,0,1,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0, - 2,2,1,1,2,0,1,0,0,1,1,1,1,1,1,2,0,0,0,0, - 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0, - 0,1,1,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, - 1,0,0,1,1,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, - 0,0,0,0,1,1,1,2,0,1,0,0,2,1,0,1,0,0,0,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,1,1,0,2,0,1,0,1,1,1,0,0,0,1,0,1, - 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0, - 1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1, + 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,0,3,2,3,3,3,3,2,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,3,3,3,3,1,3,3,3,3,2,1,2,1,0,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,0,2,1,0,3,3,1,0,0,1,2,2,0,2,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,2,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,0,2,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1,0,1,3,2,1,2,0,0,0, + 3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,0,2,2,3,2,1,1,2,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,2,3,0,1,3,2,1,0,2,0,0,0, + 2,2,3,2,3,3,1,3,0,0,3,3,3,3,3,3,3,3,3,0,3,0,3,3,3,3,3,1,0,2,0,0,2,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,3,3,3,3,3,3,0,3,2,3,2,2,3,1,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,2,1,1,1,2,0,1,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,2,2,1,2,3,3,2,3,3,3,2,0,0,0,0,1,1,0,0,0,0,0, + 3,3,3,3,3,2,3,3,3,3,3,2,2,3,3,1,2,2,2,3,3,3,2,0,1,2,0,2,3,3,0,0,0,2,2,1,1,0,2,0, + 3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,2,3,1,1,0,1,3,1,1,0,0,2,0,2,1,0,2,0, + 3,3,3,3,3,1,3,3,3,3,3,2,3,2,2,3,3,2,2,3,2,3,0,0,1,0,1,0,1,0,0,0,1,2,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,1,0,2,1,0,0,0,1,3,0,0, + 3,3,3,3,2,1,3,3,3,3,1,2,2,2,2,1,1,0,2,3,1,3,2,1,1,0,0,0,3,0,0,0,0,1,0,0,0,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,2,2,2,2,2,0,3,3,1,3,2,3,3,0,0,0,2,0,0,1,0,2,0, + 3,3,3,3,3,2,3,3,3,3,3,3,2,2,3,2,3,0,2,3,1,3,1,1,0,1,3,2,3,1,0,0,1,1,0,0,0,0,1,0, + 0,0,3,0,3,3,0,3,0,0,3,3,3,3,3,3,3,3,3,0,3,0,3,3,0,3,2,0,0,1,1,0,2,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,0,1,2,0,1,0,0,3,1,0,0,0,0,1, + 1,0,3,0,3,3,0,3,0,0,3,3,3,3,3,2,3,3,2,0,3,0,3,3,1,2,3,0,0,2,3,3,1,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,1,3,3,3,3,2,2,2,2,1,1,3,3,2,3,2,0,0,0,0,3,2,0,0,1,0,3,0,0,0,0,0,2, + 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,2,1,3,1,3,1,1,0,3,2,0,2,0,3,0,3,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,1,3,3,3,1,1,3,1,1,2,2,0,2,0,2,1,0,3,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0, + 3,3,3,3,0,0,3,2,3,3,1,2,2,1,2,2,1,1,2,1,1,3,0,3,0,0,0,0,2,0,3,2,0,0,0,0,0,0,0,0, + 3,3,2,3,3,2,3,2,3,3,2,2,1,1,2,2,2,1,1,3,0,2,0,3,1,3,2,0,3,0,2,3,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,2,1,1,3,0,0,1,1,1,1,0,2,1,1,0,1,1,1,1,0,1,0,0,1,1,0,1,0,1,0, + 0,1,3,0,3,3,0,3,0,1,3,3,3,2,3,3,2,2,2,0,3,0,3,3,1,1,0,1,1,2,1,0,0,0,0,0,0,0,0,0, + 3,3,3,3,1,0,3,1,3,3,2,3,1,2,2,1,0,0,1,3,0,2,1,0,0,3,0,0,3,1,0,2,0,1,0,0,0,0,0,0, + 3,3,1,3,0,1,3,0,2,2,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 1,3,0,3,0,0,3,1,0,1,0,0,0,0,0,0,0,0,0,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,0,0,3,1,2,3,1,2,0,1,1,2,0,0,0,2,0,2,0,0,0,0,0,1,2,0,0,0,1,0,0,0,0,0,0,0, + 2,2,2,2,2,2,2,2,0,2,2,3,2,2,1,0,1,2,2,0,0,0,3,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0, + 3,3,2,3,1,1,1,2,0,3,2,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0, + 2,3,0,1,0,1,1,0,0,1,2,0,0,0,2,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,2,0,0,0,0, + 1,0,1,1,2,1,0,0,0,2,1,0,2,2,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,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,2,1,2,1,0,2,0,0,2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0, + 1,0,1,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,1,0,0,0,0, }; @@ -241,8 +198,8 @@ const SequenceModel Iso_8859_4LatvianModel = { Iso_8859_4_CharToOrderMap, LatvianLangModel, - 41, - (float)0.9990022006856598, + 40, + (float)0.9990003101290934, PR_TRUE, "ISO-8859-4", "lv" @@ -252,8 +209,8 @@ const SequenceModel Iso_8859_10LatvianModel = { Iso_8859_10_CharToOrderMap, LatvianLangModel, - 41, - (float)0.9990022006856598, + 40, + (float)0.9990003101290934, PR_TRUE, "ISO-8859-10", "lv" @@ -263,8 +220,8 @@ const SequenceModel Iso_8859_13LatvianModel = { Iso_8859_13_CharToOrderMap, LatvianLangModel, - 41, - (float)0.9990022006856598, + 40, + (float)0.9990003101290934, PR_TRUE, "ISO-8859-13", "lv" @@ -274,11 +231,11 @@ const LanguageModel LatvianModel = { "lv", Unicode_CharOrder, - 82, + 80, LatvianLangModel, - 41, - 4, - (float)0.3598243274225239, + 40, + 5, + (float)0.42298978835240825, 22, - (float)0.0337872650940117, + (float)0.034628570589573984, }; diff --git a/src/LangModels/LangLithuanianModel.cpp b/src/LangModels/LangLithuanianModel.cpp index 4e742ef..9c18ece 100644 --- a/src/LangModels/LangLithuanianModel.cpp +++ b/src/LangModels/LangLithuanianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:30:25.794872 + * On: 2022-12-15 00:05:02.243777 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_4_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 4X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 6X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 4X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 6X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 26, 68, 69,SYM, 66, 56,SYM,SYM, 21, 49, 70, 71,SYM, 22,SYM, /* AX */ - SYM, 26,SYM, 72,SYM, 66, 56,SYM,SYM, 21, 49, 73, 74, 75, 22, 76, /* BX */ - 40, 38, 77, 53, 37, 47, 59, 30, 24, 34, 31, 46, 17, 39, 65, 44, /* CX */ - 58, 51, 41, 63, 54, 60, 36,SYM, 55, 20, 50, 64, 42, 67, 27, 52, /* DX */ - 40, 38, 78, 53, 37, 47, 59, 30, 24, 34, 31, 46, 17, 39, 65, 44, /* EX */ - 58, 51, 41, 63, 54, 60, 36,SYM, 55, 20, 50, 64, 42, 67, 27,SYM, /* FX */ + SYM, 28, 67, 68,SYM, 69, 59,SYM,SYM, 21, 62, 70, 71,SYM, 22,SYM, /* AX */ + SYM, 28,SYM, 72,SYM, 73, 59,SYM,SYM, 21, 62, 74, 75, 76, 22, 77, /* BX */ + 48, 37, 51, 55, 38, 49, 57, 30, 25, 34, 31, 46, 17, 39, 56, 54, /* CX */ + 78, 79, 44, 80, 47, 66, 35,SYM, 64, 20, 53, 63, 40, 81, 27, 50, /* DX */ + 48, 37, 51, 55, 38, 49, 57, 30, 25, 34, 31, 46, 17, 39, 56, 54, /* EX */ + 82, 83, 44, 84, 47, 66, 35,SYM, 64, 20, 53, 63, 40, 85, 27,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_10_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 4X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 6X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 4X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 6X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 26, 49, 79, 44, 66, 63,SYM, 56, 58, 21, 80, 22,SYM, 27, 81, /* AX */ - SYM, 26, 49, 82, 44, 66, 63,SYM, 56, 58, 21, 83, 22, 84, 27, 85, /* BX */ - 40, 38, 86, 53, 37, 47, 59, 30, 24, 34, 31, 46, 17, 39, 65, 57, /* CX */ - 87, 51, 41, 45, 54, 60, 36, 67, 55, 20, 50, 64, 42, 88, 89, 52, /* DX */ - 40, 38, 90, 53, 37, 47, 59, 30, 24, 34, 31, 46, 17, 39, 65, 57, /* EX */ - 91, 51, 41, 45, 54, 60, 36, 67, 55, 20, 50, 64, 42, 92, 93, 94, /* FX */ + SYM, 28, 62, 86, 54, 87, 88,SYM, 59, 89, 21, 90, 22,SYM, 27, 91, /* AX */ + SYM, 28, 62, 92, 54, 93, 94,SYM, 59, 95, 21, 96, 22, 52, 27, 97, /* BX */ + 48, 37, 51, 55, 38, 49, 57, 30, 25, 34, 31, 46, 17, 39, 56, 58, /* CX */ + 98, 99, 44, 41, 47, 66, 35,100, 64, 20, 53, 63, 40,101,102, 50, /* DX */ + 48, 37, 51, 55, 38, 49, 57, 30, 25, 34, 31, 46, 17, 39, 56, 58, /* EX */ + 103,104, 44, 41, 47, 66, 35,105, 64, 20, 53, 63, 40,106,107,108, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,82 +110,84 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 4X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 18, 23, 12, 5, 28, 16, 29, 0, 15, 9, 10, 11, 7, 3, /* 6X */ - 14, 35, 4, 2, 6, 8, 13, 33, 32, 19, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 4X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 18, 23, 12, 5, 26, 16, 29, 0, 15, 9, 10, 11, 6, 3, /* 6X */ + 14, 36, 4, 2, 7, 8, 13, 33, 32, 19, 24,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 55,SYM, 95,SYM,SYM,SYM,SYM, 59, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 55,SYM, 96,SYM,SYM,SYM,SYM, 59, /* BX */ - 26, 30, 40, 48, 37, 47, 31, 49, 24, 34, 97, 17, 98, 63, 44, 56, /* CX */ - 21, 99, 51, 45, 41, 60, 36,SYM, 20, 43, 61, 27, 42, 62, 22, 52, /* DX */ - 26, 30, 40, 48, 37, 47, 31, 49, 24, 34,100, 17,101, 63, 44, 56, /* EX */ - 21,102, 51, 45, 41, 60, 36,SYM, 20, 43, 61, 27, 42, 62, 22,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 64,SYM,109,SYM,SYM,SYM,SYM, 57, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 64,SYM,110,SYM,SYM,SYM,SYM, 57, /* BX */ + 28, 30, 48, 43, 38, 49, 31, 62, 25, 34, 65, 17,111,112, 54, 59, /* CX */ + 21, 61,113, 41, 44, 66, 35,SYM, 20, 42, 60, 27, 40, 45, 22, 50, /* DX */ + 28, 30, 48, 43, 38, 49, 31, 62, 25, 34, 65, 17,114,115, 54, 59, /* EX */ + 21, 61,116, 41, 44, 66, 35,SYM, 20, 42, 60, 27, 40, 45, 22,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 72; +static const int Unicode_Char_size = 74; static const unsigned int Unicode_CharOrder[] = { - 65, 1, 66, 18, 67, 23, 68, 12, 69, 5, 70, 28, 71, 16, 72, 29, - 73, 0, 74, 15, 75, 9, 76, 10, 77, 11, 78, 7, 79, 3, 80, 14, - 81, 35, 82, 4, 83, 2, 84, 6, 85, 8, 86, 13, 87, 33, 88, 32, - 89, 19, 90, 25, 97, 1, 98, 18, 99, 23, 100, 12, 101, 5,102, 28, - 103, 16, 104, 29, 105, 0, 106, 15, 107, 9, 108, 10, 109, 11,110, 7, - 111, 3, 112, 14, 113, 35, 114, 4, 115, 2, 116, 6, 117, 8,118, 13, - 119, 33, 120, 32, 121, 19, 122, 25, 201, 34, 233, 34, 260, 26,261, 26, - 268, 24, 269, 24, 278, 17, 279, 17, 280, 31, 281, 31, 302, 30,303, 30, - 352, 21, 353, 21, 362, 27, 363, 27, 370, 20, 371, 20, 381, 22,382, 22, + 65, 1, 66, 18, 67, 23, 68, 12, 69, 5, 70, 26, 71, 16, 72, 29, + 73, 0, 74, 15, 75, 9, 76, 10, 77, 11, 78, 6, 79, 3, 80, 14, + 81, 36, 82, 4, 83, 2, 84, 7, 85, 8, 86, 13, 87, 33, 88, 32, + 89, 19, 90, 24, 97, 1, 98, 18, 99, 23, 100, 12, 101, 5,102, 26, + 103, 16, 104, 29, 105, 0, 106, 15, 107, 9, 108, 10, 109, 11,110, 6, + 111, 3, 112, 14, 113, 36, 114, 4, 115, 2, 116, 7, 117, 8,118, 13, + 119, 33, 120, 32, 121, 19, 122, 24, 201, 34, 214, 35, 233, 34,246, 35, + 260, 28, 261, 28, 268, 25, 269, 25, 278, 17, 279, 17, 280, 31,281, 31, + 302, 30, 303, 30, 352, 21, 353, 21, 362, 27, 363, 27, 370, 20,371, 20, + 381, 22, 382, 22, }; /* Model Table: - * Total considered sequences: 1175 / 1296 - * - Positive sequences: first 557 (0.995037232341861) - * - Probable sequences: next 229 (786-557) (0.0039665071105200456) - * - Neutral sequences: last 510 (0.0009962605476189212) - * - Negative sequences: 121 (off-ratio) + * Total considered sequences: 1159 / 1369 + * - Positive sequences: first 556 (0.9950187236479393) + * - Probable sequences: next 217 (773-556) (0.003987547510905687) + * - Neutral sequences: last 596 (0.000993728841155006) + * - Negative sequences: 210 (off-ratio) * Negative sequences: TODO */ static const PRUint8 LithuanianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,0,1,3,2,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,3,3,3,3,3,0,1,3,3,0,0,2,3,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,1,3,3,2,3,3,3,3,3,2,0,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,0,3,3,3,3,3,0,0,3,3,0,0,2,3,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,0,1,3,2,3,0,2,3,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,3,3,3,3,2,2,2,0,2,3,3,2,3,3,3,0,2,1,1, - 3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,2,3,3,3,3,3,2,3,3,3,3,3,2,3,2,3,3,1,1,1,0, - 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,2,0,3,3,3,3,3,0,0,3,2,0,0,2,1,1,1, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,2,3,2,3,3,3,0,3,2,0,3,3,2,3,3,3,0,2,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,3,3,3,3,3,0,1,2,0, - 3,3,3,3,2,3,3,2,3,2,3,3,2,2,3,2,2,3,3,3,3,2,3,2,1,3,3,3,2,1,1,3,1,2,2,0, - 3,3,3,3,3,3,2,3,3,3,3,3,2,3,2,2,2,3,2,3,3,1,3,2,0,3,3,3,0,2,3,3,0,2,2,0, - 3,3,3,3,2,3,1,2,3,1,3,1,2,1,2,2,2,3,1,3,3,1,0,1,2,3,3,3,1,0,2,3,0,0,1,0, - 3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,3,2,3,1,2,1,1,3,3,1,3,2,2,0,0,1,0, - 3,3,1,3,2,3,2,1,3,2,0,0,1,0,1,0,1,3,0,2,3,1,0,1,0,0,3,3,1,0,3,3,0,0,0,0, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,2,3,2,3,3,2,3,1,1,3,3,3,1,3,2,3,0,2,1,0, - 0,0,3,0,3,0,3,3,1,3,3,3,3,3,3,3,3,0,2,0,0,2,3,2,2,2,0,0,2,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,2,3,2,3,1,3,2,1,2,0,3,2,3,3,1,1,1,1,3,3,3,1,2,1,3,0,1,0,0, - 2,3,3,2,3,3,3,3,2,3,3,3,3,3,3,3,3,0,3,1,0,3,3,2,3,3,0,1,1,1,0,0,1,0,0,0, - 0,0,2,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, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,2,3,2,2,2,0,3,0,2,2,1,0,2,2,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,3,2,3,2,1,0,0,1,0,2,2,2,1,2,1,0,0,0,0, - 3,3,2,3,3,3,3,1,3,3,3,2,2,1,0,1,2,3,1,2,1,0,1,2,0,2,2,3,1,3,0,0,1,0,1,2, - 3,3,0,2,0,3,0,1,2,2,0,0,2,0,0,0,0,2,0,2,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0, - 3,3,2,3,2,3,2,2,3,1,3,3,3,2,1,0,2,3,2,3,3,0,0,0,0,2,1,2,0,1,1,2,0,1,1,0, - 0,0,3,0,2,0,0,1,0,2,3,1,0,2,0,3,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,3,0,3,0,3,3,0,3,2,3,3,2,2,1,3,0,2,0,0,3,2,0,3,3,0,0,0,0,0,0,0,0,0,0, - 3,3,2,3,3,3,3,0,3,2,3,1,1,1,0,2,2,2,0,1,1,0,0,2,0,0,1,1,2,1,0,0,0,0,2,0, - 3,3,2,3,3,3,3,3,3,2,2,3,2,1,0,2,1,2,1,3,2,0,0,0,0,0,1,1,0,0,0,0,0,2,0,1, - 0,1,3,0,3,1,3,2,0,3,2,2,2,3,3,2,3,2,1,0,0,1,3,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,2,0,1,1,2,2,0,1,0,1,0,0,3,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,3,0,0,0, - 3,3,2,2,2,3,0,2,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,2,0,0,0,2,0,0, - 0,0,2,1,2,1,1,2,0,0,1,2,2,1,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1, - 1,0,1,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, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,0,1,3,2,1,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,3,3,3,3,1,0,3,1,0,2,3,1,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,1,1,3,2,3,2,3,3,3,3,2,0,2,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,0,3,3,3,3,3,3,0,0,3,0,0,2,3,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,0,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,0,0,2,2,0,3,3,0,0,2, + 3,3,3,3,3,3,3,3,3,3,2,2,3,3,1,2,3,3,3,3,3,2,3,3,3,3,3,2,3,2,3,3,0,1,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,2,2,2,2,1,2,3,3,3,3,3,0,1,2,1,1, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,2,0,3,3,3,3,3,2,0,0,2,0,0,2,2,0,0,1, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,2,3,2,3,3,3,2,3,0,2,1,3,3,3,3,3,0,1,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,3,3,0,1,2,2,0, + 3,3,3,3,2,3,2,3,3,3,3,3,2,2,3,2,1,3,3,3,3,2,3,2,2,1,2,3,3,1,1,3,0,1,2,1,0, + 3,3,3,3,3,3,2,2,3,3,2,3,2,3,2,2,2,3,2,3,3,1,3,1,3,0,2,3,3,2,3,3,0,2,2,0,0, + 3,3,3,3,3,3,2,1,3,1,3,1,3,0,3,2,2,3,0,3,3,0,0,1,3,2,2,3,3,1,1,3,0,0,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,2,3,2,3,2,2,0,1,1,2,2,3,2,3,0,1,1,2,0, + 3,3,1,3,2,3,2,2,3,1,0,0,2,1,1,0,1,3,1,1,3,1,0,1,0,0,0,3,3,0,3,3,0,0,1,2,0, + 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,0,2,3,2,3,3,2,3,1,3,0,1,3,3,2,2,3,0,1,1,1,0, + 1,0,3,1,3,0,3,3,0,3,3,3,3,3,2,3,3,0,2,0,0,3,3,2,3,2,0,0,0,1,0,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,3,2,3,1,3,2,1,2,0,3,2,3,3,1,1,2,2,1,0,3,3,2,1,3,0,0,1,1,0, + 2,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,0,3,1,0,3,3,2,3,3,1,0,0,1,0,0,1,0,0,0,0, + 0,0,2,0,0,0,1,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, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,3,3,2,3,3,2,1,1,0,3,0,2,2,0,3,2,0,0,0,0,0, + 3,3,3,3,2,3,3,3,3,3,2,3,3,3,2,2,2,3,2,3,2,1,0,0,0,0,2,2,2,0,2,2,0,0,0,0,0, + 3,3,2,3,3,3,1,3,3,3,3,2,1,1,1,1,1,2,2,2,1,0,0,2,2,0,1,3,2,3,0,0,0,1,1,0,1, + 3,3,0,3,2,3,2,2,3,1,2,3,3,2,1,1,2,3,2,3,3,0,0,0,2,0,0,1,2,1,0,2,0,0,1,1,0, + 3,3,0,2,0,3,1,0,2,2,0,0,1,0,1,0,0,2,0,2,1,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0, + 3,3,2,3,3,3,1,2,3,2,3,2,1,0,2,2,2,2,2,2,1,0,0,3,1,0,2,0,1,1,0,0,0,0,1,0,1, + 0,1,3,0,3,0,3,3,1,3,3,3,3,2,2,1,3,0,2,0,0,3,2,0,3,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,2,0,1,0,0,1,2,2,0,2,0,3,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,2,3,3,3,3,3,3,1,2,3,1,1,1,1,1,2,1,3,2,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0, + 0,2,3,0,3,1,0,3,0,3,2,3,2,3,3,2,3,1,1,0,0,2,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,0,1,0,1,0,2,1,0,1,0,0,3,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,3,1,1,0,0, + 3,3,2,3,2,3,2,0,1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,2,0,0,0,1,0,1,0, + 0,0,2,0,2,1,2,2,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1, + 0,0,2,0,2,0,2,1,0,1,1,1,0,2,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0, + 1,1,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -193,8 +195,8 @@ const SequenceModel Iso_8859_4LithuanianModel = { Iso_8859_4_CharToOrderMap, LithuanianLangModel, - 36, - (float)0.9990037394523811, + 37, + (float)0.999006271158845, PR_TRUE, "ISO-8859-4", "lt" @@ -204,8 +206,8 @@ const SequenceModel Iso_8859_10LithuanianModel = { Iso_8859_10_CharToOrderMap, LithuanianLangModel, - 36, - (float)0.9990037394523811, + 37, + (float)0.999006271158845, PR_TRUE, "ISO-8859-10", "lt" @@ -215,8 +217,8 @@ const SequenceModel Iso_8859_13LithuanianModel = { Iso_8859_13_CharToOrderMap, LithuanianLangModel, - 36, - (float)0.9990037394523811, + 37, + (float)0.999006271158845, PR_TRUE, "ISO-8859-13", "lt" @@ -226,11 +228,11 @@ const LanguageModel LithuanianModel = { "lt", Unicode_CharOrder, - 72, + 74, LithuanianLangModel, - 36, - 4, - (float)0.39411092741692494, + 37, + 5, + (float)0.45060945079854764, 23, - (float)0.03166060999861138, + (float)0.0315125725614535, }; diff --git a/src/LangModels/LangMalteseModel.cpp b/src/LangModels/LangMalteseModel.cpp index 6beb493..52d30a1 100644 --- a/src/LangModels/LangMalteseModel.cpp +++ b/src/LangModels/LangMalteseModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:10:59.208511 + * On: 2022-12-15 00:03:07.917587 **/ /* Character Mapping Table: @@ -68,76 +68,76 @@ static const unsigned char Iso_8859_3_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 14, 28, 13, 4, 16, 17, 21, 1, 9, 12, 2, 10, 5, 8, /* 4X */ - 15, 27, 6, 11, 3, 7, 24, 19, 26, 30, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 14, 28, 13, 4, 16, 17, 21, 1, 9, 12, 2, 10, 5, 8, /* 6X */ - 15, 27, 6, 11, 3, 7, 24, 19, 26, 30, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 14, 28, 13, 4, 15, 18, 22, 1, 10, 12, 2, 9, 5, 8, /* 4X */ + 16, 27, 6, 11, 3, 7, 24, 19, 26, 30, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 14, 28, 13, 4, 15, 18, 22, 1, 10, 12, 2, 9, 5, 8, /* 6X */ + 16, 27, 6, 11, 3, 7, 24, 19, 26, 30, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 18,SYM,SYM,SYM,ILL, 51,SYM,SYM, 52, 53, 40, 54,SYM,ILL, 22, /* AX */ - SYM, 18,SYM,SYM,SYM,SYM, 55,SYM,SYM, 43, 56, 40, 57,SYM,ILL, 22, /* BX */ - 29, 34, 49,ILL, 44, 25, 58, 50, 38, 32, 59, 41, 48, 36, 60, 61, /* CX */ - ILL, 39, 35, 33, 47, 23, 31,SYM, 62, 45, 42, 63, 37, 64, 65, 46, /* DX */ - 29, 34, 49,ILL, 44, 25, 66, 50, 38, 32, 67, 41, 48, 36, 68, 69, /* EX */ - ILL, 39, 35, 33, 47, 23, 31,SYM, 70, 45, 42, 71, 37, 72, 73,SYM, /* FX */ + SYM, 17,SYM,SYM,SYM,ILL, 50,SYM,SYM, 51, 52, 53, 54,SYM,ILL, 21, /* AX */ + SYM, 17,SYM,SYM,SYM,SYM, 55,SYM,SYM, 42, 56, 57, 58,SYM,ILL, 21, /* BX */ + 29, 33, 49,ILL, 45, 25, 59, 39, 32, 31, 60, 41, 46, 35, 61, 62, /* CX */ + ILL, 37, 36, 34, 44, 23, 38,SYM, 63, 43, 40, 64, 48, 65, 66, 47, /* DX */ + 29, 33, 49,ILL, 45, 25, 67, 39, 32, 31, 68, 41, 46, 35, 69, 70, /* EX */ + ILL, 37, 36, 34, 44, 23, 38,SYM, 71, 43, 40, 72, 48, 73, 74,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 62; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 14, 67, 28, 68, 13, 69, 4, 70, 16, 71, 17, 72, 21, - 73, 1, 74, 9, 75, 12, 76, 2, 77, 10, 78, 5, 79, 8, 80, 15, + 65, 0, 66, 14, 67, 28, 68, 13, 69, 4, 70, 15, 71, 18, 72, 22, + 73, 1, 74, 10, 75, 12, 76, 2, 77, 9, 78, 5, 79, 8, 80, 16, 81, 27, 82, 6, 83, 11, 84, 3, 85, 7, 86, 24, 87, 19, 88, 26, - 89, 30, 90, 20, 97, 0, 98, 14, 99, 28, 100, 13, 101, 4,102, 16, - 103, 17, 104, 21, 105, 1, 106, 9, 107, 12, 108, 2, 109, 10,110, 5, - 111, 8, 112, 15, 113, 27, 114, 6, 115, 11, 116, 3, 117, 7,118, 24, + 89, 30, 90, 20, 97, 0, 98, 14, 99, 28, 100, 13, 101, 4,102, 15, + 103, 18, 104, 22, 105, 1, 106, 10, 107, 12, 108, 2, 109, 9,110, 5, + 111, 8, 112, 16, 113, 27, 114, 6, 115, 11, 116, 3, 117, 7,118, 24, 119, 19, 120, 26, 121, 30, 122, 20, 192, 29, 224, 29, 266, 25,267, 25, - 288, 23, 289, 23, 294, 18, 295, 18, 379, 22, 380, 22, + 288, 23, 289, 23, 294, 17, 295, 17, 379, 21, 380, 21, }; /* Model Table: - * Total considered sequences: 936 / 961 - * - Positive sequences: first 512 (0.9950079702120929) - * - Probable sequences: next 197 (709-512) (0.003994232243462514) - * - Neutral sequences: last 252 (0.000997797544444623) - * - Negative sequences: 25 (off-ratio) + * Total considered sequences: 922 / 961 + * - Positive sequences: first 517 (0.9950257898046807) + * - Probable sequences: next 170 (687-517) (0.003980403371696695) + * - Neutral sequences: last 274 (0.0009938068236226005) + * - Negative sequences: 39 (off-ratio) * Negative sequences: TODO */ static const PRUint8 MalteseLangModel[] = { 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,0,2, - 3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,0,3,3,0,2,3,2,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,3,3,2,3,1,0,3,1,3,3,2,3,3, + 3,3,3,3,3,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,3,3,3,1,3,3,2,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,2,1,3,0,3,1,3,3,2,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3, - 3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,2,3,3,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,3,3,3,2,3,0,3, - 3,3,3,3,3,3,3,1,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2, + 3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,3,3,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,2,3,3,3,3,2,3,0,3, + 3,3,3,3,3,3,3,2,2,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,1,2,2,3,2,2,1,3,0,0,0, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,0,3,1,1,1,2,3,3,1,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,0,1,2,0,0,3,3,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,0,1,3,0,3,1,0,1,2,2,0,1,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2,3,3,3,0,3,0,1,1,0,2,0,1,2,2, - 3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,0,1,2,3,3,0,2,2,0,0,0,1,3,3,0,2, - 3,3,3,3,3,1,3,3,3,3,2,2,1,2,1,3,0,2,0,1,0,3,0,0,1,1,1,0,1,0,0, - 3,3,3,3,3,3,3,3,3,3,1,3,1,2,2,0,3,2,0,0,0,2,0,1,0,0,0,3,2,0,2, - 3,3,3,2,3,3,3,3,3,2,2,2,1,3,2,1,0,3,3,3,1,3,3,0,3,0,0,1,1,1,2, - 3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,0,2,0,3,2,0,3,2,2,0,0,1,3,0,0,0, - 3,3,3,3,3,3,3,2,3,1,2,3,3,3,1,2,1,1,2,3,0,2,3,3,1,0,2,1,0,0,2, - 3,3,1,1,3,2,2,3,2,3,2,1,0,0,2,1,1,2,0,1,3,0,0,0,0,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,0,2,2,2,2,1,2,1,0,0,2,1,2,0,0,1,0,0,1,2,0,2, - 3,3,3,1,3,3,2,3,3,3,3,0,0,3,3,0,2,3,0,2,0,0,3,0,3,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,3,1,1,0,3,2,0,0,2,1,2,1,0,2,3,1,0,0,0,0,2,0, - 3,3,2,1,3,1,3,3,3,3,0,1,1,3,1,2,0,1,0,0,0,0,0,0,3,0,0,0,1,0,2, - 3,3,2,1,3,0,1,2,1,3,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0, - 3,3,3,3,3,2,3,3,3,3,3,0,2,1,2,1,2,1,0,2,0,3,0,0,2,0,3,0,2,0,0, - 3,3,2,3,3,0,3,3,3,3,1,3,2,3,3,0,3,3,0,3,0,2,0,1,0,2,1,3,0,0,0, - 3,3,2,3,3,0,2,2,3,1,0,2,3,2,1,1,2,0,0,0,0,3,0,0,0,0,0,1,2,0,2, - 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,2,2,1,2,2,3,2,2,2,2,2,1,2,1,1,0,0,0,1,0,0,0,0,1,0,0,0,2,0,2, + 3,3,3,2,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,2,0,1,3,1,0,1,3,3,0,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,0,2,3,3,1,2,2,3,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,0,3,1,2,0,0,3,3,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,0,1,0,3,0,0,3,0,1,2,1,0,1,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,2,0,3,3,3,1,0,3,1,1,0,2,2,1,0,2, + 3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,0,0,3,3,3,0,2,2,0,0,0,0,3,0,0,2, + 3,3,3,3,3,3,3,3,3,1,3,3,1,2,1,3,0,1,3,0,0,0,2,0,0,0,0,3,1,0,1, + 3,3,3,2,3,2,3,3,3,0,3,3,1,2,2,1,3,0,2,1,0,0,3,0,2,1,0,0,2,0,1, + 3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,2,0,3,0,2,0,2,3,2,0,0,2,3,0,0,0, + 3,3,3,2,3,3,3,3,3,2,1,2,1,2,2,1,0,3,3,3,1,3,3,1,3,0,1,1,0,0,2, + 3,3,3,3,3,3,3,2,3,2,1,3,3,3,1,1,1,2,2,3,1,3,2,3,0,0,2,1,0,0,1, + 3,3,2,1,3,2,1,3,3,2,3,1,1,0,0,0,1,0,2,1,3,0,2,0,1,0,0,1,0,0,0, + 3,3,3,0,3,2,2,3,3,3,3,0,0,3,3,1,0,0,3,2,0,3,1,0,3,0,0,0,0,0,0, + 3,3,2,3,3,2,3,3,3,2,1,1,1,2,2,0,1,0,1,2,1,0,2,0,1,0,0,1,2,0,2, + 3,3,2,2,3,3,3,3,3,1,3,1,0,3,3,0,0,1,3,2,0,1,1,3,1,0,0,0,0,2,0, + 3,3,2,0,3,0,3,3,3,1,3,1,0,3,0,0,1,0,0,0,0,1,0,0,3,0,0,0,0,0,2, + 3,3,2,1,3,1,1,2,1,0,3,0,2,0,0,0,1,1,0,0,0,0,0,0,0,3,0,0,0,0,0, + 3,3,3,3,3,1,3,3,3,3,3,0,2,1,2,2,1,1,1,1,0,0,3,0,2,0,3,0,0,0,0, + 3,3,3,3,3,1,3,3,3,1,3,3,2,3,3,3,0,0,3,3,0,0,2,1,0,1,1,3,1,0,0, + 3,3,2,3,3,1,3,3,3,2,1,2,3,3,2,2,1,0,0,0,2,0,3,0,0,0,0,1,2,0,2, + 0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,2,2,2,2,2,2,3,2,1,2,1,2,0,0,1,0,1,0,2,0,0,0,2,0,0,0,2,0,1, }; @@ -146,7 +146,7 @@ const SequenceModel Iso_8859_3MalteseModel = Iso_8859_3_CharToOrderMap, MalteseLangModel, 31, - (float)0.9990022024555554, + (float)0.9990061931763774, PR_TRUE, "ISO-8859-3", "mt" @@ -159,8 +159,8 @@ const LanguageModel MalteseModel = 62, MalteseLangModel, 31, - 3, - (float)0.32403525534777605, - 22, - (float)0.03601583370707642, + 4, + (float)0.4023184608272577, + 23, + (float)0.030268103128388086, }; diff --git a/src/LangModels/LangNorwegianModel.cpp b/src/LangModels/LangNorwegianModel.cpp index bcf8d52..1fe232b 100644 --- a/src/LangModels/LangNorwegianModel.cpp +++ b/src/LangModels/LangNorwegianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:12:08.670376 + * On: 2022-12-14 20:38:56.879615 **/ /* Character Mapping Table: @@ -68,17 +68,17 @@ static const unsigned char Ibm865_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 4X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 6X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 39, 31, 27, 50, 30, 41, 19, 39, 45, 52, 40, 47, 54, 63, 30, 19, /* 8X */ - 27, 24, 24, 42, 32, 49, 58, 55, 59, 32, 31, 22,SYM, 22,SYM,SYM, /* 9X */ - 33, 35, 36, 46, 38, 38,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 4X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 6X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 38, 32, 28, 49, 30, 40, 19, 38, 52, 54, 35, 43, 64, 56, 30, 19, /* 8X */ + 28, 24, 24, 42, 31, 45, 65, 61, 66, 31, 32, 22,SYM, 22,SYM,SYM, /* 9X */ + 33, 37, 34, 36, 39, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* DX */ - 62, 48, 66, 65, 61, 61, 67, 64, 68, 69, 70, 60, 71, 72, 73,SYM, /* EX */ + 55, 41, 67, 62, 58, 58, 68, 59, 69, 70, 71, 72, 53, 73, 63,SYM, /* EX */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 4X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 6X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 4X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 6X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 53,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 57, 74,SYM,SYM, 57,SYM,SYM,SYM, 43, 43, 59,SYM, /* BX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* CX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 48, /* DX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* EX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 59, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 47,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 48, 74,SYM,SYM, 48,SYM,SYM,SYM, 50, 50, 75,SYM, /* BX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 76, 43, /* CX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 77, 32, 46, 57, 41, /* DX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 78, 43, /* EX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 79, 32, 46, 57, 80, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 4X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 6X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 4X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 6X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 75,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* CX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 48, /* DX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* EX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 59, /* FX */ + SYM,SYM,SYM,SYM,SYM, 81,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 82, 43, /* CX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 83, 32, 46, 57, 41, /* DX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 84, 43, /* EX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 85, 32, 46, 57, 86, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 4X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 21, 10, 7, 12, 2, 8, /* 6X */ - 16, 29, 1, 4, 3, 15, 13, 25, 28, 20, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 76,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 43,ILL, 57,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 43,ILL, 57, 59, /* 9X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 4X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 5, 17, 23, 9, 0, 14, 11, 18, 6, 20, 10, 8, 12, 2, 7, /* 6X */ + 16, 29, 1, 4, 3, 15, 13, 25, 27, 21, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 87,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 50,ILL, 48,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 50,ILL, 48, 88, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 77,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* CX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 48, /* DX */ - 41, 33, 50, 44, 30, 19, 24, 39, 40, 27, 45, 52, 63, 35, 54, 47, /* EX */ - 34, 38, 49, 36, 42, 56, 32,SYM, 22, 55, 46, 58, 31, 51, 37, 59, /* FX */ + SYM,SYM,SYM,SYM,SYM, 89,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 90, 43, /* CX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 91, 32, 46, 57, 41, /* DX */ + 40, 33, 49, 44, 30, 19, 24, 38, 35, 28, 52, 54, 56, 37, 92, 43, /* EX */ + 51, 39, 45, 34, 42, 60, 31,SYM, 22, 61, 36, 93, 32, 46, 57, 94, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -150,56 +150,56 @@ static const int Unicode_Char_size = 60; static const unsigned int Unicode_CharOrder[] = { 65, 5, 66, 17, 67, 23, 68, 9, 69, 0, 70, 14, 71, 11, 72, 18, - 73, 6, 74, 21, 75, 10, 76, 7, 77, 12, 78, 2, 79, 8, 80, 16, - 81, 29, 82, 1, 83, 4, 84, 3, 85, 15, 86, 13, 87, 25, 88, 28, - 89, 20, 90, 26, 97, 5, 98, 17, 99, 23, 100, 9, 101, 0,102, 14, - 103, 11, 104, 18, 105, 6, 106, 21, 107, 10, 108, 7, 109, 12,110, 2, - 111, 8, 112, 16, 113, 29, 114, 1, 115, 4, 116, 3, 117, 15,118, 13, - 119, 25, 120, 28, 121, 20, 122, 26, 197, 19, 198, 24, 201, 27,216, 22, - 229, 19, 230, 24, 233, 27, 248, 22, + 73, 6, 74, 20, 75, 10, 76, 8, 77, 12, 78, 2, 79, 7, 80, 16, + 81, 29, 82, 1, 83, 4, 84, 3, 85, 15, 86, 13, 87, 25, 88, 27, + 89, 21, 90, 26, 97, 5, 98, 17, 99, 23, 100, 9, 101, 0,102, 14, + 103, 11, 104, 18, 105, 6, 106, 20, 107, 10, 108, 8, 109, 12,110, 2, + 111, 7, 112, 16, 113, 29, 114, 1, 115, 4, 116, 3, 117, 15,118, 13, + 119, 25, 120, 27, 121, 21, 122, 26, 197, 19, 198, 24, 201, 28,216, 22, + 229, 19, 230, 24, 233, 28, 248, 22, }; /* Model Table: - * Total considered sequences: 1114 / 900 - * - Positive sequences: first 470 (0.9950174595185775) - * - Probable sequences: next 194 (664-470) (0.003983282132802413) - * - Neutral sequences: last 236 (0.0009992583486201356) - * - Negative sequences: -214 (off-ratio) + * Total considered sequences: 1072 / 900 + * - Positive sequences: first 458 (0.9950153891390712) + * - Probable sequences: next 162 (620-458) (0.003987433002112573) + * - Neutral sequences: last 280 (0.000997177858816256) + * - Negative sequences: -172 (off-ratio) * Negative sequences: TODO */ static const PRUint8 NorwegianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,1,3,2,0,3,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,0,3,2,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,3,2,2,2,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,1,3,0,3,2,0,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,2,2,1,2,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,2,2,1,0,1,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,1,2,1,1,1,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,2,3,3,0,3,1,0,1,0,0, - 3,3,3,3,2,3,3,3,3,1,2,2,1,1,3,3,0,1,2,3,3,3,3,2,3,0,0,2,0,1, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,2,1,2,2,2,3,1,1,2,3,2,2, - 3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,3,3,2,3,3,2,1,3,0,1,1,1,2,0,0, - 3,3,3,2,3,3,3,3,3,2,2,1,1,1,2,3,1,3,1,3,3,3,3,1,3,1,0,2,0,0, - 3,3,3,3,3,3,3,3,3,2,1,1,2,3,1,3,1,1,2,3,3,3,3,1,3,2,0,2,1,1, - 3,3,3,3,3,1,2,3,2,3,3,2,1,3,2,1,3,2,2,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,0,1,1,1,2,0,1,1,1,1,0, - 3,1,2,2,2,3,3,1,3,2,2,1,2,1,2,3,1,0,1,2,2,1,3,0,3,0,0,0,0,0, - 3,3,3,3,3,1,2,3,1,3,3,3,3,3,2,1,3,3,2,0,3,2,1,0,0,1,0,0,0,0, - 3,3,2,3,2,3,3,3,3,2,3,1,2,1,1,3,1,2,3,0,3,0,0,2,0,0,1,1,0,1, - 0,3,2,3,2,0,2,2,1,2,1,2,1,1,2,0,2,1,1,0,0,0,0,0,1,0,0,0,0,0, - 3,2,2,1,2,3,3,1,3,1,1,0,1,0,2,2,1,0,2,0,1,0,1,1,1,2,1,0,0,0, - 3,1,1,1,2,3,2,1,3,1,1,1,1,1,0,2,0,1,2,0,2,1,0,1,0,2,2,0,0,0, - 2,2,3,2,2,2,1,2,1,2,0,1,1,1,1,1,0,3,0,0,0,0,0,2,0,0,0,1,0,0, - 2,0,0,2,1,2,2,1,2,0,0,0,0,1,2,1,1,1,1,0,1,0,1,1,0,0,0,0,2,0, - 0,0,0,1,0,2,1,1,0,0,0,0,0,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,1,3,2,3,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,0,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,0,3,3,2,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,1,2,2,2,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,1,3,0,3,2,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,2,2,1,0,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,2,2,1,2,0,0,1,0, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,2,3,3,3,3,2,1,2,1,1,1,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,2,2,1,1,1,2,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,2,2,3,3,3,2,3,0,3,0,0,0,1,0, + 3,3,2,3,2,3,3,3,3,1,1,2,1,1,3,3,1,1,1,3,3,3,3,2,2,0,1,0,2,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,2,1,2,1,2,2,1,1,2,2,1,0, + 3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,3,3,2,3,3,1,3,2,1,1,1,1,0,1,1, + 3,3,3,2,3,3,3,3,3,2,1,1,1,1,2,3,2,3,1,3,3,3,3,2,3,1,1,1,1,1, + 3,3,3,3,3,3,3,3,3,2,1,1,2,3,1,3,1,1,2,3,3,3,3,1,3,2,1,0,1,0, + 3,3,3,3,3,2,2,1,3,3,3,2,2,3,2,0,3,2,2,1,1,0,1,0,0,0,0,0,0,0, + 3,1,2,2,2,3,3,3,1,2,2,1,2,1,2,3,1,1,0,2,1,2,3,0,3,0,1,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,2,0,2,1,0,2,0,1,1,1,0,0, + 3,3,3,3,3,1,2,1,3,3,3,3,3,3,2,1,3,2,1,0,1,3,1,0,0,1,0,0,0,0, + 3,3,1,3,2,3,3,3,3,1,3,1,2,0,1,3,1,1,3,0,2,2,0,2,1,1,2,0,1,1, + 1,3,2,2,2,0,1,1,2,2,1,1,1,1,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0, + 3,1,2,1,2,3,3,3,1,1,1,1,1,0,2,1,1,1,3,0,1,1,0,1,0,2,1,0,0,0, + 3,1,1,2,1,3,2,3,1,1,1,1,1,1,1,2,1,1,2,0,2,2,1,1,0,1,2,0,0,0, + 2,0,1,2,1,2,3,2,1,1,0,0,1,1,2,1,2,0,1,0,1,2,0,1,0,1,0,1,0,0, + 2,2,3,1,2,1,1,1,1,2,1,2,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0, + 0,0,0,0,0,2,1,0,1,0,0,0,0,1,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,1, }; @@ -208,7 +208,7 @@ const SequenceModel Ibm865NorwegianModel = Ibm865_CharToOrderMap, NorwegianLangModel, 30, - (float)0.9990007416513799, + (float)0.9990028221411837, PR_TRUE, "IBM865", "no" @@ -219,7 +219,7 @@ const SequenceModel Iso_8859_15NorwegianModel = Iso_8859_15_CharToOrderMap, NorwegianLangModel, 30, - (float)0.9990007416513799, + (float)0.9990028221411837, PR_TRUE, "ISO-8859-15", "no" @@ -230,7 +230,7 @@ const SequenceModel Iso_8859_1NorwegianModel = Iso_8859_1_CharToOrderMap, NorwegianLangModel, 30, - (float)0.9990007416513799, + (float)0.9990028221411837, PR_TRUE, "ISO-8859-1", "no" @@ -241,7 +241,7 @@ const SequenceModel Windows_1252NorwegianModel = Windows_1252_CharToOrderMap, NorwegianLangModel, 30, - (float)0.9990007416513799, + (float)0.9990028221411837, PR_TRUE, "WINDOWS-1252", "no" @@ -254,8 +254,8 @@ const LanguageModel NorwegianModel = 60, NorwegianLangModel, 30, - 4, - (float)0.3967761585890805, + 5, + (float)0.46653705344193663, 19, - (float)0.03279587657601158, + (float)0.03238135555572977, }; diff --git a/src/LangModels/LangPolishModel.cpp b/src/LangModels/LangPolishModel.cpp index c770d94..b742d6b 100644 --- a/src/LangModels/LangPolishModel.cpp +++ b/src/LangModels/LangPolishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:27:15.211093 + * On: 2022-12-15 00:39:03.247533 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 24,SYM, 19,SYM, 84, 28,SYM,SYM, 42, 72, 85, 33,SYM, 44, 26, /* AX */ - SYM, 24,SYM, 19,SYM, 86, 28,SYM,SYM, 42, 72, 87, 33,SYM, 44, 26, /* BX */ - 88, 35, 65, 52, 41, 89, 30, 46, 43, 34, 23, 56, 47, 38, 75, 90, /* CX */ - 63, 29, 70, 25, 61, 78, 39,SYM, 51, 76, 55, 91, 37, 54, 77, 53, /* DX */ - 92, 35, 65, 52, 41, 93, 30, 46, 43, 34, 23, 56, 47, 38, 75, 94, /* EX */ - 63, 29, 70, 25, 61, 78, 39,SYM, 51, 76, 55, 95, 37, 54, 77,SYM, /* FX */ + SYM, 24,SYM, 19,SYM, 81, 27,SYM,SYM, 43, 63, 82, 33,SYM, 50, 26, /* AX */ + SYM, 24,SYM, 19,SYM, 83, 27,SYM,SYM, 43, 63, 84, 33,SYM, 50, 26, /* BX */ + 85, 39, 62, 53, 40, 86, 30, 45, 48, 36, 23, 61, 54, 42, 74, 87, /* CX */ + 72, 29, 73, 25, 59, 65, 38,SYM, 70, 88, 51, 89, 35, 69, 79, 44, /* DX */ + 90, 39, 62, 53, 40, 91, 30, 45, 48, 36, 23, 61, 54, 42, 74, 92, /* EX */ + 72, 29, 73, 25, 59, 65, 38,SYM, 70, 93, 51, 94, 35, 69, 79,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_13_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 96,SYM,SYM,SYM,SYM, 50, /* AX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 40,SYM, 97,SYM,SYM,SYM,SYM, 50, /* BX */ - 24, 98, 58, 30, 41, 48, 23, 62, 43, 34, 33, 64, 82, 99, 71,100, /* CX */ - 42, 29, 74, 25, 49, 68, 39,SYM,101, 19, 28, 57, 37, 26, 44, 53, /* DX */ - 24,102, 58, 30, 41, 48, 23, 62, 43, 34, 33, 64, 82,103, 71,104, /* EX */ - 42, 29, 74, 25, 49, 68, 39,SYM,105, 19, 28, 57, 37, 26, 44,SYM, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 95,SYM,SYM,SYM,SYM, 52, /* AX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 47,SYM, 96,SYM,SYM,SYM,SYM, 52, /* BX */ + 24, 97, 49, 30, 40, 64, 23, 66, 48, 36, 33, 78, 98, 80, 57, 99, /* CX */ + 43, 29,100, 25, 34, 55, 38,SYM,101, 19, 27, 41, 35, 26, 50, 44, /* DX */ + 24,102, 49, 30, 40, 64, 23, 66, 48, 36, 33, 78,103, 80, 57,104, /* EX */ + 43, 29,105, 25, 34, 55, 38,SYM,106, 19, 27, 41, 35, 26, 50,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_16_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 24, 24, 19,SYM,SYM, 42,SYM, 42,SYM, 73,SYM, 33,SYM, 33, 26, /* AX */ - SYM,SYM, 43, 19, 44,SYM,SYM,SYM, 44, 43, 73,SYM, 80, 80, 81, 26, /* BX */ - 66, 35, 65, 52, 41, 30, 50, 46, 45, 34, 59, 56,106, 38, 75, 69, /* CX */ - 63, 29, 67, 25, 61, 78, 39, 28,107, 79, 55, 83, 37, 23, 60, 53, /* DX */ - 66, 35, 65, 52, 41, 30, 50, 46, 45, 34, 59, 56,108, 38, 75, 69, /* EX */ - 63, 29, 67, 25, 61, 78, 39, 28,109, 79, 55, 83, 37, 23, 60, 81, /* FX */ + SYM, 24, 24, 19,SYM,SYM, 43,SYM, 43,SYM, 58,SYM, 33,SYM, 33, 26, /* AX */ + SYM,SYM, 48, 19, 50,SYM,SYM,SYM, 50, 48, 58,SYM, 68, 68, 77, 26, /* BX */ + 56, 39, 62, 53, 40, 30, 52, 45, 46, 36, 60, 61,107, 42, 74, 67, /* CX */ + 72, 29, 71, 25, 59, 65, 38, 27,108, 76, 51, 75, 35, 23,109, 44, /* DX */ + 56, 39, 62, 53, 40, 30, 52, 45, 46, 36, 60, 61,110, 42, 74, 67, /* EX */ + 72, 29, 71, 25, 59, 65, 38, 27,111, 76, 51, 75, 35, 23,112, 77, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 42,SYM, 28,110, 44, 33, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 42,SYM, 28,111, 44, 33, /* 9X */ - SYM,SYM,SYM, 19,SYM, 24,SYM,SYM,SYM,SYM, 72,SYM,SYM,SYM,SYM, 26, /* AX */ - SYM,SYM,SYM, 19,SYM,SYM,SYM,SYM,SYM, 24, 72,SYM,112,SYM,113, 26, /* BX */ - 114, 35, 65, 52, 41,115, 30, 46, 43, 34, 23, 56, 47, 38, 75,116, /* CX */ - 63, 29, 70, 25, 61, 78, 39,SYM, 51, 76, 55,117, 37, 54, 77, 53, /* DX */ - 118, 35, 65, 52, 41,119, 30, 46, 43, 34, 23, 56, 47, 38, 75,120, /* EX */ - 63, 29, 70, 25, 61, 78, 39,SYM, 51, 76, 55,121, 37, 54, 77,SYM, /* FX */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 43,SYM, 27,113, 50, 33, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 43,SYM, 27,114, 50, 33, /* 9X */ + SYM,SYM,SYM, 19,SYM, 24,SYM,SYM,SYM,SYM, 63,SYM,SYM,SYM,SYM, 26, /* AX */ + SYM,SYM,SYM, 19,SYM,SYM,SYM,SYM,SYM, 24, 63,SYM,115,SYM,116, 26, /* BX */ + 117, 39, 62, 53, 40,118, 30, 45, 48, 36, 23, 61, 54, 42, 74,119, /* CX */ + 72, 29, 73, 25, 59, 65, 38,SYM, 70,120, 51,121, 35, 69, 79, 44, /* DX */ + 122, 39, 62, 53, 40,123, 30, 45, 48, 36, 23, 61, 54, 42, 74,124, /* EX */ + 72, 29, 73, 25, 59, 65, 38,SYM, 70,125, 51,126, 35, 69, 79,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,18 +152,18 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 46, 37, 34, 65, 41, 76, 30, 46, 19, 56, 78, 78, 75, 33, 41, 30, /* 8X */ - 34,122,123, 61, 39,124,125, 28, 28, 39, 37,126,127, 19,SYM, 43, /* 9X */ - 35, 38, 25, 55, 24, 24, 44, 44, 23, 23,SYM, 33, 43, 72,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 35, 65, 47, 72,SYM,SYM,SYM,SYM, 26, 26,SYM, /* BX */ - SYM,SYM,SYM,SYM,SYM,SYM, 52, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 63, 63,128, 56,129, 70, 38, 75, 47,SYM,SYM,SYM,SYM, 77, 76,SYM, /* DX */ - 25, 53, 61, 29, 29, 70, 42, 42,130, 55,131,132, 54, 54, 77,SYM, /* EX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,133, 51, 51,SYM,SYM, /* FX */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 45, 35, 36, 62, 40,127, 30, 45, 19, 61, 65, 65, 74, 33, 40, 30, /* 8X */ + 36,128,129, 59, 38,130,131, 27, 27, 38, 35,132,133, 19,SYM, 48, /* 9X */ + 39, 42, 25, 51, 24, 24, 50, 50, 23, 23,SYM, 33, 48, 63,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 39, 62, 54, 63,SYM,SYM,SYM,SYM, 26, 26,SYM, /* BX */ + SYM,SYM,SYM,SYM,SYM,SYM, 53, 53,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ + 72, 72,134, 61,135, 73, 42, 74, 54,SYM,SYM,SYM,SYM, 79,136,SYM, /* DX */ + 25, 44, 59, 29, 29, 73, 43, 43,137, 51,138,139, 69, 69, 79,SYM, /* EX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,140, 70, 70,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -173,84 +173,85 @@ static const unsigned char Mac_Centraleurope_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 4X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 21, 11, 14, 3, 27, 20, 22, 1, 18, 8, 16, 15, 4, 2, /* 6X */ - 13, 36, 5, 6, 10, 17, 31, 9, 32, 12, 7,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 41, 58, 58, 34, 24, 39, 37, 35, 24, 43, 41, 43, 30, 30, 34, 33, /* 8X */ - 33,134, 38,135, 62, 62, 64, 25, 64, 61, 39, 68, 55, 47, 47, 37, /* 9X */ - SYM,SYM, 23,SYM,SYM,SYM,SYM, 53,SYM,SYM,SYM, 23,SYM,SYM, 82,136, /* AX */ - 137, 71,SYM,SYM, 71,138,SYM,SYM, 19,139,140,141,142,143,144, 74, /* BX */ - 74, 29,SYM,SYM, 29, 70,SYM,SYM,SYM,SYM,SYM, 70, 78, 68, 78, 49, /* CX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 49,145,146, 51,SYM,SYM, 51,147, /* DX */ - 148, 42,SYM,SYM, 42, 28, 28, 35,149,150, 38, 44, 44, 57, 25, 61, /* EX */ - 57, 76, 55, 76,151,152,153,154, 54, 54,155, 26, 19, 26, 82,SYM, /* FX */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 4X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 21, 9, 13, 3, 28, 20, 22, 1, 18, 11, 17, 15, 4, 2, /* 6X */ + 14, 37, 5, 8, 10, 16, 31, 7, 32, 12, 6,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 40, 49, 49, 36, 24, 38, 35, 39, 24, 48, 40, 48, 30, 30, 36, 33, /* 8X */ + 33,141, 42,142, 66, 66, 78, 25, 78, 59, 38, 55, 51, 54, 54, 35, /* 9X */ + SYM,SYM, 23,SYM,SYM,SYM,SYM, 44,SYM,SYM,SYM, 23,SYM,SYM,143,144, /* AX */ + 145, 57,SYM,SYM, 57, 80,SYM,SYM, 19,146,147,148,149,150,151,152, /* BX */ + 153, 29,SYM,SYM, 29, 73,SYM,SYM,SYM,SYM,SYM, 73, 65, 55, 65, 34, /* CX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 34,154,155, 70,SYM,SYM, 70,156, /* DX */ + 157, 43,SYM,SYM, 43, 27, 27, 39,158,159, 42, 50, 50, 41, 25, 59, /* EX */ + 41,160, 51,161,162,163,164,165, 69, 69, 80, 26, 19, 26,166,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 74; +static const int Unicode_Char_size = 76; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 21, 67, 11, 68, 14, 69, 3, 70, 27, 71, 20, 72, 22, - 73, 1, 74, 18, 75, 8, 76, 16, 77, 15, 78, 4, 79, 2, 80, 13, - 81, 36, 82, 5, 83, 6, 84, 10, 85, 17, 86, 31, 87, 9, 88, 32, - 89, 12, 90, 7, 97, 0, 98, 21, 99, 11, 100, 14, 101, 3,102, 27, - 103, 20, 104, 22, 105, 1, 106, 18, 107, 8, 108, 16, 109, 15,110, 4, - 111, 2, 112, 13, 113, 36, 114, 5, 115, 6, 116, 10, 117, 17,118, 31, - 119, 9, 120, 32, 121, 12, 122, 7, 193, 35, 201, 34, 211, 25,225, 35, - 233, 34, 243, 25, 260, 24, 261, 24, 262, 30, 263, 30, 280, 23,281, 23, - 321, 19, 322, 19, 323, 29, 324, 29, 346, 28, 347, 28, 377, 33,378, 33, - 379, 26, 380, 26, + 65, 0, 66, 21, 67, 9, 68, 13, 69, 3, 70, 28, 71, 20, 72, 22, + 73, 1, 74, 18, 75, 11, 76, 17, 77, 15, 78, 4, 79, 2, 80, 14, + 81, 37, 82, 5, 83, 8, 84, 10, 85, 16, 86, 31, 87, 7, 88, 32, + 89, 12, 90, 6, 97, 0, 98, 21, 99, 9, 100, 13, 101, 3,102, 28, + 103, 20, 104, 22, 105, 1, 106, 18, 107, 11, 108, 17, 109, 15,110, 4, + 111, 2, 112, 14, 113, 37, 114, 5, 115, 8, 116, 10, 117, 16,118, 31, + 119, 7, 120, 32, 121, 12, 122, 6, 201, 36, 211, 25, 220, 35,233, 36, + 243, 25, 252, 35, 260, 24, 261, 24, 262, 30, 263, 30, 280, 23,281, 23, + 321, 19, 322, 19, 323, 29, 324, 29, 332, 34, 333, 34, 346, 27,347, 27, + 377, 33, 378, 33, 379, 26, 380, 26, }; /* Model Table: - * Total considered sequences: 1469 / 1369 - * - Positive sequences: first 603 (0.9950009015061881) - * - Probable sequences: next 297 (900-603) (0.004003405092029788) - * - Neutral sequences: last 469 (0.0009956934017820718) - * - Negative sequences: -100 (off-ratio) + * Total considered sequences: 1353 / 1444 + * - Positive sequences: first 583 (0.9950348611960773) + * - Probable sequences: next 199 (782-583) (0.003966625938834456) + * - Neutral sequences: last 662 (0.0009985128650882302) + * - Negative sequences: 91 (off-ratio) * Negative sequences: TODO */ static const PRUint8 PolishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,2,3,0,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,2,2,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,3,3,3,3,3,3,3,3,0,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,0,3,3,3,3,3,3,3,3,1,0,0,2,1,0,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,0,2,2,0,0,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,2,3,3,1,3,0,0,0,2,0,0,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,2,0,0,0,1,0,0,1,2,1, - 3,3,3,3,3,3,3,1,3,3,3,3,3,2,2,3,3,3,2,3,2,2,2,3,3,3,3,2,1,0,0,1,1,0,2,2,0, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,1,3,2,2,2,3,3,3,0,1,3,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,2,2,3,3,3,3,1,2,0,0,1,2,1,0,2,2,0, - 3,3,3,3,3,3,2,3,3,2,3,3,3,1,2,3,3,3,3,3,2,1,3,3,3,3,0,2,0,0,0,1,1,0,2,1,2, - 3,2,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,2,3,3,3,3,2,0,1,0,3,3,3,3,3,1,1,2,1,1,0, - 3,3,3,3,3,3,3,2,3,2,3,3,3,3,1,2,3,3,1,3,1,2,3,3,2,3,0,2,0,0,0,1,0,0,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,0,0,2,0,3,2,1,1, - 3,3,3,3,3,2,3,1,3,2,2,3,3,3,2,3,3,3,1,2,2,3,2,3,2,3,1,2,2,0,0,1,0,0,2,2,1, - 3,3,3,3,3,2,3,2,3,3,3,3,3,3,3,3,3,3,2,0,3,3,3,3,3,3,2,3,1,1,0,3,1,0,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,2,1,0,0,3,3,3,3,1,2,2,2,1,1,1, - 3,3,3,3,3,2,3,2,3,3,2,3,1,3,3,3,2,3,2,2,2,3,1,3,3,3,1,1,3,0,1,1,0,0,1,2,0, - 3,1,3,3,3,2,2,2,3,3,3,3,3,2,3,2,1,3,0,2,3,2,1,3,3,3,2,1,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,2,3,2,2,2,2,3,3,3,3,2,3,2,2,3,3,3,3,0,2,0,0,0,2,1,0,1,2,1, - 3,3,3,3,3,3,3,1,3,3,2,3,3,1,2,1,3,3,3,3,1,2,2,3,3,3,1,2,0,0,0,1,0,0,2,1,1, - 3,3,3,3,3,3,2,2,2,3,3,3,3,2,2,3,3,3,1,3,1,2,2,2,2,3,1,1,2,0,0,2,0,0,2,1,0, - 0,0,0,0,0,0,3,3,3,1,3,3,0,3,3,0,3,0,1,3,3,3,0,0,0,0,3,0,3,0,3,0,0,1,0,0,0, - 0,0,0,0,0,0,3,3,2,2,3,3,0,3,3,0,0,0,0,3,3,2,0,0,0,0,3,0,1,0,3,0,0,1,0,0,0, - 0,0,0,0,2,3,3,3,2,3,3,3,1,2,3,1,3,0,3,3,2,3,1,0,0,0,3,0,0,1,0,1,0,3,0,0,0, - 3,2,3,3,3,0,3,0,3,2,0,2,3,0,3,2,3,3,0,0,0,3,0,3,3,2,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,3,2,1,2,1,3,2,3,2,1,2,3,3,2,2,2,1,1,1,2,2,0,3,0,0,0,1,0,0,2,0,0, - 1,1,0,0,3,3,0,0,2,3,0,3,0,2,0,3,3,0,0,0,0,1,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0, - 0,0,0,0,0,0,3,0,2,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,1,0,1,1,0,0,0,2,2,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,2,2,2,0,0,1,1,2,2,2,1,1,2,2,2,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,1,2,0, - 2,3,2,2,0,0,1,0,0,1,2,1,1,2,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,3,3,0,0,0,0, - 0,1,0,0,3,3,1,0,1,2,0,2,0,0,3,1,2,0,0,0,0,3,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0, - 2,1,2,1,2,2,2,0,1,0,2,2,0,1,2,2,2,0,0,0,1,2,1,0,0,0,0,1,0,0,0,2,0,0,0,0,0, - 0,1,0,0,3,2,2,2,2,0,1,2,0,1,1,1,2,1,0,0,1,2,0,0,1,0,0,0,0,1,0,1,1,0,0,0,1, - 1,2,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,2,3,0,0,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,2,2,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,2,3,2,3,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,0,3,3,3,3,3,3,2,1,3,0,0,2,1,0,1,0,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,2,3,1,2,2,1,0,2,2,2,1, + 3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,0,1,0,0,1,0,0,1,1,0,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,1,3,3,1,3,2,2,2,3,3,3,1,3,1,0,0,0,0,0,0,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,0,0,3,0,0,2,0,0,1,1,2,1, + 3,3,3,3,3,3,3,1,2,2,3,3,3,2,1,2,3,3,3,2,1,2,3,3,3,3,0,0,1,0,0,1,0,0,0,1,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,2,3,2,2,3,3,3,3,1,1,2,0,0,2,1,0,2,1,1,1, + 3,3,3,3,3,3,1,3,3,3,3,3,2,2,2,3,3,3,1,3,2,2,2,3,3,3,3,1,2,0,0,1,0,0,2,1,1,0, + 3,2,3,2,3,3,3,3,3,3,3,3,0,3,3,3,2,3,3,3,3,3,2,1,0,0,3,3,3,3,3,1,0,2,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,2,0,0,2,0,3,2,1,2,0, + 3,3,3,3,3,3,2,2,3,3,3,3,3,2,3,2,3,3,2,3,1,1,3,3,2,3,0,0,2,0,0,1,0,0,1,1,1,0, + 3,3,3,3,3,2,1,2,3,3,2,3,3,2,3,3,3,3,1,3,2,3,2,3,2,3,1,1,2,0,0,1,1,0,1,2,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,2,0,0,1,3,2,3,3,1,2,1,2,0,0,1,1, + 3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,3,3,3,2,0,3,3,2,3,3,2,2,0,3,1,0,2,1,0,0,2,2,0, + 3,3,3,3,3,2,2,3,3,3,2,3,0,3,3,3,3,2,1,1,2,3,1,3,3,3,1,3,2,0,1,1,0,0,2,1,0,1, + 3,1,3,3,3,1,1,2,2,3,3,3,3,2,3,2,3,0,0,2,3,2,1,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,2,3,2,1,2,2,2,3,1,3,3,3,1,3,2,2,3,3,3,3,0,0,1,0,0,1,1,0,1,2,1,0, + 3,3,3,3,3,3,1,2,3,3,1,3,3,2,1,2,3,3,3,3,1,2,1,3,3,3,0,0,2,0,0,1,0,0,1,1,1,1, + 3,3,3,3,3,3,1,3,3,2,3,2,3,2,1,3,3,3,1,3,1,2,1,2,2,3,1,1,1,0,0,1,0,0,2,1,1,0, + 0,0,0,0,0,1,3,1,3,3,3,3,0,3,3,0,0,3,0,3,3,3,0,0,0,0,3,3,0,0,2,0,0,2,0,0,0,0, + 0,0,0,0,0,0,3,2,3,3,3,2,0,3,3,1,0,0,0,3,3,2,0,0,0,0,3,1,0,0,3,0,0,1,0,0,0,0, + 0,0,0,0,2,3,3,3,3,3,3,2,0,3,1,1,0,3,3,3,3,3,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0, + 3,2,3,3,3,0,0,2,3,2,0,3,3,3,1,2,3,3,0,1,1,3,1,2,3,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,3,3,0,3,0,3,0,1,0,0,2,3,0,3,0,0,0,1,0,0,0,0,0,0,0,1,3,0,0,0,0,0,0,0, + 3,3,3,3,2,3,0,1,2,2,3,1,2,2,1,2,3,3,1,1,2,1,1,2,2,1,0,0,3,0,0,1,0,0,0,2,1,0, + 0,0,0,0,0,0,0,0,3,3,0,2,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,2,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 3,3,3,3,1,2,1,0,2,1,1,1,3,1,1,0,2,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0, + 2,3,2,1,1,0,0,0,1,1,2,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,2,0,0,3,3,0,0,0,1,0, + 0,0,0,0,3,3,0,3,1,2,0,1,0,3,0,2,0,2,0,0,0,2,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0, + 1,1,0,1,1,1,1,1,2,1,1,2,1,1,0,1,1,0,1,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,2,2,0,0,1,2,1,1,0,1,1,1,0,1,1,0,1,1,2,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0, + 1,1,1,1,1,2,1,0,1,1,2,0,0,1,1,2,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0, + 1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1, }; @@ -258,8 +259,8 @@ const SequenceModel Iso_8859_2PolishModel = { Iso_8859_2_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "ISO-8859-2", "pl" @@ -269,8 +270,8 @@ const SequenceModel Iso_8859_13PolishModel = { Iso_8859_13_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "ISO-8859-13", "pl" @@ -280,8 +281,8 @@ const SequenceModel Iso_8859_16PolishModel = { Iso_8859_16_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "ISO-8859-16", "pl" @@ -291,8 +292,8 @@ const SequenceModel Windows_1250PolishModel = { Windows_1250_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "WINDOWS-1250", "pl" @@ -302,8 +303,8 @@ const SequenceModel Ibm852PolishModel = { Ibm852_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "IBM852", "pl" @@ -313,8 +314,8 @@ const SequenceModel Mac_CentraleuropePolishModel = { Mac_Centraleurope_CharToOrderMap, PolishLangModel, - 37, - (float)0.9990043065982179, + 38, + (float)0.9990014871349118, PR_TRUE, "MAC-CENTRALEUROPE", "pl" @@ -324,11 +325,11 @@ const LanguageModel PolishModel = { "pl", Unicode_CharOrder, - 74, + 76, PolishLangModel, - 37, - 5, - (float)0.38580674970932544, + 38, + 6, + (float)0.43817523500889866, 24, - (float)0.030099113395268155, + (float)0.030420295035551964, }; diff --git a/src/LangModels/LangPortugueseModel.cpp b/src/LangModels/LangPortugueseModel.cpp index fc29c27..33af46e 100644 --- a/src/LangModels/LangPortugueseModel.cpp +++ b/src/LangModels/LangPortugueseModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:14:13.337964 + * On: 2022-12-15 00:16:37.498251 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 4X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 6X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 4X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 6X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 53,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 56, 54,SYM,SYM, 56,SYM,SYM,SYM, 57, 58, 59,SYM, /* BX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 60, 23, 48, 55, /* CX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 61, 32, 62, 41, 47, 45, 49, /* DX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 63, 23, 48, 55, /* EX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 64, 32, 65, 41, 47, 45, 66, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 52,SYM, 53,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 54, 55,SYM,SYM, 56,SYM,SYM,SYM, 49, 49, 57,SYM, /* BX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 58, 23, 43, 59, /* CX */ + 60, 41, 51, 27, 37, 30, 38,SYM, 48, 61, 32, 47, 39, 62, 63, 50, /* DX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 64, 23, 43, 65, /* EX */ + 66, 41, 51, 27, 37, 30, 38,SYM, 48, 67, 32, 47, 39, 68, 69, 70, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 4X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 6X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 4X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 6X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 54,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 67, 23, 48, 55, /* CX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 68, 32, 69, 41, 47, 45, 49, /* DX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 70, 23, 48, 55, /* EX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 71, 32, 72, 41, 47, 45, 73, /* FX */ + SYM,SYM,SYM,SYM,SYM, 71,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 72, 23, 43, 73, /* CX */ + 74, 41, 51, 27, 37, 30, 38,SYM, 48, 75, 32, 47, 39, 76, 77, 50, /* DX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 78, 23, 43, 79, /* EX */ + 80, 41, 51, 27, 37, 30, 38,SYM, 48, 81, 32, 47, 39, 82, 83, 84, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 4X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 6X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 74,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 75,ILL, 56,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 76,ILL, 56, 77, /* 9X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 4X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 6X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 85,SYM,SYM,SYM,SYM,SYM,SYM, 86,SYM, 49,ILL, 87,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 88,SYM, 49,ILL, 89, 90, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 54,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 78, 23, 48, 55, /* CX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 79, 32, 80, 41, 47, 45, 49, /* DX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 81, 23, 48, 55, /* EX */ - 42, 40, 52, 27, 37, 30, 39,SYM, 51, 82, 32, 83, 41, 47, 45, 84, /* FX */ + SYM,SYM,SYM,SYM,SYM, 91,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 92, 23, 43, 93, /* CX */ + 94, 41, 51, 27, 37, 30, 38,SYM, 48, 95, 32, 47, 39, 96, 97, 50, /* DX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46, 98, 23, 43, 99, /* EX */ + 100, 41, 51, 27, 37, 30, 38,SYM, 48,101, 32, 47, 39,102,103,104, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,85 +131,85 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 4X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 17, 10, 7, 1, 16, 14, 18, 4, 29, 34, 12, 9, 6, 2, /* 6X */ - 13, 21, 5, 3, 8, 11, 15, 36, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 4X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 17, 10, 6, 1, 16, 14, 18, 4, 28, 33, 12, 9, 7, 2, /* 6X */ + 13, 21, 5, 3, 8, 11, 15, 34, 25, 31, 26,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 54,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 85, 23, 48, 55, /* CX */ - 86, 40, 52, 27, 37, 30, 39,SYM, 51, 87, 32, 88, 41, 89, 90, 49, /* DX */ - 35, 24, 33, 19, 44, 50, 43, 20, 38, 22, 28, 46, 91, 23, 48, 55, /* EX */ - 92, 40, 52, 27, 37, 30, 39,SYM, 51, 93, 32, 94, 41, 95, 96, 97, /* FX */ + SYM,SYM,SYM,SYM,SYM,105,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46,106, 23, 43,107, /* CX */ + 108, 41, 51, 27, 37, 30, 38,SYM, 48,109, 32, 47, 39,110,111, 50, /* DX */ + 36, 24, 35, 19, 40, 45, 44, 20, 42, 22, 29, 46,112, 23, 43,113, /* EX */ + 114, 41, 51, 27, 37, 30, 38,SYM, 48,115, 32, 47, 39,116,117,118, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 76; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 17, 67, 10, 68, 7, 69, 1, 70, 16, 71, 14, 72, 18, - 73, 4, 74, 29, 75, 34, 76, 12, 77, 9, 78, 6, 79, 2, 80, 13, - 81, 21, 82, 5, 83, 3, 84, 8, 85, 11, 86, 15, 87, 36, 88, 25, - 89, 31, 90, 26, 97, 0, 98, 17, 99, 10, 100, 7, 101, 1,102, 16, - 103, 14, 104, 18, 105, 4, 106, 29, 107, 34, 108, 12, 109, 9,110, 6, + 65, 0, 66, 17, 67, 10, 68, 6, 69, 1, 70, 16, 71, 14, 72, 18, + 73, 4, 74, 28, 75, 33, 76, 12, 77, 9, 78, 7, 79, 2, 80, 13, + 81, 21, 82, 5, 83, 3, 84, 8, 85, 11, 86, 15, 87, 34, 88, 25, + 89, 31, 90, 26, 97, 0, 98, 17, 99, 10, 100, 6, 101, 1,102, 16, + 103, 14, 104, 18, 105, 4, 106, 28, 107, 33, 108, 12, 109, 9,110, 7, 111, 2, 112, 13, 113, 21, 114, 5, 115, 3, 116, 8, 117, 11,118, 15, - 119, 36, 120, 25, 121, 31, 122, 26, 192, 35, 193, 24, 194, 33,195, 19, - 199, 20, 201, 22, 202, 28, 205, 23, 211, 27, 212, 37, 213, 30,218, 32, - 224, 35, 225, 24, 226, 33, 227, 19, 231, 20, 233, 22, 234, 28,237, 23, + 119, 34, 120, 25, 121, 31, 122, 26, 192, 36, 193, 24, 194, 35,195, 19, + 199, 20, 201, 22, 202, 29, 205, 23, 211, 27, 212, 37, 213, 30,218, 32, + 224, 36, 225, 24, 226, 35, 227, 19, 231, 20, 233, 22, 234, 29,237, 23, 243, 27, 244, 37, 245, 30, 250, 32, }; /* Model Table: - * Total considered sequences: 1057 / 1444 - * - Positive sequences: first 508 (0.9950267193246717) - * - Probable sequences: next 167 (675-508) (0.003973967287456359) - * - Neutral sequences: last 769 (0.0009993133878719584) - * - Negative sequences: 387 (off-ratio) + * Total considered sequences: 1068 / 1444 + * - Positive sequences: first 514 (0.9950108744191293) + * - Probable sequences: next 183 (697-514) (0.003990843236141739) + * - Neutral sequences: last 747 (0.0009982823447289846) + * - Negative sequences: 376 (off-ratio) * Negative sequences: TODO */ static const PRUint8 PortugueseLangModel[] = { - 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,0,3,3,1,0,3,0,3,3,0,3,0,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,0,3,1,3,3,3,0,3,1,3,2,3,2,0,3,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,1,2,3,3,2,0,3,0,3,0,0,3,0,3,0, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,1,3,3,3,3,0,1,3,2,1,3,3,1,1,2,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,3,3,3,3,3,2,3,1,1,2,3,0,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1,1,3,3,1,3,3,3,3,3,0,3,2, - 3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,3,3,2,3,3,3,3,3,3,3,2,3,3,2,3,0,2,3,2,3,0,1,3, - 3,3,3,3,3,3,3,3,2,3,2,3,2,1,2,2,2,2,2,3,0,2,3,3,3,1,1,3,3,2,1,2,3,2,0,0,2,2, - 3,3,3,3,3,3,2,1,3,3,3,3,3,2,1,1,1,1,3,3,0,0,3,3,3,0,2,3,3,1,2,3,2,3,1,0,2,3, - 3,3,3,3,3,2,2,1,1,3,2,3,2,3,1,1,1,3,1,3,0,0,3,3,3,0,0,3,2,0,2,2,3,2,1,0,1,3, - 3,3,3,2,3,3,3,3,3,2,3,3,3,1,1,1,2,2,3,3,3,2,3,3,3,1,1,3,3,2,2,2,2,3,3,0,0,2, - 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,1,3,2,2,3,3,3,3,0,3,3,0,1,0,1,2,0,1,0, - 3,3,3,3,3,1,2,3,3,3,3,3,3,2,3,3,3,3,3,2,1,3,3,3,3,1,1,3,3,1,1,3,1,3,2,0,1,3, - 3,3,3,3,3,3,2,2,3,1,2,3,3,3,1,1,1,1,3,2,3,1,3,2,3,0,1,3,2,1,3,2,3,2,1,0,1,2, - 3,3,3,2,3,3,3,1,2,3,1,3,3,1,2,1,1,2,3,3,0,0,3,2,3,0,0,2,3,1,1,3,1,3,1,0,2,2, - 3,3,3,1,3,3,0,1,0,0,1,3,1,0,0,1,0,0,0,2,0,0,3,3,3,0,0,1,2,1,1,1,0,2,0,0,1,1, - 3,3,3,1,3,3,1,1,2,1,1,3,3,1,1,1,3,1,0,1,0,0,3,3,3,0,0,3,2,1,0,1,1,1,1,0,1,1, - 3,3,3,3,3,3,3,3,3,2,3,3,3,1,2,1,2,2,2,1,0,1,3,2,3,1,1,3,1,3,1,2,1,1,1,0,0,1, - 3,3,3,2,3,2,3,1,3,2,1,3,2,1,1,1,1,2,1,2,0,1,2,2,3,1,1,2,0,1,3,3,2,1,1,0,1,0, - 0,3,3,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,3,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,1,0,0,1,0,0,3,0,2,0,0,0,0,0, - 1,0,1,0,1,1,0,0,0,0,0,3,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,2,2,3,2,3,3,3,3,3,3,2,3,3,3,2,2,0,0,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0, - 3,1,3,3,0,3,3,3,3,3,3,1,3,3,3,3,3,3,0,0,1,2,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0, - 1,0,0,3,1,3,1,2,3,1,3,3,3,3,3,3,3,3,0,0,0,2,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,1,3,0,1,0,3,1,3,3,1,3,0,3,2,1,1,2,0,0,3,2,1,3,0,2,0,0,1,1,0,0,0,0,1,1, - 3,3,3,1,3,1,1,0,0,1,1,2,0,1,0,0,1,1,1,2,0,0,2,1,1,0,1,1,1,0,2,1,1,1,1,0,1,2, - 1,1,0,3,3,3,3,3,3,3,3,1,3,3,3,2,3,2,1,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,1,0,0,0, - 1,1,0,3,1,1,3,0,1,3,0,3,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,1,1,1,0,0,0,0,0,3,0,1,0,1,0,1,0,1,0,0,1,0,3,0,0,2,0,0,1,0,1,0,1,0,0,1, - 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, - 3,3,3,3,1,2,3,2,2,2,2,1,3,2,2,1,1,1,1,0,0,0,1,0,0,2,1,0,0,1,0,0,0,0,1,0,1,0, - 0,0,1,3,0,2,3,3,2,3,3,0,3,2,1,2,1,3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, - 1,0,0,0,0,0,3,0,1,3,0,0,0,0,1,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,2,3,2,2,1,1,3,1,2,2,1,1,1,1,0,1,0,0,0,0,0,1,0,0,1,0,1,0,2,0,0,1,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,0,3,3,1,3,1,0,3,3,3,2,1,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,0,3,1,3,3,3,3,0,1,3,2,3,3,1,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,3,3,2,3,1,0,3,0,2,3,0,0,0, + 3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,3,3,3,3,1,3,3,3,3,0,1,3,0,2,3,2,1,3,2,0,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,0,3,3,3,3,2,3,3,1,1,3,1,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,1,3,3,3,2,3,3,3,0,2, + 3,3,3,3,3,3,2,3,2,3,2,3,2,1,2,2,2,2,2,3,0,2,3,3,3,1,2,3,2,3,1,3,3,1,2,2,0,2, + 3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,3,3,2,3,3,3,3,3,3,3,1,3,3,3,2,0,2,3,3,2,2,0,3, + 3,3,3,3,3,3,1,3,3,3,3,3,3,2,1,1,1,2,3,3,0,0,3,3,3,0,2,3,1,3,2,3,2,1,2,3,0,3, + 3,3,3,2,3,1,1,3,2,3,2,3,2,3,2,1,1,3,1,3,0,0,3,3,3,1,1,3,0,2,2,2,3,1,2,2,0,3, + 3,3,3,2,3,3,3,3,3,2,3,3,3,1,2,1,2,2,3,2,3,1,3,3,3,1,1,3,2,3,2,2,1,3,1,3,0,2, + 3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,1,3,3,2,3,3,3,3,1,3,3,0,2,0,2,2,1,0,0, + 3,3,3,3,3,2,3,2,3,3,3,3,3,3,3,3,3,3,3,2,1,3,3,3,3,1,2,3,1,3,1,3,2,2,1,3,1,3, + 3,3,3,3,3,3,1,2,3,2,2,3,3,3,1,1,2,1,3,2,2,1,3,2,3,0,1,3,0,2,3,1,3,1,0,2,0,2, + 3,3,3,2,3,3,1,3,3,3,1,3,3,2,2,1,1,2,3,3,0,0,3,2,2,0,1,3,1,3,1,3,0,1,1,2,0,1, + 3,3,3,1,3,3,1,0,0,1,1,3,1,1,0,0,0,1,0,2,0,0,3,3,3,0,0,1,1,3,1,1,0,0,0,1,0,1, + 3,3,3,1,3,3,1,1,2,2,1,3,3,1,1,1,3,1,1,1,0,0,3,3,3,0,0,3,1,3,0,1,1,1,0,2,0,1, + 3,3,3,3,3,3,3,2,3,2,3,3,3,1,2,2,2,2,2,1,0,0,3,2,3,1,1,2,3,1,0,3,2,0,1,1,0,2, + 3,3,3,2,3,3,1,3,3,2,1,3,2,1,1,1,1,2,1,3,0,1,2,2,3,0,1,3,0,0,3,3,2,1,2,0,0,1, + 0,3,3,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,1,0,0,1,0,0,3,0,2,0,0,0,0,0, + 1,0,0,1,1,1,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,2,1,3,2,3,3,3,3,3,3,2,3,3,3,2,2,1,0,0,0,1,0,0,0,3,1,0,1,0,0,0,0,1,0,0,0,0, + 3,1,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,1,0,2,2,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,3,1,3,2,2,3,1,3,3,3,3,3,3,3,3,1,0,1,3,0,0,0,3,2,0,0,0,0,0,0,1,0,0,0,0, + 3,3,3,0,3,0,0,1,3,0,3,3,1,3,0,3,1,1,1,2,0,0,2,2,1,3,0,1,0,0,1,1,0,0,1,0,0,1, + 3,3,3,1,3,1,1,1,1,1,2,3,1,1,1,0,0,2,2,2,0,0,2,1,2,0,1,2,0,1,2,1,1,1,1,1,0,2, + 0,0,0,3,3,3,2,3,3,3,3,0,3,3,3,2,3,2,0,0,0,2,0,0,0,3,0,0,0,0,0,1,0,1,0,0,0,0, + 3,3,3,1,2,1,1,0,0,0,1,3,0,1,0,0,1,1,0,1,0,0,0,0,3,0,0,1,1,0,1,0,2,1,0,0,0,1, + 0,1,0,3,1,1,0,3,0,3,0,2,1,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,1,3,2,3,2,2,2,2,3,2,2,1,1,0,1,0,0,0,0,0,1,2,1,0,0,0,0,1,0,1,1,1,0,0, + 1,0,0,3,0,2,3,3,2,3,3,0,3,1,1,2,1,3,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, + 3,3,3,2,3,2,1,1,2,3,1,2,2,1,2,1,1,1,2,0,0,0,0,1,1,0,0,0,0,0,0,2,0,1,1,0,0,0, + 3,3,3,2,3,1,1,2,2,0,0,1,2,0,1,0,1,1,2,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,2,0,0,0, + 0,0,0,0,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0, 0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,1,2,1,2,1,1,1,1,0,1,0,0,1,2,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0, - 0,0,1,2,0,1,3,1,1,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,2,0,1,1,3,1,3,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -218,7 +218,7 @@ const SequenceModel Iso_8859_15PortugueseModel = Iso_8859_15_CharToOrderMap, PortugueseLangModel, 38, - (float)0.999000686612128, + (float)0.999001717655271, PR_TRUE, "ISO-8859-15", "pt" @@ -229,7 +229,7 @@ const SequenceModel Iso_8859_1PortugueseModel = Iso_8859_1_CharToOrderMap, PortugueseLangModel, 38, - (float)0.999000686612128, + (float)0.999001717655271, PR_TRUE, "ISO-8859-1", "pt" @@ -240,7 +240,7 @@ const SequenceModel Windows_1252PortugueseModel = Windows_1252_CharToOrderMap, PortugueseLangModel, 38, - (float)0.999000686612128, + (float)0.999001717655271, PR_TRUE, "WINDOWS-1252", "pt" @@ -251,7 +251,7 @@ const SequenceModel Iso_8859_9PortugueseModel = Iso_8859_9_CharToOrderMap, PortugueseLangModel, 38, - (float)0.999000686612128, + (float)0.999001717655271, PR_TRUE, "ISO-8859-9", "pt" @@ -264,8 +264,8 @@ const LanguageModel PortugueseModel = 76, PortugueseLangModel, 38, - 3, - (float)0.33399315313253364, + 4, + (float)0.415799487769479, 21, - (float)0.034949037152514996, + (float)0.03464523042358283, }; diff --git a/src/LangModels/LangRomanianModel.cpp b/src/LangModels/LangRomanianModel.cpp index 4b22a2e..ca091a7 100644 --- a/src/LangModels/LangRomanianModel.cpp +++ b/src/LangModels/LangRomanianModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:14:02.581406 + * On: 2022-12-15 00:04:31.828422 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 4X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 6X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 4X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 6X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 69,SYM, 43,SYM, 48, 64,SYM,SYM, 33, 73, 72, 68,SYM, 39, 61, /* AX */ - SYM, 69,SYM, 43,SYM, 48, 64,SYM,SYM, 33, 74, 72, 68,SYM, 39, 61, /* BX */ - 75, 31, 24, 14, 41, 76, 40, 44, 34, 30, 67, 56, 54, 36, 21, 60, /* CX */ - 53, 49, 66, 35, 51, 52, 37,SYM, 50, 65, 45, 77, 38, 46, 78, 55, /* DX */ - 79, 31, 24, 14, 41, 80, 40, 44, 34, 30, 67, 56, 54, 36, 21, 60, /* EX */ - 53, 49, 66, 35, 51, 52, 37,SYM, 50, 65, 45, 81, 38, 46, 82,SYM, /* FX */ + SYM, 60,SYM, 43,SYM, 68, 56,SYM,SYM, 41, 69, 70, 66,SYM, 51, 71, /* AX */ + SYM, 60,SYM, 43,SYM, 72, 56,SYM,SYM, 41, 73, 74, 66,SYM, 51, 75, /* BX */ + 76, 32, 24, 14, 44, 77, 40, 36, 46, 30, 61, 39, 65, 34, 21, 78, /* CX */ + 64, 52, 79, 33, 49, 45, 35,SYM, 58, 80, 42, 62, 37, 57, 81, 55, /* DX */ + 82, 32, 24, 14, 44, 83, 40, 36, 46, 30, 61, 39, 65, 34, 21, 84, /* EX */ + 64, 52, 85, 33, 49, 45, 35,SYM, 58, 86, 42, 62, 37, 57, 87,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_16_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 4X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 6X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 4X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 6X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 69, 69, 43,SYM,SYM, 33,SYM, 33,SYM, 19,SYM, 68,SYM, 68, 61, /* AX */ - SYM,SYM, 34, 43, 39,SYM,SYM,SYM, 39, 34, 19,SYM, 83, 84, 71, 61, /* BX */ - 47, 31, 24, 14, 41, 40, 58, 44, 42, 30, 57, 56, 63, 36, 21, 62, /* CX */ - 53, 49, 59, 35, 51, 52, 37, 64, 85, 86, 45, 70, 38, 67, 20, 55, /* DX */ - 47, 31, 24, 14, 41, 40, 58, 44, 42, 30, 57, 56, 63, 36, 21, 62, /* EX */ - 53, 49, 59, 35, 51, 52, 37, 64, 87, 88, 45, 70, 38, 67, 20, 71, /* FX */ + SYM, 60, 60, 43,SYM,SYM, 41,SYM, 41,SYM, 19,SYM, 66,SYM, 66, 88, /* AX */ + SYM,SYM, 46, 43, 51,SYM,SYM,SYM, 51, 46, 19,SYM, 67, 67, 63, 89, /* BX */ + 48, 32, 24, 14, 44, 40, 50, 36, 38, 30, 53, 39, 59, 34, 21, 47, /* CX */ + 64, 52, 54, 33, 49, 45, 35, 56, 62, 90, 42, 91, 37, 61, 20, 55, /* DX */ + 48, 32, 24, 14, 44, 40, 50, 36, 38, 30, 53, 39, 59, 34, 21, 47, /* EX */ + 64, 52, 54, 33, 49, 45, 35, 56, 62, 92, 42, 93, 37, 61, 20, 63, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 4X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 6X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 33,SYM, 64, 72, 39, 68, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 33,SYM, 64, 72, 39, 68, /* 9X */ - SYM,SYM,SYM, 43,SYM, 69,SYM,SYM,SYM,SYM, 89,SYM,SYM,SYM,SYM, 61, /* AX */ - SYM,SYM,SYM, 43,SYM,SYM,SYM,SYM,SYM, 69, 90,SYM, 48,SYM, 48, 61, /* BX */ - 91, 31, 24, 14, 41, 92, 40, 44, 34, 30, 67, 56, 54, 36, 21, 60, /* CX */ - 53, 49, 66, 35, 51, 52, 37,SYM, 50, 65, 45, 93, 38, 46, 94, 55, /* DX */ - 95, 31, 24, 14, 41, 96, 40, 44, 34, 30, 67, 56, 54, 36, 21, 60, /* EX */ - 53, 49, 66, 35, 51, 52, 37,SYM, 50, 65, 45, 97, 38, 46, 98,SYM, /* FX */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 4X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 6X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 41,SYM, 56, 94, 51, 66, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 41,SYM, 56, 95, 51, 66, /* 9X */ + SYM,SYM,SYM, 43,SYM, 60,SYM,SYM,SYM,SYM, 96,SYM,SYM,SYM,SYM, 97, /* AX */ + SYM,SYM,SYM, 43,SYM,SYM,SYM,SYM,SYM, 60, 98,SYM, 99,SYM,100,101, /* BX */ + 102, 32, 24, 14, 44,103, 40, 36, 46, 30, 61, 39, 65, 34, 21,104, /* CX */ + 64, 52,105, 33, 49, 45, 35,SYM, 58,106, 42, 62, 37, 57,107, 55, /* DX */ + 108, 32, 24, 14, 44,109, 40, 36, 46, 30, 61, 39, 65, 34, 21,110, /* EX */ + 64, 52,111, 33, 49, 45, 35,SYM, 58,112, 42, 62, 37, 57,113,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,79 +131,77 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 4X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 2, 16, 9, 11, 1, 18, 15, 23, 0, 25, 26, 6, 12, 4, 8, /* 6X */ - 13, 32, 3, 10, 5, 7, 17, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 44, 38, 30, 24, 41, 65, 40, 44, 43, 56, 52, 52, 21, 68, 41, 40, /* 8X */ - 30, 99,100, 51, 37, 48, 48, 64, 64, 37, 38, 72, 72, 43,SYM, 34, /* 9X */ - 31, 36, 35, 45, 69, 69, 39, 39, 67, 67,SYM, 68, 34,101,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 31, 24, 54,102,SYM,SYM,SYM,SYM, 61, 61,SYM, /* BX */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 4X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 2, 15, 9, 11, 1, 17, 16, 23, 0, 26, 25, 6, 12, 4, 8, /* 6X */ + 13, 31, 3, 10, 5, 7, 18, 29, 27, 28, 22,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 36, 37, 30, 24, 44,114, 40, 36, 43, 39, 45, 45, 21, 66, 44, 40, /* 8X */ + 30,115,116, 49, 35,117,118, 56, 56, 35, 37,119,120, 43,SYM, 46, /* 9X */ + 32, 34, 33, 42, 60, 60, 51, 51, 61, 61,SYM, 66, 46,121,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 32, 24, 65,122,SYM,SYM,SYM,SYM,123,124,SYM, /* BX */ SYM,SYM,SYM,SYM,SYM,SYM, 14, 14,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 53, 53, 60, 56, 60, 66, 36, 21, 54,SYM,SYM,SYM,SYM,103, 65,SYM, /* DX */ - 35, 55, 51, 49, 49, 66, 33, 33,104, 45,105,106, 46, 46,107,SYM, /* EX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,108, 50, 50,SYM,SYM, /* FX */ + 64, 64,125, 39,126,127, 34, 21, 65,SYM,SYM,SYM,SYM,128,129,SYM, /* DX */ + 33, 55, 49, 52, 52,130, 41, 41,131, 42,132, 62, 57, 57,133,SYM, /* EX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 62, 58, 58,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 66; +static const int Unicode_Char_size = 64; static const unsigned int Unicode_CharOrder[] = { - 65, 2, 66, 16, 67, 9, 68, 11, 69, 1, 70, 18, 71, 15, 72, 23, - 73, 0, 74, 25, 75, 26, 76, 6, 77, 12, 78, 4, 79, 8, 80, 13, - 81, 32, 82, 3, 83, 10, 84, 5, 85, 7, 86, 17, 87, 29, 88, 27, - 89, 28, 90, 22, 97, 2, 98, 16, 99, 9, 100, 11, 101, 1,102, 18, - 103, 15, 104, 23, 105, 0, 106, 25, 107, 26, 108, 6, 109, 12,110, 4, - 111, 8, 112, 13, 113, 32, 114, 3, 115, 10, 116, 5, 117, 7,118, 17, - 119, 29, 120, 27, 121, 28, 122, 22, 193, 31, 194, 24, 201, 30,206, 21, - 225, 31, 226, 24, 233, 30, 238, 21, 258, 14, 259, 14, 536, 19,537, 19, - 538, 20, 539, 20, + 65, 2, 66, 15, 67, 9, 68, 11, 69, 1, 70, 17, 71, 16, 72, 23, + 73, 0, 74, 26, 75, 25, 76, 6, 77, 12, 78, 4, 79, 8, 80, 13, + 81, 31, 82, 3, 83, 10, 84, 5, 85, 7, 86, 18, 87, 29, 88, 27, + 89, 28, 90, 22, 97, 2, 98, 15, 99, 9, 100, 11, 101, 1,102, 17, + 103, 16, 104, 23, 105, 0, 106, 26, 107, 25, 108, 6, 109, 12,110, 4, + 111, 8, 112, 13, 113, 31, 114, 3, 115, 10, 116, 5, 117, 7,118, 18, + 119, 29, 120, 27, 121, 28, 122, 22, 194, 24, 201, 30, 206, 21,226, 24, + 233, 30, 238, 21, 258, 14, 259, 14, 536, 19, 537, 19, 538, 20,539, 20, }; /* Model Table: - * Total considered sequences: 1337 / 1089 - * - Positive sequences: first 478 (0.9950281325668789) - * - Probable sequences: next 301 (779-478) (0.003975199459074541) - * - Neutral sequences: last 310 (0.0009966679740465167) - * - Negative sequences: -248 (off-ratio) + * Total considered sequences: 1295 / 1024 + * - Positive sequences: first 487 (0.9950167482401342) + * - Probable sequences: next 267 (754-487) (0.003984360305270163) + * - Neutral sequences: last 270 (0.0009988914545956407) + * - Negative sequences: -271 (off-ratio) * Negative sequences: TODO */ static const PRUint8 RomanianLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,3,3,1,3,3,3,2,2,2,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,0,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,1,3,3,0,3,3,3,3,3,0,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,2,3,2,3,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,3,3,3,3,3,1,3,3,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,3,3,0,0,2,3,3,3,2,2,0,3,2,2,1,0, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,2,3,3,3,3,1,3,2,2,2,1, - 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,3,3,3,2,2,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,1,3,3,0,3,3,3,3,3,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,0,3,2,2,3,2,2,3,1,2,3,3,1,3,1,2,1,2,1,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,0,3,1,3,3,3,1,3,0,3,2,2,2,2, - 3,3,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,3,2,1,0,1,2,2,2,3,2,0,3,3,2,2,0, - 3,3,3,2,3,2,2,3,3,3,3,2,3,3,3,2,3,2,3,0,2,2,1,2,3,1,1,1,3,2,2,2,0, - 3,3,3,3,2,3,3,3,3,2,3,2,2,3,3,1,1,1,2,1,3,1,2,3,3,1,2,0,2,0,2,2,0, - 3,1,1,3,3,3,3,3,1,3,3,3,3,3,0,3,3,3,1,3,3,1,3,0,0,2,1,0,0,0,0,0,0, - 3,3,3,3,3,2,3,3,3,1,2,3,3,1,3,3,2,3,1,0,0,1,1,3,3,1,1,1,3,2,2,1,1, - 3,3,3,3,3,2,3,3,3,3,3,3,2,1,3,2,3,2,2,1,3,2,2,2,2,2,1,0,3,2,2,2,0, - 3,3,3,3,2,1,3,3,3,2,3,2,1,1,3,1,1,1,0,1,0,1,1,1,3,1,2,0,2,0,2,2,0, - 3,3,3,3,1,3,3,3,3,2,2,0,2,0,3,2,1,1,3,0,0,0,2,1,3,1,1,0,2,2,2,1,0, - 3,3,3,1,3,3,1,3,3,3,0,1,2,0,2,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0, - 3,3,3,0,0,0,0,3,2,2,1,0,0,0,3,0,0,1,0,0,0,2,0,1,2,0,2,0,0,0,0,0,0, - 3,0,0,1,3,1,3,1,0,1,1,1,3,1,0,1,1,0,0,3,1,0,1,1,0,1,1,0,0,0,0,0,0, - 3,3,3,1,2,2,2,3,3,1,2,2,2,1,3,2,3,3,0,0,0,1,3,2,3,1,2,0,2,1,1,2,1, - 3,3,3,3,3,3,3,3,3,2,2,2,3,1,2,1,2,2,2,0,0,1,2,1,1,1,2,0,3,2,2,2,0, - 3,0,0,3,3,3,3,3,0,1,2,0,3,1,0,0,1,0,0,3,2,0,1,1,0,0,0,0,0,0,0,0,0, - 3,3,3,2,2,1,3,3,3,1,1,2,2,1,2,0,2,1,1,0,0,0,1,1,1,1,2,0,1,0,1,2,0, - 3,3,3,3,2,2,3,3,3,1,3,1,3,2,1,1,1,2,2,0,0,1,1,3,1,1,2,0,3,2,1,2,0, - 3,3,3,1,1,3,1,3,2,3,0,1,1,3,2,0,1,3,2,0,0,0,0,2,1,0,0,3,2,1,0,0,0, - 2,3,3,3,3,2,3,3,3,2,3,3,3,2,0,2,3,1,1,0,0,0,2,2,0,1,2,1,1,2,1,0,1, - 3,3,3,2,2,1,2,2,3,1,3,1,1,2,0,0,1,0,2,0,0,0,0,3,0,0,2,0,2,2,0,0,0, - 1,2,2,2,2,2,2,1,1,2,2,2,2,2,0,2,1,2,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0, - 0,0,0,2,3,1,2,0,0,2,2,2,2,1,0,1,2,1,0,0,0,0,2,2,0,0,2,1,0,0,0,0,0, - 2,0,2,0,0,1,0,3,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,3,3,1,3,3,3,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,0,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,3,3,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,3,2,2, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,1,0,2,3,3,3,2,1,1,3,3,3,0, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,1,2,3,3,3,2,1,3,2,2,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,2,3,3,3,3,2,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,1,3,3,0,3,3,3,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,2,2,1,3,2,3,1,2,3,3,3,1,1,2,1,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,0,3,2,3,3,3,3,1,0,3,3,2,2, + 3,3,3,3,3,2,3,3,3,2,3,3,3,1,3,3,3,2,3,0,0,2,2,3,2,1,3,0,3,3,2,1, + 3,3,3,2,3,2,2,3,3,3,3,2,3,3,3,3,2,3,2,1,2,2,2,2,3,2,1,1,3,2,2,0, + 3,3,3,3,2,3,3,3,3,2,3,2,2,3,3,1,0,1,1,0,3,1,1,3,3,2,2,0,2,1,2,1, + 3,1,0,3,3,3,3,3,1,3,3,3,3,3,1,3,3,0,2,3,3,0,3,0,0,1,2,0,0,0,0,0, + 3,3,3,3,3,2,3,3,3,3,3,2,2,2,3,3,2,1,2,0,3,2,1,2,2,1,2,0,3,2,2,0, + 3,3,3,3,3,3,3,3,3,1,3,2,3,2,3,3,3,1,3,0,0,1,1,3,3,2,2,1,3,2,2,1, + 3,3,3,3,1,3,3,3,3,2,2,0,2,0,3,1,2,3,1,1,0,0,0,1,3,1,1,1,2,1,2,0, + 3,3,3,3,2,1,3,3,3,1,2,2,1,1,3,1,1,1,1,0,0,1,0,2,3,2,1,0,2,1,1,0, + 3,3,3,1,3,3,2,3,3,3,0,0,1,1,2,1,0,0,1,0,0,0,0,0,1,2,0,0,0,0,1,0, + 3,3,3,0,0,0,0,3,2,1,0,0,0,0,3,0,0,0,1,0,0,1,0,0,2,2,0,0,0,0,1,0, + 3,0,0,2,3,1,3,0,0,1,0,1,3,1,0,1,1,0,1,3,1,0,1,1,0,1,0,0,0,0,0,0, + 3,3,3,2,2,2,2,3,3,1,2,3,2,1,3,3,2,0,3,0,0,1,2,2,3,2,1,0,2,1,1,1, + 3,3,3,3,3,3,3,3,3,2,2,2,3,1,3,2,1,1,1,0,0,1,0,1,2,2,1,0,3,2,2,2, + 3,0,0,3,3,3,3,3,0,1,1,0,3,0,0,0,1,0,0,3,2,0,1,1,0,0,1,0,1,1,0,0, + 3,3,3,3,2,2,3,3,3,1,3,1,3,2,2,2,1,1,2,1,1,1,1,3,1,2,1,1,3,2,2,0, + 3,3,3,2,1,2,3,3,3,1,0,2,2,1,2,2,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0, + 3,3,3,0,1,3,1,3,3,3,1,0,1,3,2,1,1,2,3,0,0,0,0,2,1,1,0,3,2,1,0,0, + 2,3,3,3,3,2,3,3,3,2,3,3,3,2,0,3,2,1,2,0,1,0,1,1,1,2,1,1,2,2,1,1, + 3,3,3,2,2,2,2,2,3,2,3,2,1,1,0,1,0,1,0,0,0,0,1,3,1,2,0,0,2,2,1,0, + 2,2,2,2,2,2,2,1,2,1,2,2,2,2,0,2,2,1,2,0,0,0,1,0,0,2,1,1,0,0,0,0, + 2,1,2,0,0,0,1,3,2,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0, }; @@ -211,8 +209,8 @@ const SequenceModel Iso_8859_2RomanianModel = { Iso_8859_2_CharToOrderMap, RomanianLangModel, - 33, - (float)0.9990033320259535, + 32, + (float)0.9990011085454044, PR_TRUE, "ISO-8859-2", "ro" @@ -222,8 +220,8 @@ const SequenceModel Iso_8859_16RomanianModel = { Iso_8859_16_CharToOrderMap, RomanianLangModel, - 33, - (float)0.9990033320259535, + 32, + (float)0.9990011085454044, PR_TRUE, "ISO-8859-16", "ro" @@ -233,8 +231,8 @@ const SequenceModel Windows_1250RomanianModel = { Windows_1250_CharToOrderMap, RomanianLangModel, - 33, - (float)0.9990033320259535, + 32, + (float)0.9990011085454044, PR_TRUE, "WINDOWS-1250", "ro" @@ -244,8 +242,8 @@ const SequenceModel Ibm852RomanianModel = { Ibm852_CharToOrderMap, RomanianLangModel, - 33, - (float)0.9990033320259535, + 32, + (float)0.9990011085454044, PR_TRUE, "IBM852", "ro" @@ -255,11 +253,11 @@ const LanguageModel RomanianModel = { "ro", Unicode_CharOrder, - 66, + 64, RomanianLangModel, - 33, - 3, - (float)0.32848477086438155, - 20, - (float)0.03787956408345752, + 32, + 4, + (float)0.4039034087176214, + 21, + (float)0.03235169186956807, }; diff --git a/src/LangModels/LangSlovakModel.cpp b/src/LangModels/LangSlovakModel.cpp index 59a933f..221ba98 100644 --- a/src/LangModels/LangSlovakModel.cpp +++ b/src/LangModels/LangSlovakModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:25:49.974197 + * On: 2022-12-15 00:27:35.474305 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 4X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 6X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 4X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 6X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 69,SYM, 47,SYM, 31, 54,SYM,SYM, 28, 63, 33, 70,SYM, 30, 58, /* AX */ - SYM, 71,SYM, 47,SYM, 31, 54,SYM,SYM, 28, 63, 33, 72,SYM, 30, 58, /* BX */ - 46, 17, 66, 52, 36, 42, 49, 50, 24, 25, 57, 41, 45, 23, 59, 39, /* CX */ - 62, 53, 38, 32, 35, 60, 48,SYM, 43, 51, 26, 67, 44, 22, 73, 56, /* DX */ - 46, 17, 66, 52, 36, 42, 49, 50, 24, 25, 57, 41, 45, 23, 59, 39, /* EX */ - 62, 53, 38, 32, 35, 60, 48,SYM, 43, 51, 26, 67, 44, 22, 74,SYM, /* FX */ + SYM, 67,SYM, 51,SYM, 31, 54,SYM,SYM, 27, 59, 32, 68,SYM, 29, 69, /* AX */ + SYM, 70,SYM, 51,SYM, 31, 54,SYM,SYM, 27, 59, 32, 71,SYM, 29, 72, /* BX */ + 43, 18, 63, 56, 34, 41, 50, 48, 25, 24, 62, 42, 45, 23, 57, 38, /* CX */ + 73, 65, 39, 33, 35, 58, 44,SYM, 46, 49, 26, 74, 47, 22, 75, 55, /* DX */ + 43, 18, 63, 56, 34, 41, 50, 48, 25, 24, 62, 42, 45, 23, 57, 38, /* EX */ + 76, 65, 39, 33, 35, 58, 44,SYM, 46, 49, 26, 77, 47, 22, 78,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 4X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 6X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 28,SYM, 54, 33, 30, 75, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 28,SYM, 54, 33, 30, 76, /* 9X */ - SYM,SYM,SYM, 47,SYM, 77,SYM,SYM,SYM,SYM, 63,SYM,SYM,SYM,SYM, 58, /* AX */ - SYM,SYM,SYM, 47,SYM,SYM,SYM,SYM,SYM, 78, 63,SYM, 31,SYM, 31, 58, /* BX */ - 46, 17, 66, 52, 36, 42, 49, 50, 24, 25, 57, 41, 45, 23, 59, 39, /* CX */ - 62, 53, 38, 32, 35, 60, 48,SYM, 43, 51, 26, 67, 44, 22, 79, 56, /* DX */ - 46, 17, 66, 52, 36, 42, 49, 50, 24, 25, 57, 41, 45, 23, 59, 39, /* EX */ - 62, 53, 38, 32, 35, 60, 48,SYM, 43, 51, 26, 67, 44, 22, 80,SYM, /* FX */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 4X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 6X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 27,SYM, 54, 32, 29, 79, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 27,SYM, 54, 32, 29, 80, /* 9X */ + SYM,SYM,SYM, 51,SYM, 81,SYM,SYM,SYM,SYM, 59,SYM,SYM,SYM,SYM, 82, /* AX */ + SYM,SYM,SYM, 51,SYM,SYM,SYM,SYM,SYM, 83, 59,SYM, 31,SYM, 31, 84, /* BX */ + 43, 18, 63, 56, 34, 41, 50, 48, 25, 24, 62, 42, 45, 23, 57, 38, /* CX */ + 85, 65, 39, 33, 35, 58, 44,SYM, 46, 49, 26, 86, 47, 22, 87, 55, /* DX */ + 43, 18, 63, 56, 34, 41, 50, 48, 25, 24, 62, 42, 45, 23, 57, 38, /* EX */ + 88, 65, 39, 33, 35, 58, 44,SYM, 46, 49, 26, 89, 47, 22, 90,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 4X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 6X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 50, 44, 25, 66, 36, 51, 49, 50, 47, 41, 60, 60, 59, 81, 36, 49, /* 8X */ - 25, 42, 42, 35, 48, 31, 31, 54, 54, 48, 44, 33, 33, 47,SYM, 24, /* 9X */ - 17, 23, 32, 26, 82, 83, 30, 30, 57, 57,SYM, 84, 24, 63,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 17, 66, 45, 63,SYM,SYM,SYM,SYM, 58, 58,SYM, /* BX */ - SYM,SYM,SYM,SYM,SYM,SYM, 52, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 62, 62, 39, 41, 39, 38, 23, 59, 45,SYM,SYM,SYM,SYM, 85, 51,SYM, /* DX */ - 32, 56, 35, 53, 53, 38, 28, 28, 46, 26, 46, 67, 22, 22, 86,SYM, /* EX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 67, 43, 43,SYM,SYM, /* FX */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 4X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 6X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 48, 47, 24, 63, 34, 49, 50, 48, 51, 42, 58, 58, 57, 91, 34, 50, /* 8X */ + 24, 41, 41, 35, 44, 31, 31, 54, 54, 44, 47, 32, 32, 51,SYM, 25, /* 9X */ + 18, 23, 33, 26, 92, 93, 29, 29, 62, 62,SYM, 94, 25, 59,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 18, 63, 45, 59,SYM,SYM,SYM,SYM, 95, 96,SYM, /* BX */ + SYM,SYM,SYM,SYM,SYM,SYM, 56, 56,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ + 97, 98, 38, 42, 38, 39, 23, 57, 45,SYM,SYM,SYM,SYM, 99, 49,SYM, /* DX */ + 33, 55, 35, 65, 65, 39, 27, 27, 43, 26, 43,100, 22, 22,101,SYM, /* EX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,102, 46, 46,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,143 +131,136 @@ static const unsigned char Mac_Centraleurope_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 4X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 20, 15, 14, 2, 29, 27, 16, 4, 18, 8, 10, 11, 3, 1, /* 6X */ - 13, 40, 5, 6, 7, 12, 9, 34, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 36, 61, 61, 25, 87, 48, 44, 17, 88, 24, 36, 24, 49, 49, 25, 89, /* 8X */ - 90, 39, 23, 39, 91, 92, 93, 32, 94, 35, 48, 64, 26, 45, 45, 44, /* 9X */ - SYM,SYM, 57,SYM,SYM,SYM,SYM, 56,SYM,SYM,SYM, 57,SYM,SYM, 95, 96, /* AX */ - 97, 65,SYM,SYM, 65, 98,SYM,SYM, 47, 68, 68, 31, 31, 42, 42, 99, /* BX */ - 100, 53,SYM,SYM, 53, 38,SYM,SYM,SYM,SYM,SYM, 38, 60, 64, 60, 55, /* CX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 55, 46, 46, 43,SYM,SYM, 43,101, /* DX */ - 102, 28,SYM,SYM, 28, 54, 54, 17, 33, 33, 23, 30, 30,103, 32, 35, /* EX */ - 104, 51, 26, 51, 67, 67,105,106, 22, 22,107, 58, 47, 58,108,SYM, /* FX */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 4X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 15, 12, 2, 30, 28, 16, 4, 17, 9, 10, 11, 3, 0, /* 6X */ + 13, 40, 5, 6, 7, 14, 8, 36, 37, 21, 19,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 34, 53, 53, 24,103, 44, 47, 18,104, 25, 34, 25, 50, 50, 24,105, /* 8X */ + 106, 38, 23, 38, 52, 52,107, 33,108, 35, 44, 60, 26, 45, 45, 47, /* 9X */ + SYM,SYM, 62,SYM,SYM,SYM,SYM, 55,SYM,SYM,SYM, 62,SYM,SYM,109,110, /* AX */ + 111,112,SYM,SYM,113,114,SYM,SYM, 51,115,116, 31, 31, 41, 41, 66, /* BX */ + 66, 65,SYM,SYM, 65, 39,SYM,SYM,SYM,SYM,SYM, 39, 58, 60, 58, 64, /* CX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 64, 43, 43, 46,SYM,SYM, 46,117, /* DX */ + 118, 27,SYM,SYM, 27, 54, 54, 18, 32, 32, 23, 29, 29, 61, 33, 35, /* EX */ + 61, 49, 26, 49,119,120,121,122, 22, 22,123,124, 51,125,126,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 94; +static const int Unicode_Char_size = 88; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 20, 67, 15, 68, 14, 69, 2, 70, 29, 71, 27, 72, 16, - 73, 4, 74, 18, 75, 8, 76, 10, 77, 11, 78, 3, 79, 1, 80, 13, - 81, 40, 82, 5, 83, 6, 84, 7, 85, 12, 86, 9, 87, 34, 88, 37, - 89, 21, 90, 19, 97, 0, 98, 20, 99, 15, 100, 14, 101, 2,102, 29, - 103, 27, 104, 16, 105, 4, 106, 18, 107, 8, 108, 10, 109, 11,110, 3, - 111, 1, 112, 13, 113, 40, 114, 5, 115, 6, 116, 7, 117, 12,118, 9, - 119, 34, 120, 37, 121, 21, 122, 19, 193, 17, 196, 36, 201, 25,203, 41, - 205, 23, 211, 32, 212, 35, 218, 26, 220, 44, 221, 22, 225, 17,228, 36, - 233, 25, 235, 41, 237, 23, 243, 32, 244, 35, 250, 26, 252, 44,253, 22, - 268, 24, 269, 24, 270, 39, 271, 39, 282, 45, 283, 45, 313, 42,314, 42, - 317, 31, 318, 31, 327, 38, 328, 38, 340, 46, 341, 46, 344, 43,345, 43, - 352, 28, 353, 28, 356, 33, 357, 33, 381, 30, 382, 30, + 65, 1, 66, 20, 67, 15, 68, 12, 69, 2, 70, 30, 71, 28, 72, 16, + 73, 4, 74, 17, 75, 9, 76, 10, 77, 11, 78, 3, 79, 0, 80, 13, + 81, 40, 82, 5, 83, 6, 84, 7, 85, 14, 86, 8, 87, 36, 88, 37, + 89, 21, 90, 19, 97, 1, 98, 20, 99, 15, 100, 12, 101, 2,102, 30, + 103, 28, 104, 16, 105, 4, 106, 17, 107, 9, 108, 10, 109, 11,110, 3, + 111, 0, 112, 13, 113, 40, 114, 5, 115, 6, 116, 7, 117, 14,118, 8, + 119, 36, 120, 37, 121, 21, 122, 19, 193, 18, 196, 34, 201, 24,203, 42, + 205, 23, 211, 33, 212, 35, 218, 26, 221, 22, 225, 18, 228, 34,233, 24, + 235, 42, 237, 23, 243, 33, 244, 35, 250, 26, 253, 22, 268, 25,269, 25, + 270, 38, 271, 38, 313, 41, 314, 41, 317, 31, 318, 31, 327, 39,328, 39, + 340, 43, 341, 43, 352, 27, 353, 27, 356, 32, 357, 32, 381, 29,382, 29, }; /* Model Table: - * Total considered sequences: 1383 / 2209 - * - Positive sequences: first 768 (0.9950176374237621) - * - Probable sequences: next 243 (1011-768) (0.0039886852153107055) - * - Neutral sequences: last 1198 (0.0009936773609271476) - * - Negative sequences: 826 (off-ratio) + * Total considered sequences: 1391 / 1936 + * - Positive sequences: first 769 (0.9950122209740424) + * - Probable sequences: next 247 (1016-769) (0.003989961669689679) + * - Neutral sequences: last 920 (0.000997817356267916) + * - Negative sequences: 545 (off-ratio) * Negative sequences: TODO */ static const PRUint8 SlovakLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1, - 1,3,1,1,3,3,3,3,3,0,3,3,0,0,3,3,3,2,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0, - 1,3,1,0,3,3,3,3,3,1,0,3,0,0,3,3,2,1,3,0,2,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0, - 3,3,0,3,3,3,3,3,3,3,3,3,0,0,3,3,3,1,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,0,3,0,2,2,0,1,0,1,1,0,0,0,0,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0, - 3,3,3,1,3,3,3,3,2,3,3,2,0,1,3,2,0,2,0,0,3,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3, - 3,3,3,3,3,3,3,3,0,3,2,2,3,1,1,2,0,2,0,0,0,1,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2, - 3,3,3,3,2,1,3,0,2,1,3,2,2,1,0,1,0,1,0,0,0,2,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,3,3,3, - 3,2,3,3,2,2,2,0,1,3,1,2,1,0,0,3,2,0,0,0,1,1,2,0, - 3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,2,3,1,2,1,3,3, - 3,3,3,3,2,1,2,2,2,3,0,1,3,1,1,3,0,0,0,1,1,1,0,1, - 3,3,3,3,3,3,3,3,3,0,3,2,3,3,3,3,3,3,1,3,3,3,3, - 3,3,3,3,2,3,0,2,1,2,0,0,3,3,0,3,3,0,0,1,0,0,2,2, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3, - 3,2,3,3,3,3,3,3,0,3,1,2,2,2,0,2,0,1,1,0,0,1,0,0, - 3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,3,2,2,3,3,2, - 3,2,3,3,2,2,3,2,1,3,0,2,3,3,1,0,0,0,0,0,0,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,0, - 1,3,2,0,3,3,2,3,2,1,2,1,0,0,3,1,3,1,1,0,0,0,0,0, - 3,3,3,3,3,3,3,3,2,2,3,2,3,3,2,3,3,3,0,1,2,3,1, - 3,2,3,3,1,3,2,0,2,2,1,0,3,3,1,2,0,0,0,2,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3, - 3,2,3,3,2,3,1,3,3,3,0,3,3,0,0,3,0,0,0,3,2,1,1,1, - 3,3,3,3,3,3,2,3,3,2,3,2,3,1,3,3,3,2,1,2,3,3,1, - 3,0,3,3,1,0,2,0,0,1,1,0,1,0,1,1,0,2,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,2,1,3,1,0,1,3,3, - 2,2,3,2,1,3,1,0,3,1,0,2,2,1,0,1,0,0,0,2,0,1,0,3, - 0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0, - 0,3,0,0,2,3,0,3,3,0,1,0,0,0,0,2,1,1,0,0,2,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,1,0, - 3,3,1,3,2,3,1,1,1,2,0,2,0,1,0,1,0,0,0,0,0,2,1,0, - 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,1,3,3,2,3,1,0,2,3,3,2,0,0,2,2,0,1,0,0,0,1,0,0, - 3,3,3,3,3,3,3,2,3,2,3,3,3,1,3,3,2,3,3,2,3,3,3, - 3,3,3,2,1,2,0,1,3,2,1,1,1,1,2,1,0,0,0,1,1,2,1,0, - 3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,1, - 0,3,0,2,2,3,1,3,1,0,3,1,0,0,1,3,0,0,0,0,1,0,0,0, - 1,0,1,3,0,3,3,3,3,3,3,3,1,2,3,3,3,0,1,3,3,0,0, - 0,2,0,0,0,3,0,2,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0, - 2,1,0,3,1,3,3,3,3,3,3,3,0,3,3,3,2,0,3,3,2,0,0, - 0,3,0,0,2,3,0,3,1,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0, - 3,3,3,3,3,1,2,3,3,1,3,2,3,0,0,2,1,2,0,0,2,0,0, - 3,0,0,1,0,3,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0, - 1,2,2,3,1,3,2,3,2,2,3,3,1,2,3,3,3,0,1,3,2,0,0, - 0,2,0,0,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,3,0,3,3,3,3,3,3,3,0,3,3,3,3,0,0,3,3,0,0, - 0,3,0,0,1,3,1,3,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,3,3,3,3,3,2,2,1,2,3,3,3,2,2,0,3,3,0,0,2,3,0, - 2,0,3,2,2,1,1,0,1,3,0,2,0,1,0,0,0,0,0,0,0,2,0,0, - 3,3,3,3,3,1,3,3,3,3,3,2,3,3,0,1,1,2,0,0,1,0,0, - 3,2,1,1,1,3,0,0,2,1,3,0,0,0,0,1,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,2,3,3,0,3,2,3,2,1,1,1,3,2,1,1,3,0, - 3,0,2,2,2,1,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,2,3,1,3,0,2,2,3,0,3,1,0,2,0,0,3,0,0, - 3,0,2,1,0,3,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0, - 3,3,1,3,0,2,3,1,3,2,0,3,3,0,1,1,1,0,1,0,3,0,0, - 0,1,0,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,1,3,1,3,0,0,3,3,0,3,3,2,1,0,1,2,3,0,0, - 0,1,0,0,3,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,0,0,1,3,1,1,1,0,1,1,2,0,2,0,1,1,1,1,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 3,3,3,3,3,3,3,2,1,0,2,1,1,1,2,2,2,0,2,0,0,2,0, - 1,0,0,0,1,0,2,0,0,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,1,0,3,3,2,2,3,3,1,0,1,3,2,0,0,2,3,3,0,0, - 0,0,0,0,0,1,0,3,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,2,2,3,0,0,1,1,0,0,2,1,1,0,0,3,1,1,0, - 0,3,0,0,1,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,0,1,3,2,2,1,1,3,3,1,1,1,0,0,0,1,1,0, - 1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0, - 3,3,0,0,0,0,2,1,1,0,0,2,3,0,0,0,1,2,0,0,0,0,0, - 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,2,1,0,0,0,1,2,0,0,0,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,1,1,1,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,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, - 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, - 1,1,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,2,1,2,1,1,0,0,2,0,0,0,1,2,1,0,0,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,2,0,1,2,0,1,1,0,0,1,1,0,0,1,1,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3, + 0,1,2,3,0,3,3,3,3,3,0,1,0,0,3,3,2,3,2,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3, + 0,2,1,3,2,3,3,3,3,3,3,0,0,0,3,3,3,3,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 0,2,0,3,3,3,3,3,3,3,3,2,0,0,3,3,3,3,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,0,0,3,0,1,2,1,2,0,1,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1, + 0,3,3,3,1,3,3,3,3,2,3,3,0,0,2,3,0,1,2,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3, + 3,3,3,3,3,3,3,3,3,0,3,3,0,3,2,2,1,2,1,0,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3, + 2,3,3,2,3,0,2,0,3,2,3,2,1,3,3,0,0,1,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,3,3,3, + 3,3,3,2,3,2,2,0,2,1,0,3,0,0,2,0,2,2,0,1,1,1, + 3,3,3,3,3,3,3,3,1,3,3,2,2,3,3,3,3,1,3,3,3,3, + 3,3,3,3,3,3,2,2,0,1,0,1,3,3,0,0,3,3,0,1,1,2, + 3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,2,3,2,1,3, + 3,3,3,2,3,1,1,2,2,2,0,3,1,3,2,0,0,3,0,1,2,1, + 3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3, + 3,3,3,3,3,3,3,2,3,0,0,3,2,1,2,0,0,2,1,0,0,0, + 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,2,2,3,1,3,3, + 2,3,3,2,3,1,0,1,2,1,0,2,3,3,2,1,1,1,1,0,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,2,3,3,2,3,0,3,0,3,3,0,0,3,0,3,2,1, + 3,3,3,3,3,3,3,3,2,3,3,2,2,3,3,3,3,1,3,0,1,3, + 2,3,3,2,3,3,1,0,1,1,1,1,3,3,1,0,0,2,0,2,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3, + 0,1,2,3,1,3,3,3,2,2,2,1,0,0,1,3,3,1,1,0,1,0, + 3,3,3,3,3,3,3,3,2,3,3,2,2,2,3,3,3,1,2,2,1,3, + 1,3,3,0,3,0,0,0,1,0,1,1,0,0,0,0,0,1,2,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,0,1,3,0,2,3, + 3,2,3,1,3,3,1,0,1,3,0,1,1,2,2,0,0,2,2,2,1,3, + 3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,3,3,3,1, + 0,3,1,3,3,3,1,1,2,2,1,2,1,0,1,0,0,1,0,0,1,0, + 0,0,1,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0, + 0,1,0,3,0,3,2,3,1,3,1,0,0,0,0,1,1,2,0,0,0,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,2,3,3, + 3,3,2,1,3,3,2,0,0,2,3,3,2,0,2,0,1,2,0,0,1,0, + 3,3,3,3,3,3,3,2,3,3,3,3,3,1,3,3,2,3,3,2,3,3, + 3,3,3,3,3,2,0,1,0,2,0,1,0,2,2,0,0,1,0,1,1,0, + 3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,1, + 0,0,0,3,2,3,2,3,2,1,3,0,0,0,2,1,0,3,1,0,0,0, + 0,0,0,3,0,3,3,3,3,3,3,3,3,2,1,3,2,1,0,3,3,0, + 0,0,0,2,0,3,0,2,0,1,0,0,0,0,0,0,0,2,0,0,0,0, + 2,2,0,3,2,3,3,3,3,3,3,3,3,3,0,3,3,3,0,3,3,0, + 0,0,0,3,0,3,1,3,1,2,3,0,0,0,0,0,0,2,0,0,0,0, + 2,1,2,3,1,3,2,3,2,3,3,3,3,1,1,3,3,1,0,3,1,0, + 0,0,0,3,0,2,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,2,3,3,0,3,3,2,0,0,3,2,0,0,1,0,2,0, + 0,3,1,0,2,3,0,0,0,2,0,1,0,0,0,0,0,2,0,0,0,1, + 2,1,0,3,0,3,3,3,3,3,3,3,3,3,0,3,3,0,0,3,3,0, + 0,0,0,3,0,3,1,3,1,1,3,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,2,3,3,3,3,3,2,0,3,3,1,2,0,2,0,0,0, + 0,3,1,1,0,3,0,0,0,2,3,0,0,0,0,0,0,1,0,0,1,0, + 3,3,3,3,3,3,3,2,2,3,3,3,2,1,3,2,3,2,3,1,2,3, + 0,1,3,0,2,0,2,0,1,0,0,3,0,1,2,0,0,0,1,0,1,0, + 3,3,3,3,3,1,3,0,0,3,2,1,3,0,3,2,1,1,3,0,3,0, + 0,3,2,0,1,3,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0, + 3,3,3,2,3,3,3,3,0,2,3,2,1,1,3,2,1,1,3,1,1,3, + 1,3,3,0,1,1,2,0,3,0,0,2,0,0,0,1,0,0,0,0,0,0, + 3,3,0,3,0,2,3,2,3,3,0,3,0,1,3,1,1,1,0,0,3,0, + 0,0,0,1,3,2,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0, + 3,3,0,1,2,3,1,1,0,2,1,1,2,0,2,1,1,0,1,0,1,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,3,1,3,1,3,0,1,2,3,3,3,0,1,1,2,0,3,3,0, + 0,0,0,0,0,0,3,1,2,0,1,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,2,1,2,3,3,0,1,1,1,2,0,0,1,0,0,0,3,0,0, + 0,0,0,3,0,0,1,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,3,3,2,3,2,3,1,3,0,0,2,0,2,0,3,3,0, + 0,0,0,1,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,2,3,2,2,2,0,1,2,1,1,0,2,0,2,0,0,0,0,2, + 0,1,1,0,0,0,1,0,2,0,0,0,1,0,3,0,0,0,0,0,0,0, + 2,3,3,2,3,0,0,3,1,1,1,1,1,3,2,2,1,0,0,0,0,1, + 0,2,0,0,0,0,0,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0, + 3,3,0,1,0,0,1,1,0,0,0,1,0,0,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,0,0,0,0,1,0,0,1,0,2,1,0,3,0,1,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,2,0,2,0,1,0,1,0,0,0,0,0,3,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,2,0, + 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,2,0,0,0,0, + 0,0,0,1,0,2,2,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0, }; @@ -275,8 +268,8 @@ const SequenceModel Iso_8859_2SlovakModel = { Iso_8859_2_CharToOrderMap, SlovakLangModel, - 47, - (float)0.9990063226390729, + 44, + (float)0.9990021826437321, PR_TRUE, "ISO-8859-2", "sk" @@ -286,8 +279,8 @@ const SequenceModel Windows_1250SlovakModel = { Windows_1250_CharToOrderMap, SlovakLangModel, - 47, - (float)0.9990063226390729, + 44, + (float)0.9990021826437321, PR_TRUE, "WINDOWS-1250", "sk" @@ -297,8 +290,8 @@ const SequenceModel Ibm852SlovakModel = { Ibm852_CharToOrderMap, SlovakLangModel, - 47, - (float)0.9990063226390729, + 44, + (float)0.9990021826437321, PR_TRUE, "IBM852", "sk" @@ -308,8 +301,8 @@ const SequenceModel Mac_CentraleuropeSlovakModel = { Mac_Centraleurope_CharToOrderMap, SlovakLangModel, - 47, - (float)0.9990063226390729, + 44, + (float)0.9990021826437321, PR_TRUE, "MAC-CENTRALEUROPE", "sk" @@ -319,11 +312,11 @@ const LanguageModel SlovakModel = { "sk", Unicode_CharOrder, - 94, + 88, SlovakLangModel, - 47, - 5, - (float)0.37747196381525266, + 44, + 6, + (float)0.4358970456502265, 27, - (float)0.034743885663659047, + (float)0.03317555638659628, }; diff --git a/src/LangModels/LangSloveneModel.cpp b/src/LangModels/LangSloveneModel.cpp index 0cdefd3..4bb6f93 100644 --- a/src/LangModels/LangSloveneModel.cpp +++ b/src/LangModels/LangSloveneModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:20:53.180941 + * On: 2022-12-15 00:26:24.801420 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_2_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 4X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 6X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 4X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 6X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 64,SYM, 41,SYM, 63, 52,SYM,SYM, 22, 49, 60, 65,SYM, 23, 45, /* AX */ - SYM, 66,SYM, 41,SYM, 63, 52,SYM,SYM, 22, 49, 60, 67,SYM, 23, 45, /* BX */ - 5, 1, 51, 46, 32, 68, 31, 33, 19, 2, 62, 48, 34, 3, 54, 69, /* CX */ - 38, 42, 47, 0, 0, 50, 30,SYM, 35, 70, 15, 71, 28, 37, 72, 39, /* DX */ - 5, 1, 51, 46, 32, 73, 31, 33, 19, 2, 62, 48, 34, 3, 54, 74, /* EX */ - 38, 42, 47, 0, 0, 50, 30,SYM, 35, 75, 15, 76, 28, 37, 77,SYM, /* FX */ + SYM, 54,SYM, 47,SYM, 55, 51,SYM,SYM, 22, 45, 56, 57,SYM, 23, 58, /* AX */ + SYM, 59,SYM, 47,SYM, 60, 51,SYM,SYM, 22, 45, 61, 62,SYM, 23, 63, /* BX */ + 5, 1, 40, 64, 32, 65, 29, 39, 20, 2, 46, 43, 35, 3, 66, 67, /* CX */ + 33, 68, 48, 0, 0, 52, 31,SYM, 37, 69, 15, 50, 28, 36, 70, 34, /* DX */ + 5, 1, 40, 71, 32, 72, 29, 39, 20, 2, 46, 43, 35, 3, 73, 74, /* EX */ + 33, 75, 48, 0, 0, 52, 31,SYM, 37, 76, 15, 50, 28, 36, 77,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_16_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 4X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 6X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 4X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 6X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 78, 79, 41,SYM,SYM, 22,SYM, 22,SYM, 80,SYM, 81,SYM, 82, 45, /* AX */ - SYM,SYM, 19, 41, 23,SYM,SYM,SYM, 23, 19, 83,SYM, 84, 85, 86, 45, /* BX */ - 36, 1, 51, 46, 32, 31, 57, 33, 2, 2, 2, 48, 3, 3, 54, 58, /* CX */ - 38, 42, 0, 0, 0, 50, 30, 52, 87, 15, 15, 88, 28, 62, 44, 39, /* DX */ - 36, 1, 51, 46, 32, 31, 57, 33, 2, 2, 2, 48, 3, 3, 54, 58, /* EX */ - 38, 42, 0, 0, 0, 50, 30, 52, 89, 15, 15, 90, 28, 62, 44, 91, /* FX */ + SYM, 78, 79, 47,SYM,SYM, 22,SYM, 22,SYM, 53,SYM, 80,SYM, 81, 82, /* AX */ + SYM,SYM, 20, 47, 23,SYM,SYM,SYM, 23, 20, 53,SYM, 83, 84, 85, 86, /* BX */ + 38, 1, 40, 87, 32, 29, 88, 39, 2, 2, 2, 43, 3, 3, 89, 90, /* CX */ + 33, 91, 0, 0, 0, 52, 31, 51, 50, 15, 15, 92, 28, 46, 93, 34, /* DX */ + 38, 1, 40, 94, 32, 29, 95, 39, 2, 2, 2, 43, 3, 3, 96, 97, /* EX */ + 33, 98, 0, 0, 0, 52, 31, 51, 50, 15, 15, 99, 28, 46,100,101, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1250_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 4X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 6X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM, 52, 60, 23, 92, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM, 52, 60, 23, 93, /* 9X */ - SYM,SYM,SYM, 41,SYM, 94,SYM,SYM,SYM,SYM, 49,SYM,SYM,SYM,SYM, 45, /* AX */ - SYM,SYM,SYM, 41,SYM,SYM,SYM,SYM,SYM, 95, 49,SYM, 63,SYM, 63, 45, /* BX */ - 5, 1, 51, 46, 32, 96, 31, 33, 19, 2, 62, 48, 34, 3, 54, 97, /* CX */ - 38, 42, 47, 0, 0, 50, 30,SYM, 35, 98, 15, 99, 28, 37,100, 39, /* DX */ - 5, 1, 51, 46, 32,101, 31, 33, 19, 2, 62, 48, 34, 3, 54,102, /* EX */ - 38, 42, 47, 0, 0, 50, 30,SYM, 35,103, 15,104, 28, 37,105,SYM, /* FX */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 4X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 6X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,ILL,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM, 51,102, 23,103, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 22,SYM, 51,104, 23,105, /* 9X */ + SYM,SYM,SYM, 47,SYM,106,SYM,SYM,SYM,SYM, 45,SYM,SYM,SYM,SYM,107, /* AX */ + SYM,SYM,SYM, 47,SYM,SYM,SYM,SYM,SYM,108, 45,SYM,109,SYM,110,111, /* BX */ + 5, 1, 40,112, 32,113, 29, 39, 20, 2, 46, 43, 35, 3,114,115, /* CX */ + 33,116, 48, 0, 0, 52, 31,SYM, 37,117, 15, 50, 28, 36,118, 34, /* DX */ + 5, 1, 40,119, 32,120, 29, 39, 20, 2, 46, 43, 35, 3,121,122, /* EX */ + 33,123, 48, 0, 0, 52, 31,SYM, 37,124, 15, 50, 28, 36,125,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Ibm852_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 4X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 6X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 33, 28, 2, 51, 32,106, 31, 33, 41, 48, 50, 50, 54,107, 32, 31, /* 8X */ - 2,108,109, 0, 30, 63, 63, 52, 52, 30, 28, 60, 60, 41,SYM, 19, /* 9X */ - 1, 3, 0, 15,110,111, 23, 23, 62, 62,SYM,112, 19, 49,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 1, 51, 34, 49,SYM,SYM,SYM,SYM, 45, 45,SYM, /* BX */ - SYM,SYM,SYM,SYM,SYM,SYM, 46, 46,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ - 38, 38,113, 48,114, 47, 3, 54, 34,SYM,SYM,SYM,SYM,115,116,SYM, /* DX */ - 0, 39, 0, 42, 42, 47, 22, 22, 5, 15, 5,117, 37, 37,118,SYM, /* EX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,119, 35, 35,SYM,SYM, /* FX */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 4X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 6X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 39, 28, 2, 40, 32,126, 29, 39, 47, 43, 52, 52,127,128, 32, 29, /* 8X */ + 2,129,130, 0, 31,131,132, 51, 51, 31, 28,133,134, 47,SYM, 20, /* 9X */ + 1, 3, 0, 15,135,136, 23, 23, 46, 46,SYM,137, 20, 45,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,SYM, 1, 40, 35, 45,SYM,SYM,SYM,SYM,138,139,SYM, /* BX */ + SYM,SYM,SYM,SYM,SYM,SYM,140,141,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* CX */ + 33, 33,142, 43,143, 48, 3,144, 35,SYM,SYM,SYM,SYM,145,146,SYM, /* DX */ + 0, 34, 0,147,148, 48, 22, 22, 5, 15, 5, 50, 36, 36,149,SYM, /* EX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 50, 37, 37,SYM,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,18 +152,18 @@ static const unsigned char Mac_Centraleurope_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 4X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 17, 21, 12, 2, 24, 18, 20, 3, 10, 11, 7, 14, 4, 0, /* 6X */ - 13, 29, 5, 6, 8, 15, 9, 25, 27, 26, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 32, 43, 43, 2,120, 30, 28, 1,121, 19, 32, 19, 31, 31, 2,122, /* 8X */ - 123,124, 3,125, 56, 56, 55, 0, 55, 0, 30,126, 15, 34, 34, 28, /* 9X */ - SYM,SYM, 62,SYM,SYM,SYM,SYM, 39,SYM,SYM,SYM, 62,SYM,SYM,127,128, /* AX */ - 129, 59,SYM,SYM, 59,130,SYM,SYM, 41,131,132, 63, 63,133,134, 53, /* BX */ - 53, 42,SYM,SYM, 42, 47,SYM,SYM,SYM,SYM,SYM, 47, 50,135, 50, 40, /* CX */ - SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 40, 5, 5, 35,SYM,SYM, 35,136, /* DX */ - 137, 22,SYM,SYM, 22, 52, 52, 1, 60, 60, 3, 23, 23, 61, 0, 0, /* EX */ - 61,138, 15,139,140,141,142,143, 37, 37,144, 45, 41, 45,145,SYM, /* FX */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 4X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 17, 21, 12, 2, 24, 18, 19, 3, 10, 11, 7, 14, 4, 0, /* 6X */ + 13, 30, 5, 6, 8, 15, 9, 26, 27, 25, 16,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 32, 42, 42, 2,150, 31, 28, 1,151, 20, 32, 20, 29, 29, 2,152, /* 8X */ + 153,154, 3,155, 41, 41,156, 0,157, 0, 31,158, 15, 35, 35, 28, /* 9X */ + SYM,SYM, 46,SYM,SYM,SYM,SYM, 34,SYM,SYM,SYM, 46,SYM,SYM,159,160, /* AX */ + 161, 49,SYM,SYM, 49,162,SYM,SYM, 47,163,164,165,166,167,168,169, /* BX */ + 170,171,SYM,SYM,172, 48,SYM,SYM,SYM,SYM,SYM, 48, 52,173, 52, 44, /* CX */ + SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 44, 5, 5, 37,SYM,SYM, 37,174, /* DX */ + 175, 22,SYM,SYM, 22, 51, 51, 1,176,177, 3, 23, 23,178, 0, 0, /* EX */ + 179,180, 15,181, 50, 50,182,183, 36, 36,184,185, 47,186,187,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -171,13 +171,13 @@ static const int Unicode_Char_size = 81; static const unsigned int Unicode_CharOrder[] = { 32, 0, 65, 1, 66, 17, 67, 21, 68, 12, 69, 2, 70, 24, 71, 18, - 72, 20, 73, 3, 74, 10, 75, 11, 76, 7, 77, 14, 78, 4, 79, 0, + 72, 19, 73, 3, 74, 10, 75, 11, 76, 7, 77, 14, 78, 4, 79, 0, 80, 13, 82, 5, 83, 6, 84, 8, 85, 15, 86, 9, 90, 16, 97, 1, - 98, 17, 99, 21, 100, 12, 101, 2, 102, 24, 103, 18, 104, 20, 105, 3, + 98, 17, 99, 21, 100, 12, 101, 2, 102, 24, 103, 18, 104, 19, 105, 3, 106, 10, 107, 11, 108, 7, 109, 14, 110, 4, 111, 0, 112, 13, 114, 5, 115, 6, 116, 8, 117, 15, 118, 9, 122, 16, 225, 1, 232, 2, 233, 2, 234, 2, 236, 3, 237, 3, 242, 0, 243, 0, 244, 0, 249, 15, 250, 15, - 268, 19, 269, 19, 341, 5, 352, 22, 353, 22, 381, 23, 382, 23, 513, 1, + 268, 20, 269, 20, 341, 5, 352, 22, 353, 22, 381, 23, 382, 23, 513, 1, 515, 1, 517, 2, 519, 2, 521, 3, 523, 3, 525, 0, 527, 0, 531, 5, 533, 15, 535, 15, 601, 2, 768, 2, 769, 0, 783, 2, 785, 0,7865, 2, 7885, 0, @@ -185,40 +185,40 @@ static const unsigned int Unicode_CharOrder[] = /* Model Table: - * Total considered sequences: 912 / 625 - * - Positive sequences: first 420 (0.9950318187902709) - * - Probable sequences: next 144 (564-420) (0.003969660901056105) - * - Neutral sequences: last 61 (0.0009985203086729788) - * - Negative sequences: -287 (off-ratio) + * Total considered sequences: 892 / 625 + * - Positive sequences: first 425 (0.9950503733060554) + * - Probable sequences: next 141 (566-425) (0.003955359577353934) + * - Neutral sequences: last 59 (0.0009942671165906747) + * - Negative sequences: -267 (off-ratio) * Negative sequences: TODO */ static const PRUint8 SloveneLangModel[] = { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,2,3,2,3,3,3,2,1,3,3,3,3,3,2,3,3,2,3, + 3,3,3,3,3,3,3,2,3,2,3,3,3,3,2,3,3,3,3,2,3,3,3,2,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,3,1,1,3,3,0,0,2, - 3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,2,2,3, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,2,2,2,0,3,2,0,0,1, - 3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,3,3,3,3,2,3,3,2,1, - 3,3,3,3,3,2,3,2,2,3,1,3,3,3,3,3,2,3,1,1,2,3,3,0,1, - 3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,0,1,0,1,2,3,2,0,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,2, - 3,3,3,3,3,3,3,3,3,1,2,2,2,2,1,3,1,1,0,2,3,2,2,0,1, - 3,3,3,3,3,3,3,3,1,2,2,2,2,3,2,3,1,3,1,3,1,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,2,3,1,3,3,3,2,3,1,3,1,3,0,0,3, + 3,3,3,3,3,1,3,3,3,2,3,3,3,3,3,3,2,3,3,2,2,3,2,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,2,3,1,2,0,0,2, + 3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,3,3,3,2,3,3,3,2,1, + 3,3,3,3,3,1,3,2,2,3,1,3,3,3,3,3,2,3,1,2,1,3,3,0,1, + 3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,1,1,2,2,1,3,2,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,2, + 3,3,3,3,3,3,3,3,3,1,2,2,2,2,1,3,1,1,0,2,2,2,2,0,1, + 3,3,3,3,3,3,3,3,1,2,1,2,2,3,2,3,1,3,1,1,3,3,3,1,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,2,3,3,2,3,2,3,1,0, - 3,3,3,3,3,3,3,3,2,2,3,2,3,1,3,3,2,2,1,3,2,2,2,1,0, - 3,3,3,3,3,3,2,3,2,2,1,1,1,1,2,3,1,1,2,0,2,0,0,0,1, - 3,3,3,3,3,3,1,3,0,2,3,3,1,1,1,3,0,2,0,1,0,1,0,0,1, - 3,3,3,3,3,3,2,2,3,1,1,3,1,1,2,3,1,1,1,2,1,1,0,0,1, - 3,3,3,3,2,2,2,3,3,2,1,3,2,1,1,3,1,1,1,0,3,3,0,0,1, - 3,3,3,3,3,2,0,3,3,3,3,3,1,3,2,2,0,1,0,3,0,1,0,0,0, - 3,3,3,3,3,2,1,1,0,1,3,2,0,0,1,3,0,3,2,0,0,0,0,0,0, - 3,3,3,3,1,3,3,3,2,0,2,1,1,1,1,3,0,1,1,0,1,0,1,0,2, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,2,2,3,0,0, + 3,3,3,3,3,3,3,3,2,2,3,2,3,0,3,3,2,2,1,1,3,2,2,1,1, + 3,3,3,3,3,3,2,3,1,2,1,1,2,1,2,3,1,1,2,2,0,1,0,0,1, + 3,3,3,3,3,3,2,3,3,1,1,3,2,1,2,3,1,1,1,1,2,1,0,0,1, + 3,3,3,3,3,3,1,3,1,2,3,3,0,1,1,3,0,2,0,0,0,1,0,0,0, + 3,3,3,3,2,2,1,3,2,2,1,3,1,1,3,3,1,1,1,3,1,2,0,0,1, + 3,3,3,3,3,1,0,3,3,2,3,3,1,3,3,2,0,0,0,0,3,1,0,0,0, + 3,3,3,3,3,2,1,1,0,1,3,2,1,0,2,3,0,3,2,0,1,1,0,0,0, + 3,3,3,3,2,3,3,3,2,1,2,1,1,1,1,3,0,1,1,0,0,1,1,0,2, }; @@ -227,7 +227,7 @@ const SequenceModel Iso_8859_2SloveneModel = Iso_8859_2_CharToOrderMap, SloveneLangModel, 25, - (float)0.999001479691327, + (float)0.9990057328834093, PR_FALSE, "ISO-8859-2", "sl" @@ -238,7 +238,7 @@ const SequenceModel Iso_8859_16SloveneModel = Iso_8859_16_CharToOrderMap, SloveneLangModel, 25, - (float)0.999001479691327, + (float)0.9990057328834093, PR_FALSE, "ISO-8859-16", "sl" @@ -249,7 +249,7 @@ const SequenceModel Windows_1250SloveneModel = Windows_1250_CharToOrderMap, SloveneLangModel, 25, - (float)0.999001479691327, + (float)0.9990057328834093, PR_FALSE, "WINDOWS-1250", "sl" @@ -260,7 +260,7 @@ const SequenceModel Ibm852SloveneModel = Ibm852_CharToOrderMap, SloveneLangModel, 25, - (float)0.999001479691327, + (float)0.9990057328834093, PR_FALSE, "IBM852", "sl" @@ -271,7 +271,7 @@ const SequenceModel Mac_CentraleuropeSloveneModel = Mac_Centraleurope_CharToOrderMap, SloveneLangModel, 25, - (float)0.999001479691327, + (float)0.9990057328834093, PR_FALSE, "MAC-CENTRALEUROPE", "sl" @@ -284,8 +284,8 @@ const LanguageModel SloveneModel = 81, SloveneLangModel, 25, - 2, - (float)0.3170327842079661, + 3, + (float)0.402267667868288, 19, - (float)0.03483655056229821, + (float)0.03413859894544281, }; diff --git a/src/LangModels/LangSpanishModel.cpp b/src/LangModels/LangSpanishModel.cpp index 61d2dd6..5a789bb 100644 --- a/src/LangModels/LangSpanishModel.cpp +++ b/src/LangModels/LangSpanishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:18:05.348804 + * On: 2022-12-15 00:20:04.575395 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 4X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 6X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 4X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 6X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 46,SYM, 46,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 59, 52,SYM,SYM, 60,SYM,SYM,SYM, 53, 53, 58,SYM, /* BX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* CX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 61, 62, 56, /* DX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* EX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 63, 64, 58, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM, 50, 60,SYM,SYM, 50,SYM,SYM,SYM, 55, 55, 61,SYM, /* BX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* CX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 43, /* DX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* EX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 62, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 4X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 6X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 4X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 6X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* CX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 65, 66, 56, /* DX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* EX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 67, 68, 58, /* FX */ + SYM,SYM,SYM,SYM,SYM, 63,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* CX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 43, /* DX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* EX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 64, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 4X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 25, 30, 7, 12, 3, 2, /* 6X */ - 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 23,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 69,SYM,SYM,SYM,SYM,SYM,SYM, 46,SYM, 53,ILL, 70,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 46,SYM, 53,ILL, 71, 58, /* 9X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 4X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 14, 9, 8, 0, 18, 15, 20, 5, 24, 30, 7, 12, 3, 2, /* 6X */ + 13, 22, 6, 4, 10, 11, 16, 31, 27, 17, 25,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 65,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 55,ILL, 50,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 39,SYM, 55,ILL, 50, 66, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* CX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 72, 73, 56, /* DX */ - 43, 24, 40, 38, 41, 51, 39, 33, 35, 26, 45, 37, 57, 21, 34, 50, /* EX */ - 55, 28, 54, 19, 47, 42, 36,SYM, 44, 49, 29, 48, 32, 74, 75, 58, /* FX */ + SYM,SYM,SYM,SYM,SYM, 67,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* CX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 43, /* DX */ + 36, 23, 35, 41, 40, 46, 33, 38, 37, 26, 49, 48, 53, 21, 42, 47, /* EX */ + 51, 28, 44, 19, 57, 54, 34,SYM, 59, 52, 29, 56, 32, 45, 58, 68, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -129,60 +129,60 @@ static const int Unicode_Char_size = 66; static const unsigned int Unicode_CharOrder[] = { 65, 1, 66, 14, 67, 9, 68, 8, 69, 0, 70, 18, 71, 15, 72, 20, - 73, 5, 74, 25, 75, 30, 76, 7, 77, 12, 78, 3, 79, 2, 80, 13, + 73, 5, 74, 24, 75, 30, 76, 7, 77, 12, 78, 3, 79, 2, 80, 13, 81, 22, 82, 6, 83, 4, 84, 10, 85, 11, 86, 16, 87, 31, 88, 27, - 89, 17, 90, 23, 97, 1, 98, 14, 99, 9, 100, 8, 101, 0,102, 18, - 103, 15, 104, 20, 105, 5, 106, 25, 107, 30, 108, 7, 109, 12,110, 3, + 89, 17, 90, 25, 97, 1, 98, 14, 99, 9, 100, 8, 101, 0,102, 18, + 103, 15, 104, 20, 105, 5, 106, 24, 107, 30, 108, 7, 109, 12,110, 3, 111, 2, 112, 13, 113, 22, 114, 6, 115, 4, 116, 10, 117, 11,118, 16, - 119, 31, 120, 27, 121, 17, 122, 23, 193, 24, 201, 26, 205, 21,209, 28, - 211, 19, 218, 29, 220, 32, 225, 24, 233, 26, 237, 21, 241, 28,243, 19, + 119, 31, 120, 27, 121, 17, 122, 25, 193, 23, 201, 26, 205, 21,209, 28, + 211, 19, 218, 29, 220, 32, 225, 23, 233, 26, 237, 21, 241, 28,243, 19, 250, 29, 252, 32, }; /* Model Table: - * Total considered sequences: 1131 / 1089 - * - Positive sequences: first 468 (0.9950191343195147) - * - Probable sequences: next 177 (645-468) (0.0039894116732021034) - * - Neutral sequences: last 444 (0.0009914540072831768) - * - Negative sequences: -42 (off-ratio) + * Total considered sequences: 1139 / 1089 + * - Positive sequences: first 446 (0.9950161077973593) + * - Probable sequences: next 174 (620-446) (0.0039865210967695575) + * - Neutral sequences: last 469 (0.0009973711058711698) + * - Negative sequences: -50 (off-ratio) * Negative sequences: TODO */ static const PRUint8 SpanishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,3,3,2,2,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,3,3,3,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,2,3,1,3,2,0,2,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,3,3,3,3,2,3,3,3,3,3,3,1,0,3,3,1,0, - 3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,1,3,1,3,1,0,2,3,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,3,3,3,3,3,3,3,1,3,2,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,2,0,2,3,2,1, - 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,3,1,0,2,2,1,1, - 3,3,3,2,2,3,3,2,2,2,2,3,3,1,1,2,2,2,1,3,2,3,2,1,3,2,3,1,0,1,1,2,1, - 3,3,3,3,2,3,3,3,2,3,3,3,2,1,1,1,1,2,1,3,3,3,2,1,3,1,3,1,0,2,3,1,0, - 3,3,3,2,3,3,3,3,1,3,3,3,3,2,3,1,2,2,1,3,3,3,0,3,3,1,3,2,0,3,1,2,1, - 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,2,3,2,3,2,3,3,3,3,0,2,2,0, - 3,3,3,3,3,3,2,2,1,2,1,3,3,3,3,1,1,2,1,3,2,3,1,1,3,0,3,1,0,3,1,1,1, - 3,3,3,2,3,3,3,3,1,3,3,3,2,3,1,1,1,1,1,3,3,3,1,1,3,1,3,1,0,3,1,1,0, - 3,3,3,3,3,3,3,3,2,2,3,3,2,2,2,1,2,2,1,3,1,3,1,1,3,3,3,1,0,2,1,1,1, - 3,3,3,3,2,3,3,3,2,1,2,3,2,2,1,2,1,2,1,3,3,3,1,1,2,1,3,1,0,3,1,1,3, - 3,3,3,1,1,3,2,1,1,1,1,3,0,0,1,0,1,1,0,3,1,3,0,0,2,0,3,1,0,0,1,0,0, - 3,3,3,2,3,3,2,2,2,2,2,3,2,2,2,1,1,2,1,3,1,0,1,1,3,0,1,0,0,1,1,1,0, - 3,3,3,1,1,3,3,3,1,1,2,3,2,1,1,2,0,1,2,2,1,3,0,0,2,1,2,0,0,3,1,1,1, - 1,1,1,3,3,1,3,3,3,3,3,0,3,3,2,3,3,1,2,0,0,0,1,1,0,1,0,3,1,0,1,1,0, - 3,3,3,3,2,3,3,2,1,1,3,3,2,1,1,1,1,2,1,2,1,3,1,0,2,1,2,0,0,2,1,1,1, - 3,3,3,3,3,0,3,2,3,3,3,0,3,2,2,3,1,1,3,0,0,0,2,2,0,2,0,0,2,0,1,0,0, - 1,2,1,0,1,2,0,1,1,0,1,3,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,1,3,1,1,1,3,2,3,2,1,1,2,0,1,1,3,2,1,3,2,3,1,1,0,0,2,2,1,1, - 1,0,0,3,3,2,3,3,2,3,3,2,3,3,3,3,3,1,3,0,2,0,2,2,0,2,0,2,1,0,0,0,0, - 3,3,3,1,1,3,1,1,1,1,1,3,1,1,1,1,0,0,0,3,0,2,0,0,2,1,3,0,0,1,1,0,1, - 1,3,1,3,3,2,3,3,3,3,3,2,2,3,2,3,2,1,2,0,0,0,1,2,0,2,0,3,0,0,1,0,0, - 3,3,3,0,1,3,2,1,1,3,3,3,1,3,1,1,3,1,2,1,2,2,1,0,1,0,1,3,0,0,0,1,0, - 2,3,3,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,3,0,0,1,0,2,0,0,0,0,0,0, - 1,3,0,3,3,0,2,3,1,3,3,0,3,1,3,1,0,1,1,0,1,0,0,2,0,1,0,1,1,0,0,0,0, - 3,3,3,1,2,3,2,2,1,2,1,3,3,1,1,1,1,2,0,1,2,2,0,1,1,1,1,0,0,2,1,1,1, - 3,3,3,2,2,3,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,0,1,1,1,0,0,0,0,1,2,1, - 3,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,1,2,0,1,0,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,2,2,0, + 3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,3,3,2,2,3,3,3,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,3,1,3,3,2,3,2,0,3,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,3,2,3,3,2,3,3,3,3,3,3,1,0,3,2,1,1, + 3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,1,2,3,0,0,2,3,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,1,3,3,3,3,3,3,3,1,3,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,1,0,2,3,1,1, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,2,2,3,2,0,2,2,1,1, + 3,3,3,2,2,3,3,2,1,1,2,3,3,1,1,2,2,2,2,3,2,3,2,3,2,1,3,1,1,2,1,2,1, + 3,3,3,3,2,3,3,3,2,3,3,3,2,1,1,1,2,2,1,3,3,3,1,3,1,1,3,1,0,2,3,1,1, + 3,3,3,2,3,3,3,3,1,3,3,3,2,2,3,1,2,3,1,3,3,3,1,3,1,2,3,1,0,3,1,2,1, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,2,3,0,2,1,0, + 3,3,3,3,2,3,1,1,1,2,1,3,3,3,3,1,1,2,1,3,1,3,1,3,1,1,3,0,0,3,1,1,1, + 3,3,3,2,3,3,3,3,2,3,3,3,1,3,1,1,1,1,1,3,3,3,1,3,0,1,3,0,0,3,1,0,1, + 3,3,3,3,3,3,3,3,2,2,3,3,1,1,2,1,2,2,2,3,1,3,0,3,3,1,3,0,0,2,1,1,1, + 3,3,3,3,2,3,3,3,2,1,2,3,3,1,1,2,1,2,1,3,3,3,0,2,1,1,3,0,0,3,1,1,3, + 3,3,3,1,1,3,2,2,2,1,1,3,1,0,1,1,1,1,1,3,1,3,0,2,0,0,3,1,0,0,0,0,0, + 3,3,3,2,2,2,2,3,1,2,2,3,2,1,2,1,1,1,0,3,1,0,0,1,1,1,1,1,0,1,1,1,0, + 3,3,3,1,2,3,3,3,1,2,2,3,1,1,1,1,1,1,2,2,1,3,0,2,1,1,2,0,0,2,1,1,1, + 1,0,0,3,3,1,3,3,3,2,3,0,3,3,2,3,3,0,2,0,0,0,1,0,1,1,0,2,1,0,1,0,0, + 3,3,3,2,2,3,3,2,1,1,2,3,2,1,2,1,1,2,1,2,1,2,0,2,0,1,2,1,0,2,2,1,1, + 2,3,3,3,3,0,3,3,3,3,3,1,3,2,2,3,2,0,3,1,1,0,2,0,1,2,0,1,1,0,1,0,0, + 0,1,0,0,1,1,1,1,1,0,1,3,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1, + 1,1,0,3,3,2,3,3,2,3,3,2,3,3,3,3,2,1,3,0,1,0,2,0,2,2,0,3,1,0,1,0,0, + 3,3,3,1,1,3,1,0,1,0,1,3,1,1,1,0,1,1,1,3,1,1,0,1,1,0,3,1,0,2,1,0,1, + 3,3,3,2,1,3,1,1,1,3,2,3,2,1,1,2,1,1,1,3,1,0,3,3,0,2,1,0,0,2,1,1,0, + 1,3,1,3,3,2,3,3,2,3,3,1,2,3,2,3,2,1,2,0,0,0,1,0,2,1,0,3,0,0,1,0,0, + 2,3,2,0,1,3,1,2,1,3,3,2,1,3,1,0,3,1,1,1,2,1,1,2,1,0,1,3,0,0,0,1,0, + 3,3,3,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,2,0,1,0,0,1,0,0,0,0,0,0, + 1,3,1,3,3,0,2,3,1,3,2,0,3,2,3,0,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0, + 3,3,3,2,2,3,2,2,1,2,1,2,3,1,1,1,1,2,1,1,2,1,0,1,1,0,1,0,0,1,2,1,0, + 3,3,2,1,1,3,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,1,1,1, + 3,0,0,1,1,2,1,1,0,1,1,0,0,0,1,0,1,0,0,0,1,2,0,0,0,1,1,0,0,0,1,0,0, }; @@ -191,7 +191,7 @@ const SequenceModel Iso_8859_15SpanishModel = Iso_8859_15_CharToOrderMap, SpanishLangModel, 33, - (float)0.9990085459927168, + (float)0.9990026288941288, PR_TRUE, "ISO-8859-15", "es" @@ -202,7 +202,7 @@ const SequenceModel Iso_8859_1SpanishModel = Iso_8859_1_CharToOrderMap, SpanishLangModel, 33, - (float)0.9990085459927168, + (float)0.9990026288941288, PR_TRUE, "ISO-8859-1", "es" @@ -213,7 +213,7 @@ const SequenceModel Windows_1252SpanishModel = Windows_1252_CharToOrderMap, SpanishLangModel, 33, - (float)0.9990085459927168, + (float)0.9990026288941288, PR_TRUE, "WINDOWS-1252", "es" @@ -227,7 +227,7 @@ const LanguageModel SpanishModel = SpanishLangModel, 33, 4, - (float)0.39884249341527656, + (float)0.4006610130808832, 20, - (float)0.0335206321334504, + (float)0.03251280941750342, }; diff --git a/src/LangModels/LangSwedishModel.cpp b/src/LangModels/LangSwedishModel.cpp index 68a36d0..f8188f5 100644 --- a/src/LangModels/LangSwedishModel.cpp +++ b/src/LangModels/LangSwedishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:21:28.823388 + * On: 2022-12-15 00:20:31.413578 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_1_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 4X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 6X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 4X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 6X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 34, 33, 53, 54, 15, 20, 37, 41, 39, 29, 55, 56, 57, 38, 58, 59, /* CX */ - 60, 61, 62, 35, 42, 45, 22,SYM, 32, 63, 47, 64, 40, 46, 65, 66, /* DX */ - 34, 33, 67, 68, 15, 20, 37, 41, 39, 29, 69, 70, 71, 38, 72, 73, /* EX */ - 74, 75, 76, 35, 42, 45, 22,SYM, 32, 77, 47, 78, 40, 46, 79, 80, /* FX */ + SYM,SYM,SYM,SYM,SYM, 66,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 67, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43, 68, 32, 45, 69, /* CX */ + 42, 44, 70, 33, 38, 59, 22,SYM, 39, 71, 40, 72, 34, 56, 50, 54, /* DX */ + 73, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43, 74, 32, 45, 75, /* EX */ + 42, 44, 76, 33, 38, 59, 22,SYM, 39, 77, 40, 78, 34, 56, 50, 79, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,18 +89,18 @@ static const unsigned char Iso_8859_4_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 4X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 6X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 4X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 6X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 81, 82, 83,SYM, 84, 85,SYM,SYM, 44, 50, 86, 87,SYM, 51,SYM, /* AX */ - SYM, 88,SYM, 89,SYM, 90, 91,SYM,SYM, 44, 50, 92, 93, 94, 51, 95, /* BX */ - 30, 33, 96, 97, 15, 20, 37, 98, 48, 29, 99,100,101, 38,102, 36, /* CX */ - 103,104, 31,105, 42, 45, 22,SYM, 32,106, 47,107, 40,108, 43,109, /* DX */ - 30, 33,110,111, 15, 20, 37,112, 48, 29,113,114,115, 38,116, 36, /* EX */ - 117,118, 31,119, 42, 45, 22,SYM, 32,120, 47,121, 40,122, 43,SYM, /* FX */ + SYM, 80, 81, 82,SYM, 83, 65,SYM,SYM, 53, 48, 84, 85,SYM, 86,SYM, /* AX */ + SYM, 87,SYM, 88,SYM, 89, 65,SYM,SYM, 53, 48, 90, 91, 58, 92, 58, /* BX */ + 46, 30, 49, 31, 18, 21, 35, 93, 57, 28, 63, 43, 94, 32, 45, 51, /* CX */ + 95, 64, 37, 96, 38, 59, 22,SYM, 39, 97, 40, 98, 34, 99, 55, 54, /* DX */ + 46, 30, 49, 31, 18, 21, 35,100, 57, 28, 63, 43,101, 32, 45, 51, /* EX */ + 102, 64, 37,103, 38, 59, 22,SYM, 39,104, 40,105, 34,106, 55,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -110,18 +110,18 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 4X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 6X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 4X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 6X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,123,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 34, 33,124,125, 15, 20, 37, 41, 39, 29,126,127,128, 38,129,130, /* CX */ - 131,132,133, 35, 42, 45, 22,SYM, 32,134, 47,135, 40,136,137,138, /* DX */ - 34, 33,139,140, 15, 20, 37, 41, 39, 29,141,142,143, 38,144,145, /* EX */ - 146,147,148, 35, 42, 45, 22,SYM, 32,149, 47,150, 40,151,152,153, /* FX */ + SYM,SYM,SYM,SYM,SYM,107,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 108, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,109, 32, 45,110, /* CX */ + 61, 44,111, 33, 38, 59, 22,SYM, 39,112, 40,113, 34,114, 60, 54, /* DX */ + 115, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,116, 32, 45,117, /* EX */ + 61, 44,118, 33, 38, 59, 22,SYM, 39,119, 40,120, 34,121, 60,122, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -131,18 +131,18 @@ static const unsigned char Iso_8859_15_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 4X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 6X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 4X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 6X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM, 44,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM, 51,154,SYM,SYM, 51,SYM,SYM,SYM,155,156,157,SYM, /* BX */ - 34, 33,158,159, 15, 20, 37, 41, 39, 29,160,161,162, 38,163,164, /* CX */ - 165,166,167, 35, 42, 45, 22,SYM, 32,168, 47,169, 40, 46,170,171, /* DX */ - 34, 33,172,173, 15, 20, 37, 41, 39, 29,174,175,176, 38,177,178, /* EX */ - 179,180,181, 35, 42, 45, 22,SYM, 32,182, 47,183, 40, 46,184,185, /* FX */ + SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 53,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ + SYM,SYM,SYM,SYM,123,124,SYM,SYM,125,SYM,SYM,SYM, 62, 62,126,SYM, /* BX */ + 127, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,128, 32, 45,129, /* CX */ + 42, 44,130, 33, 38, 59, 22,SYM, 39,131, 40,132, 34, 56, 50, 54, /* DX */ + 133, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,134, 32, 45,135, /* EX */ + 42, 44,136, 33, 38, 59, 22,SYM, 39,137, 40,138, 34, 56, 50,139, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -152,74 +152,75 @@ static const unsigned char Windows_1252_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 4X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 1, 21, 19, 9, 0, 14, 12, 18, 6, 24, 11, 7, 10, 3, 8, /* 6X */ - 17, 28, 2, 5, 4, 16, 13, 26, 25, 23, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM, 49,SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM,186,ILL, 51,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 44,SYM,187,ILL, 51,188, /* 9X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 4X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 1, 20, 19, 9, 0, 15, 12, 17, 6, 23, 11, 7, 10, 3, 8, /* 6X */ + 16, 29, 2, 5, 4, 14, 13, 26, 25, 24, 27,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM, 52,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 62,ILL,140,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, 53,SYM, 62,ILL,141,142, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM,189,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 34, 33,190,191, 15, 20, 37, 41, 39, 29,192,193,194, 38,195,196, /* CX */ - 197,198,199, 35, 42, 45, 22,SYM, 32,200, 47,201, 40, 46,202,203, /* DX */ - 34, 33,204,205, 15, 20, 37, 41, 39, 29,206,207,208, 38,209,210, /* EX */ - 211,212,213, 35, 42, 45, 22,SYM, 32,214, 47,215, 40, 46,216,217, /* FX */ + SYM,SYM,SYM,SYM,SYM,143,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 144, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,145, 32, 45,146, /* CX */ + 42, 44,147, 33, 38, 59, 22,SYM, 39,148, 40,149, 34, 56, 50, 54, /* DX */ + 150, 30, 49, 31, 18, 21, 35, 36, 41, 28, 47, 43,151, 32, 45,152, /* EX */ + 42, 44,153, 33, 38, 59, 22,SYM, 39,154, 40,155, 34, 56, 50,156, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 58; +static const int Unicode_Char_size = 60; static const unsigned int Unicode_CharOrder[] = { - 65, 1, 66, 21, 67, 19, 68, 9, 69, 0, 70, 14, 71, 12, 72, 18, - 73, 6, 74, 24, 75, 11, 76, 7, 77, 10, 78, 3, 79, 8, 80, 17, - 81, 28, 82, 2, 83, 5, 84, 4, 85, 16, 86, 13, 87, 26, 88, 25, - 89, 23, 90, 27, 97, 1, 98, 21, 99, 19, 100, 9, 101, 0,102, 14, - 103, 12, 104, 18, 105, 6, 106, 24, 107, 11, 108, 7, 109, 10,110, 3, - 111, 8, 112, 17, 113, 28, 114, 2, 115, 5, 116, 4, 117, 16,118, 13, - 119, 26, 120, 25, 121, 23, 122, 27, 196, 15, 197, 20, 214, 22,228, 15, - 229, 20, 246, 22, + 65, 1, 66, 20, 67, 19, 68, 9, 69, 0, 70, 15, 71, 12, 72, 17, + 73, 6, 74, 23, 75, 11, 76, 7, 77, 10, 78, 3, 79, 8, 80, 16, + 81, 29, 82, 2, 83, 5, 84, 4, 85, 14, 86, 13, 87, 26, 88, 25, + 89, 24, 90, 27, 97, 1, 98, 20, 99, 19, 100, 9, 101, 0,102, 15, + 103, 12, 104, 17, 105, 6, 106, 23, 107, 11, 108, 7, 109, 10,110, 3, + 111, 8, 112, 16, 113, 29, 114, 2, 115, 5, 116, 4, 117, 14,118, 13, + 119, 26, 120, 25, 121, 24, 122, 27, 196, 18, 197, 21, 201, 28,214, 22, + 228, 18, 229, 21, 233, 28, 246, 22, }; /* Model Table: - * Total considered sequences: 886 / 841 - * - Positive sequences: first 482 (0.9950244403710493) - * - Probable sequences: next 121 (603-482) (0.003978503582736215) - * - Neutral sequences: last 238 (0.0009970560462144729) - * - Negative sequences: -45 (off-ratio) + * Total considered sequences: 1083 / 900 + * - Positive sequences: first 502 (0.9950552774288863) + * - Probable sequences: next 173 (675-502) (0.003945597397539302) + * - Neutral sequences: last 225 (0.0009991251735743667) + * - Negative sequences: -183 (off-ratio) * Negative sequences: TODO */ static const PRUint8 SwedishLangModel[] = { - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,1,3,3,3,3,2,2, - 3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,1,3,2,3,3,3,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,0,1,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,3,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,1,2,2,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,1,2,3,3,3,2,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,1,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,0,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,1,3,2,3,3,2,0,2,1,0, - 3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,3,1,3,3,3,3,3,2,1,1,1, - 3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,1,2,1,3,2,2,2,2,1,0,0,0, - 3,3,3,2,3,3,3,3,3,1,1,1,1,1,3,3,3,1,0,0,3,0,3,3,3,0,0,0,0, - 0,1,3,3,3,3,1,3,0,3,3,3,3,3,3,0,1,3,0,3,0,3,0,0,0,3,0,0,0, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,0,2,3,1,3,0,3,1,1,1,2,1,1,1, - 3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,2,3,3,3,1,3,2,1,2,2,0,0,1,0, - 3,3,3,2,3,2,3,2,3,2,2,1,1,1,1,3,3,1,1,1,3,2,3,3,3,0,2,1,1, - 3,3,3,2,3,2,3,3,3,2,2,3,1,0,1,0,3,1,3,3,0,1,0,3,0,0,0,2,1, - 3,1,3,3,3,3,1,3,1,3,2,3,3,3,2,0,0,2,1,0,1,2,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,2,0,1,2,1,1,3,3,2,2,2,3,3,3,3,3,0,1,0,0, - 2,3,3,3,3,3,2,3,1,3,3,3,3,3,2,1,0,3,1,2,0,1,1,0,3,0,0,0,0, - 2,3,3,3,3,3,2,3,3,3,3,3,3,2,3,0,2,3,2,3,0,3,1,0,1,2,1,1,0, - 3,3,1,2,2,2,3,3,3,3,1,2,0,1,2,3,3,0,0,0,0,1,3,2,0,0,0,1,0, - 3,3,1,2,3,1,3,2,3,0,1,1,0,1,2,0,3,3,1,1,0,1,0,1,1,1,0,0,0, - 3,3,1,2,1,2,3,1,2,0,0,1,0,0,1,1,1,0,2,1,0,1,0,1,0,0,2,1,0, - 3,3,0,2,1,1,2,0,3,1,1,1,0,0,0,0,1,0,2,1,0,1,0,1,1,0,1,1,0, - 0,0,1,0,0,0,2,1,0,0,0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,2,3,3,3,3,3,0,2, + 3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,1,1,3,3,3,3,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,2,3,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,1,3,2,3,1,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,1,2,3,3,3,3,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,1,2,2,2,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,1,0,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,0,2,3,3,2,3,1,1,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,1,3,3,3,3,3,0,1,1,2,1, + 3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,2,2,3,1,2,3,2,2,1,0,0,0,1,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,2,0,3,3,1,2,2,2,3,1,2,1,1, + 3,3,3,2,3,2,3,3,3,1,1,1,2,1,3,3,1,0,3,1,1,3,3,3,3,0,1,0,1,0, + 3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,2,2,3,1,2,2,0,1,1,2,0, + 3,3,3,3,3,2,3,3,3,1,2,1,1,1,3,1,1,1,3,1,2,3,3,3,3,0,2,1,2,1, + 1,1,3,3,3,3,1,3,0,3,3,3,3,3,1,3,3,1,0,3,3,0,0,0,0,3,0,0,0,0, + 3,3,3,2,3,2,3,3,3,2,2,3,1,1,3,1,1,3,0,3,1,0,0,1,3,1,0,2,2,2, + 3,3,3,3,3,3,3,3,3,2,2,2,1,2,3,2,2,2,3,2,3,3,3,3,3,0,1,1,1,1, + 3,1,3,3,3,3,2,3,1,3,2,3,3,3,0,2,2,2,0,0,2,0,0,0,0,0,0,0,0,0, + 2,3,3,3,3,3,2,3,1,3,3,3,3,3,0,2,3,1,2,2,2,1,1,3,0,0,1,1,0,0, + 3,3,1,3,2,3,2,3,3,3,1,2,2,2,3,2,1,1,3,0,2,0,3,0,1,1,0,1,1,0, + 2,3,3,3,3,3,1,3,3,3,3,3,3,2,2,3,3,2,1,3,2,1,1,1,1,2,1,1,0,0, + 3,3,1,2,3,1,3,3,3,1,1,2,1,1,2,2,3,2,0,2,1,0,0,2,1,0,0,0,0,0, + 3,3,2,2,2,2,3,1,3,1,1,2,0,0,1,1,0,2,1,1,1,0,0,1,1,1,2,1,0,0, + 3,3,1,1,2,1,3,1,3,0,1,2,1,0,2,0,1,2,1,1,1,0,0,1,2,0,1,2,1,0, + 3,1,2,3,2,3,1,2,1,1,2,0,2,1,1,2,2,0,0,2,1,0,0,1,0,1,0,1,0,0, + 0,1,0,0,0,0,1,1,1,1,0,0,1,1,3,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0, }; @@ -227,8 +228,8 @@ const SequenceModel Iso_8859_1SwedishModel = { Iso_8859_1_CharToOrderMap, SwedishLangModel, - 29, - (float)0.9990029439537855, + 30, + (float)0.9990008748264256, PR_TRUE, "ISO-8859-1", "sv" @@ -238,8 +239,8 @@ const SequenceModel Iso_8859_4SwedishModel = { Iso_8859_4_CharToOrderMap, SwedishLangModel, - 29, - (float)0.9990029439537855, + 30, + (float)0.9990008748264256, PR_TRUE, "ISO-8859-4", "sv" @@ -249,8 +250,8 @@ const SequenceModel Iso_8859_9SwedishModel = { Iso_8859_9_CharToOrderMap, SwedishLangModel, - 29, - (float)0.9990029439537855, + 30, + (float)0.9990008748264256, PR_TRUE, "ISO-8859-9", "sv" @@ -260,8 +261,8 @@ const SequenceModel Iso_8859_15SwedishModel = { Iso_8859_15_CharToOrderMap, SwedishLangModel, - 29, - (float)0.9990029439537855, + 30, + (float)0.9990008748264256, PR_TRUE, "ISO-8859-15", "sv" @@ -271,8 +272,8 @@ const SequenceModel Windows_1252SwedishModel = { Windows_1252_CharToOrderMap, SwedishLangModel, - 29, - (float)0.9990029439537855, + 30, + (float)0.9990008748264256, PR_TRUE, "WINDOWS-1252", "sv" @@ -282,11 +283,11 @@ const LanguageModel SwedishModel = { "sv", Unicode_CharOrder, - 58, + 60, SwedishLangModel, - 29, - 4, - (float)0.36974030827358995, + 30, + 5, + (float)0.4423731214253967, 21, - (float)0.030157896788186284, + (float)0.03064427111061184, }; diff --git a/src/LangModels/LangThaiModel.cpp b/src/LangModels/LangThaiModel.cpp index 5c2eb6c..fb409b2 100644 --- a/src/LangModels/LangThaiModel.cpp +++ b/src/LangModels/LangThaiModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:24:15.382361 + * On: 2022-12-15 00:23:34.345129 **/ /* Character Mapping Table: @@ -68,17 +68,17 @@ static const unsigned char Iso_8859_11_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, /* 4X */ - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110, /* 6X */ - 111,112,113,114,115,116,117,118,119,120,121,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, /* 4X */ + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 95, 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109, /* 6X */ + 110,111,112,113,114,115,116,117,118,119,120,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 3, 30, 68, 21,122, 62, 6, 26, 56, 27, 41, 65, 48, 57, 54, /* AX */ - 49, 59, 58, 47, 19, 17, 45, 18, 44, 1, 23, 20, 46, 53, 28, 50, /* BX */ - 42, 9, 11, 2, 52, 12,123, 13, 32, 43, 16, 25, 60, 4, 51, 64, /* CX */ - 22,SYM, 0, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,ILL,ILL,ILL,SYM, /* DX */ - 5, 24, 34, 29, 36, 69, 55,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,124, /* EX */ + SYM, 3, 29, 67, 22,121, 63, 6, 26, 55, 28, 40, 65, 46, 58, 57, /* AX */ + 48, 59, 56, 47, 20, 18, 45, 16, 42, 1, 24, 19, 49, 51, 30, 50, /* BX */ + 44, 9, 11, 2, 52, 12,122, 15, 34, 43, 17, 25, 61, 4, 53, 64, /* CX */ + 21,SYM, 0, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,ILL,ILL,ILL,SYM, /* DX */ + 5, 23, 35, 27, 36,123, 54,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,124, /* EX */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,125,126,ILL,ILL,ILL,ILL, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -95,180 +95,178 @@ static const unsigned char Tis_620_CharToOrderMap[] = 168,169,170,171,172,173,174,175,176,177,178,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - ILL, 3, 30, 68, 21,179, 62, 6, 26, 56, 27, 41, 65, 48, 57, 54, /* AX */ - 49, 59, 58, 47, 19, 17, 45, 18, 44, 1, 23, 20, 46, 53, 28, 50, /* BX */ - 42, 9, 11, 2, 52, 12,180, 13, 32, 43, 16, 25, 60, 4, 51, 64, /* CX */ - 22,SYM, 0, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,ILL,ILL,ILL,SYM, /* DX */ - 5, 24, 34, 29, 36, 69, 55,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,181, /* EX */ - NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,182,183,ILL,ILL,ILL,ILL, /* FX */ + ILL, 3, 29, 67, 22,179, 63, 6, 26, 55, 28, 40, 65, 46, 58, 57, /* AX */ + 48, 59, 56, 47, 20, 18, 45, 16, 42, 1, 24, 19, 49, 51, 30, 50, /* BX */ + 44, 9, 11, 2, 52, 12,180, 15, 34, 43, 17, 25, 61, 4, 53, 64, /* CX */ + 21,SYM, 0, 39,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,ILL,ILL,ILL,SYM, /* DX */ + 5, 23, 35, 27, 36,181, 54,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,182, /* EX */ + NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,183,184,ILL,ILL,ILL,ILL, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 70; +static const int Unicode_Char_size = 69; static const unsigned int Unicode_CharOrder[] = { - 3585, 3, 3586, 30, 3587, 68, 3588, 21, 3590, 62, 3591, 6, 3592, 26,3593, 56, - 3594, 27, 3595, 41, 3596, 65, 3597, 48, 3598, 57, 3599, 54, 3600, 49,3601, 59, - 3602, 58, 3603, 47, 3604, 19, 3605, 17, 3606, 45, 3607, 18, 3608, 44,3609, 1, - 3610, 23, 3611, 20, 3612, 46, 3613, 53, 3614, 28, 3615, 50, 3616, 42,3617, 9, - 3618, 11, 3619, 2, 3620, 52, 3621, 12, 3623, 13, 3624, 32, 3625, 43,3626, 16, - 3627, 25, 3628, 60, 3629, 4, 3630, 51, 3631, 64, 3632, 22, 3633, 8,3634, 0, - 3635, 39, 3636, 15, 3637, 10, 3638, 40, 3639, 35, 3640, 33, 3641, 37,3642, 66, - 3648, 5, 3649, 24, 3650, 34, 3651, 29, 3652, 36, 3653, 69, 3654, 55,3655, 38, - 3656, 7, 3657, 14, 3658, 63, 3659, 61, 3660, 31, 3661, 67, + 3585, 3, 3586, 29, 3587, 67, 3588, 22, 3590, 63, 3591, 6, 3592, 26,3593, 55, + 3594, 28, 3595, 40, 3596, 65, 3597, 46, 3598, 58, 3599, 57, 3600, 48,3601, 59, + 3602, 56, 3603, 47, 3604, 20, 3605, 18, 3606, 45, 3607, 16, 3608, 42,3609, 1, + 3610, 24, 3611, 19, 3612, 49, 3613, 51, 3614, 30, 3615, 50, 3616, 44,3617, 9, + 3618, 11, 3619, 2, 3620, 52, 3621, 12, 3623, 15, 3624, 34, 3625, 43,3626, 17, + 3627, 25, 3628, 61, 3629, 4, 3630, 53, 3631, 64, 3632, 21, 3633, 8,3634, 0, + 3635, 39, 3636, 14, 3637, 10, 3638, 41, 3639, 33, 3640, 32, 3641, 38,3642, 66, + 3648, 5, 3649, 23, 3650, 35, 3651, 27, 3652, 36, 3654, 54, 3655, 37,3656, 7, + 3657, 13, 3658, 60, 3659, 62, 3660, 31, 3661, 68, }; /* Model Table: - * Total considered sequences: 2476 / 4900 - * - Positive sequences: first 1642 (0.9950041430825017) - * - Probable sequences: next 370 (2012-1642) (0.003999342904699388) - * - Neutral sequences: last 2888 (0.000996514012798877) - * - Negative sequences: 2424 (off-ratio) + * Total considered sequences: 2458 / 4761 + * - Positive sequences: first 1634 (0.9950175671509007) + * - Probable sequences: next 347 (1981-1634) (0.003986731842203994) + * - Neutral sequences: last 2780 (0.0009957010068952776) + * - Negative sequences: 2303 (off-ratio) * Negative sequences: TODO */ static const PRUint8 ThaiLangModel[] = { - 0,3,3,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,0,3, - 0,3,0,0,0,0,3,3,3,3,3,3,3,3,1,3,3,1,3,2,0,2,1,1,1,2,0,2,0,2,1,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,1,3,3,3,0,2,3,3,3,3,3,1,3,2,0,0,0,0,0,1,0,1,2,0,0,1,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,3,3,1,3,0,0,3,0,1,0,0,0,2,1,2,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,2,3,0,0,0,1,1,3,0,1,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3, - 3,3,3,3,3,1,3,3,0,3,3,3,0,2,1,3,3,1,2,0,1,1,0,0,0,0,1,2,2,0,0,0,0,0,0, - 0,3,3,3,3,1,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,0,3,3,3,3,0,3,0,3,0,0, - 0,0,0,0,0,0,3,3,2,3,3,3,1,0,0,3,3,0,2,1,0,3,0,0,0,0,0,2,0,0,1,0,0,0,0, - 3,3,3,3,3,3,3,3,2,3,2,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,2,3, - 2,3,2,1,3,0,3,3,2,3,3,3,0,3,2,3,3,2,3,0,3,2,0,0,0,0,0,1,0,1,1,0,0,0,0, - 3,3,3,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,0,3,0,3, - 0,3,0,0,3,0,3,3,0,1,3,3,0,2,1,3,3,0,3,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,3,2,3,1,0,3,3,0,3,0,3,3,3,3,0,3,3,3,3,3,3,0,3,0,0,3,3,3,0,2,0,3,0,0, - 0,0,0,0,0,0,2,0,1,3,0,0,3,3,3,3,0,0,0,1,0,0,1,3,1,0,3,1,2,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,0,2,3,3,3,2,3,3,3,2,1,3,2,2,3,0,2,3,0,0,0,0,0,1,0,0,0,1,0,0,0, - 0,3,3,3,3,3,2,3,0,3,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,3,0,3, - 0,3,0,0,0,0,3,3,0,2,3,3,0,2,2,3,2,3,3,0,0,1,0,0,1,3,2,0,1,1,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,1,3,3,3,0,3,3,3,2,3,1,3,3,1,3,0,2,2,0,0,0,0,0,2,0,0,1,2,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,2,0,2,2,3,0,1,2,3,3,0,2,0,0,1,2,1,1,0,0,1,1,2,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 1,3,3,3,0,1,3,3,0,0,3,3,3,3,0,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0, - 3,3,3,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,2,0,3, - 0,3,0,0,3,0,3,3,0,1,3,3,1,2,0,3,3,1,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,3,3,3,3,3,3,3,0,3,0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3, - 0,3,0,0,0,0,3,3,3,3,3,2,2,3,2,3,2,0,2,0,0,1,1,0,1,3,1,1,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3, - 3,3,3,1,3,3,3,3,0,3,3,2,0,0,0,2,2,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3, - 3,3,3,3,3,3,3,3,0,1,3,3,0,1,0,1,1,1,1,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0, - 3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,2,3,3,2,3,3,3,3,3,2,2,3,3,3,3,3,3,3, - 3,3,3,2,3,3,3,2,3,3,1,2,0,0,0,1,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,0,1,3,2,0,0,1,2,2,1,2,0,2,2,0,0,0,0,0,1,0,0,0,1,0,0,0, - 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,3,3,3,3,3,3,3, - 3,3,2,3,0,1,3,3,0,1,3,1,1,2,3,1,1,0,0,3,0,0,1,0,0,0,2,0,1,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3, - 3,3,3,2,3,1,3,2,0,2,2,2,3,0,0,1,1,1,2,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0, - 0,3,3,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,3,0,3, - 0,3,0,0,0,0,3,3,0,3,3,3,3,3,2,3,3,2,3,1,0,3,0,0,0,0,0,0,0,0,1,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3, - 3,3,3,3,3,1,3,3,0,3,3,3,0,3,1,3,3,0,3,2,1,2,0,0,0,0,1,0,0,0,0,0,0,0,0, - 0,3,3,3,3,1,2,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,0,3,3,3,3,0,3,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,3,1,0,0,3,3,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, - 3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,3,1,3,1,3,3,0,2,1,0,1,0,0,3,0,0,3,1,3,1, - 2,0,3,3,0,0,0,3,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3, - 3,3,3,3,3,3,3,2,1,1,3,2,1,1,0,2,2,0,2,0,0,3,0,0,0,0,3,0,2,1,0,0,1,0,0, - 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,1,3,3,2,2,2,3,0,3,3, - 3,3,3,3,2,1,1,1,2,1,1,1,1,3,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,2,1,3,1,3,0,2,2,1,2,2,0,2,0,3,2,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0, - 0,3,0,3,0,0,0,0,0,0,0,1,1,0,0,0,3,3,0,3,0,2,0,3,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,2,2,3,3,1,3,3,3,3,3,1,3,3,1,1,3,2,2,2,1,0,3,3,2,2,1,0,2,2,3,1,3,1, - 2,2,2,3,1,3,0,3,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,3,3,3,3,3,1,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,3,0,3, - 0,3,0,0,0,0,3,3,0,2,3,3,1,1,1,3,2,1,2,0,0,2,0,0,0,0,0,2,0,1,1,0,0,0,0, - 3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,2,3,3,0,3,3,3,3,3,3,3,3,3,1,3,3, - 0,3,3,0,0,3,2,2,3,0,2,2,0,1,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,3,3,3,3,3,0,3,0,3,3,3,3,0,3,3,3,3,3,3,1,3,3,3,3,3,2,2,3,3,2,0,3, - 0,2,0,0,0,0,3,3,3,3,2,3,3,3,0,2,1,0,1,1,0,1,2,3,1,1,1,1,2,0,0,0,0,0,0, - 0,3,3,3,3,0,1,0,0,3,0,3,3,2,0,0,3,3,3,3,3,3,0,3,0,3,3,3,3,0,2,0,2,0,0, - 0,0,0,0,0,0,3,3,0,3,0,1,1,1,0,3,3,0,1,0,0,2,0,1,0,0,0,3,0,0,1,0,0,0,0, - 0,3,1,0,3,0,1,3,0,3,0,2,0,0,3,0,0,0,0,3,0,1,0,3,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,1,0,0,0,0,0,0, - 0,3,3,3,3,0,1,0,0,3,0,1,3,3,0,0,3,3,3,3,3,3,0,3,0,3,1,2,3,0,3,0,0,0,0, - 0,0,0,0,0,0,3,0,0,1,1,1,0,1,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,3,3,2,3,3,3,0,3,0,2,3,3,3,0,3,3,3,3,3,2,0,3,3,3,3,3,2,3,3,0,2,0,3, - 0,3,0,0,0,0,3,1,0,1,1,1,1,3,1,2,2,0,1,2,0,1,0,0,0,0,2,0,1,0,0,0,0,0,0, - 0,3,0,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,2,3,2,3,0,3,2,1,3,2,2,1,1,0,0,0,0, - 0,3,0,0,0,0,0,0,0,0,3,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,3,3,3,3,3,3,0,0,3,0,3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,2,0,3, - 0,3,0,0,0,0,2,2,0,2,3,1,0,0,0,1,0,0,2,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,2,1,3,0,1,3,3,0,3,0,1,1,0,3,0,2,0,1,3,0,1,0,2,0,0,0,2,0,0,0,0,0,0,1, - 0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,2,2,2,2,3,2,0,1,1,2,2,1,3,0,3,3, - 3,2,3,3,0,3,2,0,0,1,0,1,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,3,0,2,0,0,0,3,0,2,0,0,1,0,3,2,1,3,1,0,3,0,0,0,0,0,2,3,0,0,2,0,0,0, - 0,0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,2,3,2,2,3,0,0,3,2,3,3,0,2,0,1,2,3,3,1,2,1,3,1,3,2,2,1,0,3,2,3,1,0,0, - 0,2,0,0,0,0,0,3,0,0,1,1,3,0,3,0,1,0,1,2,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,2,0,3,3,3,3,1,2,0,3,1,1,2,1,3,2,2,1,2,1,1,1,2,2,3,3,3,3,2, - 0,2,1,0,1,0,0,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,1,3,3,3,3,3,3,2,3,3,2,2,3,3,2,2,0,3,3,2,2,1,3,3,2,2,0,3,1, - 3,3,3,0,0,3,0,1,0,0,2,2,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,1,1,2,2,3,3,2,1,3,3,1,3,3,3,0,0,3,0,0,0,1,0,0,1,3,0,0,0,0,0,0,0, - 3,0,3,2,0,2,0,0,0,0,0,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,2,3,1,0,2,2,3,3,2,2,0,3,3,2,3,2,2,3,3,1,3,3,2,3,2,1,3,3,2,1,2, - 0,1,2,0,0,0,1,3,0,1,1,2,1,1,1,0,0,0,1,2,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, - 3,2,3,3,3,3,1,3,3,2,3,2,3,2,1,3,3,2,3,2,2,2,1,1,3,3,3,3,3,3,3,1,0,0,2, - 0,2,0,0,0,0,2,1,0,0,1,0,0,3,1,1,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,2,3,3,3,0,0,0,3,1,2,1,2,0,1,3,2,3,1,3,2,0,3,3,3,3,1,2,3,2,3,2,0,3, - 0,3,0,0,0,0,2,0,0,3,1,1,1,0,1,1,1,0,2,0,0,2,0,0,0,0,0,1,0,3,1,0,0,0,0, - 3,3,3,3,3,3,1,1,3,2,3,2,3,2,3,3,3,2,2,1,1,1,1,2,2,1,2,2,1,2,1,3,0,3,2, - 3,2,3,3,0,0,2,0,0,0,1,0,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,2,3,3,1,3,3,2,3,2,3,2,2,3,2,2,1,2,0,1,2,1,1,0,1,0,0,0,0,2,0,2,2, - 1,0,2,2,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0, - 0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,0,1,0,0,0,2,0,1,0,0,0,0,3,0,0, - 0,0,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, - 2,3,3,0,1,0,1,3,3,0,2,0,0,0,2,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 1,1,2,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, - 2,0,1,2,2,2,0,0,0,1,1,0,1,2,0,3,1,1,1,1,1,1,0,0,1,1,0,0,0,3,2,1,1,0,2, - 0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,1,2,2,0,0,0,2,0,0,1,1,0,0,0,0,2,0,1,0,0,0,1,1,1,0,0,2,2,0,0,0,0, - 0,2,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,1,1,1,0,0,1,1,3,1,3,2,3,2,2,3,0,0,0,0,0,0,1,3,0,0,0,0,3,0,0,0,0,3,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,3,1,1,1,0,0,0,0,3,0,1,0,0,0,1,0,1,0,0,0,0,1,1,3,0,0,1,0,1,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,3,0,0,0,0,0,0,1,0,0,1,0,0,0,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,1,0,1,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,1,1,0,1,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,1,0,0,3,1,2,0,0,1,0,2,0,2,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,1,1,0,1,1,0,3,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1, - 0,1,1,0,0,0,1,1,2,0,0,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,3,2,0,1,0,0,0,0,0,0,1,0,0,2,0,0,1,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0, + 3,3,3,0,0,0,3,0,3,3,3,3,3,3,1,3,3,3,1,3,1,2,0,2,0,1,0,2,0,2,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,0,3,3,3,0,3,3,3,3,3,3,3,2,0,1,0,0,0,0,0,1,1,1,1,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,0,2,0,2,1,0,0,0,1,0,0,3,1,0,0,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,2,2,2,0,3,3,0,3,0,2,2,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3, + 3,3,3,3,3,3,3,1,3,0,3,3,3,0,1,3,3,3,1,3,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0, + 0,3,3,3,3,0,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,0,3,0,3,3,3,0,3,3,3,0,0,0, + 3,0,0,0,0,0,3,0,3,2,3,3,0,1,0,3,3,2,0,3,0,3,1,1,0,0,0,0,0,0,0,2,0,0,0, + 3,3,3,3,3,3,3,3,2,3,2,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,3, + 3,3,3,0,1,2,3,0,3,2,3,3,3,0,2,3,3,3,2,3,3,2,0,0,0,0,0,0,0,1,0,1,0,0,0, + 3,3,3,3,3,3,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,0,0,0, + 3,3,3,0,0,3,3,0,2,0,3,3,2,0,1,3,2,3,1,2,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,3,2,3,0,0,3,3,0,3,0,3,3,3,0,3,3,3,3,3,3,0,3,0,3,0,3,1,3,1,3,0,0,0, + 3,0,0,0,0,0,2,0,3,1,0,0,3,3,3,0,3,1,0,0,0,0,3,0,1,0,2,0,3,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3, + 3,3,3,3,3,0,3,1,2,3,3,3,2,3,1,3,3,3,2,2,1,3,0,0,0,1,0,0,0,2,1,0,0,0,0, + 0,3,3,3,3,3,3,3,0,3,0,3,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0, + 3,3,3,0,0,0,3,0,2,1,3,3,2,0,3,3,3,3,2,2,0,1,0,0,0,1,1,3,2,1,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,3,3,2,3,3,3,0,3,3,3,2,2,3,2,3,1,2,2,2,0,0,0,0,0,0,0,1,1,1,2,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 2,3,3,3,3,3,3,3,1,0,3,2,2,0,1,3,3,2,0,2,0,1,0,1,2,0,1,0,0,0,2,0,0,0,0, + 3,3,3,3,3,3,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0, + 2,3,3,0,0,3,3,0,3,0,3,3,2,0,1,3,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,3,3,3,0,3,0,3,3,3,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0, + 3,3,3,0,0,0,3,0,3,3,3,3,3,2,2,2,3,2,0,2,0,0,1,0,1,0,2,2,3,1,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0, + 2,3,3,3,2,0,3,0,1,0,3,3,3,3,0,2,2,3,1,3,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0, + 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,3,2,3,3,3,3,3, + 3,3,2,3,3,3,3,3,3,3,1,0,0,0,0,2,1,1,3,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 1,3,3,1,3,3,3,3,3,0,3,3,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,2, + 3,3,3,3,3,3,3,3,2,0,3,3,1,0,0,2,2,1,1,1,0,0,0,0,0,0,2,0,2,0,1,0,1,0,0, + 3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,3,3,3,3,3,3,3,3, + 2,3,3,3,2,0,3,2,0,0,3,3,2,1,1,1,0,0,0,1,0,1,0,3,0,0,1,0,1,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 2,3,3,3,3,3,2,3,1,0,3,3,1,0,1,3,2,2,1,1,1,2,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,3,3,3,3,3,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0, + 3,3,3,0,0,0,3,0,3,1,3,3,3,1,1,3,3,3,2,3,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3, + 1,3,3,1,3,3,3,1,2,0,2,1,0,3,0,1,1,2,2,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 0,3,3,3,3,1,3,0,0,3,0,3,3,0,0,3,3,3,3,3,3,0,3,1,3,3,3,0,3,3,3,0,0,0, + 0,0,0,0,0,0,3,0,1,0,0,3,0,1,0,3,3,0,0,3,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2, + 3,3,3,3,3,2,3,1,3,0,3,3,3,0,1,3,2,3,1,3,1,2,0,2,1,0,1,0,1,1,0,0,0,0,0, + 3,3,3,3,3,0,2,3,3,3,1,3,3,3,3,3,0,1,3,3,2,3,1,0,1,1,0,0,0,0,3,3,3,1, + 1,0,0,3,3,0,0,0,0,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 1,3,3,3,3,3,3,3,0,0,1,2,1,1,0,1,2,1,0,1,0,3,0,0,0,0,2,0,2,0,2,0,0,0,0, + 0,3,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,3,3,0,3,0,2,0,3,3,3,0,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,2,3,2,3,3,2,3,3,3, + 1,3,2,3,3,3,1,0,2,0,1,0,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0, + 3,3,2,2,3,2,2,3,3,3,3,3,1,3,1,3,3,2,3,2,1,0,2,3,3,1,2,2,0,3,1,2,3,2, + 1,1,1,3,1,1,0,3,1,0,3,1,0,3,1,0,0,1,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,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,2,3,1,1,3,2,0,3,2,3,3,0,2,2,2,3,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0, + 0,3,3,3,3,3,0,0,0,3,0,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0, + 3,3,3,0,0,0,3,0,2,0,3,3,2,0,0,2,3,2,1,3,0,2,0,0,0,0,0,0,0,1,2,0,0,0,0, + 0,3,3,3,3,3,3,3,0,3,0,3,3,3,0,3,3,3,3,3,3,0,3,3,3,2,3,3,3,3,3,3,1,0, + 2,3,3,0,0,0,2,0,3,3,3,2,3,3,0,2,1,0,0,1,0,0,3,1,2,1,2,2,2,1,0,0,0,0,0, + 0,3,1,0,3,0,1,3,0,2,0,1,0,3,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,1,0,3,3,2,3,3,0,3,3,3,3,3,3,2,0,3,3,3,3,3,3,3,3,3,3,2,0, + 1,3,3,0,3,0,2,3,1,3,2,2,3,0,0,3,2,3,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,3,3,0,2,0,0,3,0,3,3,0,0,3,3,2,3,3,3,0,3,0,3,3,3,0,3,3,3,0,0,0, + 1,0,0,0,0,0,3,0,2,0,3,1,0,1,0,1,2,0,0,3,0,1,0,0,0,0,0,0,0,2,0,1,0,0,0, + 0,3,3,3,3,0,0,0,0,3,0,1,3,0,0,3,3,2,3,3,3,0,3,0,3,3,1,0,2,3,2,0,0,0, + 0,0,0,0,0,0,3,0,1,0,0,2,1,0,0,1,3,1,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,1,3,3,3,3,0,0,3,0,3,2,0,0,3,2,3,3,2,3,0,3,1,3,1,3,1,1,1,2,0,0,0, + 0,1,3,0,0,0,1,0,0,0,0,3,1,0,0,1,1,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,0,3,0,1,3,3,0,2,3,3,3,3,3,0,2,3,3,3,3,3,3,3,2,0,0,0, + 2,3,3,0,0,0,3,0,1,0,0,1,3,1,0,1,1,2,0,2,0,1,0,1,0,0,3,0,2,0,0,0,0,0,0, + 0,3,3,3,3,3,3,0,0,3,0,2,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0, + 2,3,3,0,0,0,2,0,2,0,2,2,1,0,0,2,2,3,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 3,3,2,2,3,3,3,3,3,3,3,2,3,3,3,2,1,2,3,2,2,3,3,2,2,0,1,1,0,1,1,3,3,3, + 0,3,2,3,3,1,2,3,3,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 0,2,0,3,1,1,3,3,0,2,0,0,1,3,0,0,0,1,0,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,2,3,0,3,3,3,3,0,0,3,2,3,2,1,2,1,1,1,2,1,1,1,2,1,2,1,3,3,0, + 3,1,2,0,0,1,0,0,0,0,3,0,1,1,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,2,3,0,0,3,3,3,3,0,0,2,1,3,3,3,2,2,3,2,3,0,2,2,3,1,2,1,3,1,0, + 1,2,3,0,0,0,1,0,0,0,3,1,0,3,3,1,0,1,0,1,1,0,0,2,3,0,0,0,0,0,0,0,0,0,0, + 3,0,2,1,2,0,0,0,3,1,2,1,0,0,3,0,3,2,0,0,0,1,3,1,0,0,0,0,1,0,3,2,1,0, + 0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,2,3,3,2,2,3,0,2,3,3,2,2,3,1,2,2,2,3,3, + 0,1,3,0,3,0,1,3,0,0,1,2,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,3,3,1,3,3,3,3,1,3,2,3,1,3,3,2,1,2,0,2,3,2,3,3,3,3,3,3,1,1,0, + 1,2,2,0,0,0,2,0,1,0,1,1,3,0,0,1,0,0,0,1,1,2,0,0,0,0,0,0,0,1,1,0,0,0,0, + 3,3,3,3,3,3,1,0,3,2,3,2,3,0,3,3,3,3,3,2,2,3,3,3,2,3,2,2,3,3,2,3,1,0, + 2,1,1,0,2,0,1,0,2,0,3,1,0,1,1,2,0,2,0,0,0,0,0,2,0,3,0,0,0,0,0,0,1,0,0, + 3,3,2,3,3,3,0,0,0,3,2,2,2,0,1,3,3,3,3,3,2,0,2,3,3,3,3,3,2,2,2,2,0,0, + 2,2,3,0,0,0,3,0,3,0,2,1,1,0,0,1,1,2,0,2,0,1,0,0,0,0,0,0,0,1,3,1,0,0,0, + 2,3,0,1,1,0,2,3,3,1,1,3,3,3,3,1,0,3,0,0,3,0,0,0,0,0,1,0,3,0,0,0,1,3, + 0,0,0,1,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,3,3,1,2,3,1,3,2,3,3,3,1,3,2,3,1,1,0,2,2,2,1,1,2,2,2,1,2,3,3, + 0,2,2,2,3,0,2,0,0,0,1,0,1,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,3,3,0,0,0,1,3,3,0,2,0,0,2,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,2,1, + 0,0,0,0,2,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,2,0,3,0,3,0,1,0,0,1,0,0,0,0,0,0,0,0, + 3,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, + 3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,2,1,2,1,1,1,1,0,1,1,0,1,0,0,0,0,2,3,1, + 0,2,0,2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0, + 0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,2,0,1,0,0,0,1,2,0,0,0,1,0,1,0,0,0,0, + 0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,1,1,2,1,0,1,0,3,0,3,1,3,2,2,2,0,0,0,0,0,1,0,0,3,0,0,0,0,0,3,0,2,1, + 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,0,1,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,1,0,1,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,1,0,0,2,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, - 0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,2,1,0,1,0,0,0,1,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1, + 1,0,1,2,1,2,0,0,0,1,1,1,1,0,3,2,1,0,2,1,0,0,1,1,1,1,0,3,1,2,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,1,3,1,2,2,0,0,0,0,3,0,0,0,0,0,1,1,0,0,1,0,0,1,2,3,0,1,0,1,0,0,0,0, + 0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,0,1,0,0,0,0,0,0,1,0,3,0,2,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,3,3,0,0,0,0,1,0,1,0,0,0,2,0,2,2,1,1,2,1,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 3,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,1,0,1,2,1,2,0,0,0,0,2,0,0,0,3,1,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,1,0,0,1,0,3,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,0,1,1,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0, + 0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,2,0,0,0,0,0,2,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; @@ -276,8 +274,8 @@ const SequenceModel Iso_8859_11ThaiModel = { Iso_8859_11_CharToOrderMap, ThaiLangModel, - 70, - (float)0.9990034859872011, + 69, + (float)0.9990042989931047, PR_FALSE, "ISO-8859-11", "th" @@ -287,8 +285,8 @@ const SequenceModel Tis_620ThaiModel = { Tis_620_CharToOrderMap, ThaiLangModel, - 70, - (float)0.9990034859872011, + 69, + (float)0.9990042989931047, PR_FALSE, "TIS-620", "th" @@ -298,11 +296,11 @@ const LanguageModel ThaiModel = { "th", Unicode_CharOrder, - 70, + 69, ThaiLangModel, - 70, - 2, - (float)0.0755324836590035, + 69, + 9, + (float)0.4296733852091798, 43, - (float)0.030663010422595123, + (float)0.031143367969453536, }; diff --git a/src/LangModels/LangTurkishModel.cpp b/src/LangModels/LangTurkishModel.cpp index c5568e3..e6ac9cc 100644 --- a/src/LangModels/LangTurkishModel.cpp +++ b/src/LangModels/LangTurkishModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:24:38.038544 + * On: 2022-12-15 00:26:41.275230 **/ /* Character Mapping Table: @@ -68,18 +68,18 @@ static const unsigned char Iso_8859_3_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 24, 8, 1, 27, 19, 20, 6, 28, 7, 4, 11, 3, 14, /* 4X */ - 22, 34, 5, 10, 9, 12, 18, 29, 33, 13, 21,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 24, 8, 1, 27, 19, 20, 2, 28, 7, 4, 11, 3, 14, /* 6X */ - 22, 34, 5, 10, 9, 12, 18, 29, 33, 13, 21,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 15, 23, 8, 1, 27, 19, 21, 6, 28, 7, 5, 11, 3, 14, /* 4X */ + 24, 34, 4, 10, 9, 12, 18, 29, 32, 13, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 23, 8, 1, 27, 19, 21, 2, 28, 7, 5, 11, 3, 14, /* 6X */ + 24, 34, 4, 10, 9, 12, 18, 29, 32, 13, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ - SYM, 55,SYM,SYM,SYM,ILL, 56,SYM,SYM, 2, 17, 25, 57,SYM,ILL, 48, /* AX */ - SYM, 58,SYM,SYM,SYM,SYM, 59,SYM,SYM, 6, 17, 25, 60,SYM,ILL, 48, /* BX */ - 42, 36, 30,ILL, 43, 61, 62, 23, 44, 35, 63, 51, 54, 38, 31, 50, /* CX */ - ILL, 39, 45, 37, 49, 52, 26,SYM, 64, 65, 40, 32, 16, 53, 66, 67, /* DX */ - 42, 36, 30,ILL, 43, 68, 69, 23, 44, 35, 70, 51, 54, 38, 31, 50, /* EX */ - ILL, 39, 45, 37, 49, 52, 26,SYM, 71, 72, 40, 32, 16, 53, 73,SYM, /* FX */ + SYM, 53,SYM,SYM,SYM,ILL, 54,SYM,SYM, 2, 17, 25, 55,SYM,ILL, 50, /* AX */ + SYM, 56,SYM,SYM,SYM,SYM, 57,SYM,SYM, 6, 17, 25, 58,SYM,ILL, 50, /* BX */ + 45, 38, 30,ILL, 43, 59, 60, 22, 36, 35, 61, 62, 44, 37, 31, 63, /* CX */ + ILL, 42, 48, 41, 47, 64, 26,SYM, 65, 49, 40, 33, 16, 66, 67, 52, /* DX */ + 45, 38, 30,ILL, 43, 68, 69, 22, 36, 35, 70, 71, 44, 37, 31, 72, /* EX */ + ILL, 42, 48, 41, 47, 73, 26,SYM, 74, 49, 40, 33, 16, 75, 76,SYM, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ @@ -89,79 +89,80 @@ static const unsigned char Iso_8859_9_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 0, 15, 24, 8, 1, 27, 19, 20, 6, 28, 7, 4, 11, 3, 14, /* 4X */ - 22, 34, 5, 10, 9, 12, 18, 29, 33, 13, 21,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 0, 15, 24, 8, 1, 27, 19, 20, 2, 28, 7, 4, 11, 3, 14, /* 6X */ - 22, 34, 5, 10, 9, 12, 18, 29, 33, 13, 21,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM, 0, 15, 23, 8, 1, 27, 19, 21, 6, 28, 7, 5, 11, 3, 14, /* 4X */ + 24, 34, 4, 10, 9, 12, 18, 29, 32, 13, 20,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 0, 15, 23, 8, 1, 27, 19, 21, 2, 28, 7, 5, 11, 3, 14, /* 6X */ + 24, 34, 4, 10, 9, 12, 18, 29, 32, 13, 20,SYM,SYM,SYM,SYM,CTR, /* 7X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 8X */ CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ - SYM,SYM,SYM,SYM,SYM, 74,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 42, 36, 30, 46, 43, 75, 41, 23, 44, 35, 76, 51, 54, 38, 31, 50, /* CX */ - 25, 39, 45, 37, 49, 77, 26,SYM, 47, 78, 40, 32, 16, 2, 17, 79, /* DX */ - 42, 36, 30, 46, 43, 80, 41, 23, 44, 35, 81, 51, 54, 38, 31, 50, /* EX */ - 25, 39, 45, 37, 49, 82, 26,SYM, 47, 83, 40, 32, 16, 6, 17, 84, /* FX */ + SYM,SYM,SYM,SYM,SYM, 77,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ + 45, 38, 30, 51, 43, 78, 39, 22, 36, 35, 79, 80, 44, 37, 31, 81, /* CX */ + 25, 42, 48, 41, 47, 82, 26,SYM, 46, 49, 40, 33, 16, 2, 17, 52, /* DX */ + 45, 38, 30, 51, 43, 83, 39, 22, 36, 35, 84, 85, 44, 37, 31, 86, /* EX */ + 25, 42, 48, 41, 47, 87, 26,SYM, 46, 49, 40, 33, 16, 6, 17, 88, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ -static const int Unicode_Char_size = 66; +static const int Unicode_Char_size = 68; static const unsigned int Unicode_CharOrder[] = { - 65, 0, 66, 15, 67, 24, 68, 8, 69, 1, 70, 27, 71, 19, 72, 20, - 73, 2, 73, 6, 74, 28, 75, 7, 76, 4, 77, 11, 78, 3, 79, 14, - 80, 22, 82, 5, 83, 10, 84, 9, 85, 12, 86, 18, 87, 29, 89, 13, - 90, 21, 97, 0, 98, 15, 99, 24, 100, 8, 101, 1, 102, 27,103, 19, - 104, 20, 105, 2, 106, 28, 107, 7, 108, 4, 109, 11, 110, 3,111, 14, - 112, 22, 114, 5, 115, 10, 116, 9, 117, 12, 118, 18, 119, 29,121, 13, - 122, 21, 194, 30, 199, 23, 206, 31, 214, 26, 219, 32, 220, 16,226, 30, - 231, 23, 238, 31, 246, 26, 251, 32, 252, 16, 286, 25, 287, 25,305, 6, - 350, 17, 351, 17, + 65, 0, 66, 15, 67, 23, 68, 8, 69, 1, 70, 27, 71, 19, 72, 21, + 73, 2, 73, 6, 74, 28, 75, 7, 76, 5, 77, 11, 78, 3, 79, 14, + 80, 24, 82, 4, 83, 10, 84, 9, 85, 12, 86, 18, 87, 29, 88, 32, + 89, 13, 90, 20, 97, 0, 98, 15, 99, 23, 100, 8, 101, 1,102, 27, + 103, 19, 104, 21, 105, 2, 106, 28, 107, 7, 108, 5, 109, 11,110, 3, + 111, 14, 112, 24, 114, 4, 115, 10, 116, 9, 117, 12, 118, 18,119, 29, + 120, 32, 121, 13, 122, 20, 194, 30, 199, 22, 206, 31, 214, 26,219, 33, + 220, 16, 226, 30, 231, 22, 238, 31, 246, 26, 251, 33, 252, 16,286, 25, + 287, 25, 305, 6, 350, 17, 351, 17, }; /* Model Table: - * Total considered sequences: 1109 / 1089 - * - Positive sequences: first 553 (0.995033943100518) - * - Probable sequences: next 194 (747-553) (0.0039670697911219355) - * - Neutral sequences: last 342 (0.0009989871083601054) - * - Negative sequences: -20 (off-ratio) + * Total considered sequences: 1018 / 1156 + * - Positive sequences: first 535 (0.995041989262771) + * - Probable sequences: next 164 (699-535) (0.003962858701427208) + * - Neutral sequences: last 457 (0.0009951520358018051) + * - Negative sequences: 138 (off-ratio) * Negative sequences: TODO */ static const PRUint8 TurkishLangModel[] = { - 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,3,0,1,0, - 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,1, - 3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,3,3,1,1,3,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,0,2,3,2,2,2,3,1, - 3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,2,3,3,0,1,3,1,1,3,3,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,3,3,2,2,3,2, - 2,0,0,3,3,3,3,3,3,3,3,3,2,3,2,3,0,3,2,1,2,3,3,3,3,3,0,3,0,1,0,0,0, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,3,2,1,3,0,0,3,2,1,1,3,1,3, - 3,3,3,2,3,3,3,2,3,2,3,2,3,3,3,2,3,0,2,2,2,2,1,1,3,1,3,1,2,2,2,3,1, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,2,3,3,2,3,2,0,3,3,0,2,2,1,1, - 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,0,3,2,3,2,3,3,3,0,3,2,0,2,2,2,2, - 3,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,3,2,1,2,3,3,3,1,3,0,3,2,1,2,3,3,2, - 3,3,3,3,3,3,0,3,3,3,3,3,2,3,2,3,0,3,3,3,3,3,3,3,3,3,0,3,2,1,0,0,0, - 3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,2,3,3,2,2,2,1,3,0,3,2,0,2,2,1,1, - 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,0,1,0, - 3,3,3,3,3,3,3,2,3,2,3,2,3,3,3,3,3,1,1,0,2,2,0,2,2,1,3,1,1,1,2,2,2, - 0,2,1,3,3,3,0,3,3,3,3,3,0,3,1,3,0,3,3,1,2,3,3,3,3,3,0,3,1,0,0,0,0, - 3,3,3,2,3,2,3,3,1,3,2,3,3,2,2,3,3,1,3,3,2,1,1,3,1,0,2,2,0,0,1,1,1, - 3,3,3,1,3,3,3,2,3,1,3,1,3,3,3,2,2,2,3,2,2,2,0,0,3,0,1,1,0,0,2,2,1, - 3,3,3,3,3,3,3,1,2,2,3,2,3,2,3,1,3,1,0,2,3,1,1,1,1,0,3,1,1,1,2,0,1, - 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,0,1,2,2,3,2,0,2,1,1,2,3,2,1, - 3,3,3,2,3,2,3,2,3,2,1,3,3,3,3,3,3,0,2,3,3,3,0,0,3,0,3,0,1,1,2,2,1, - 3,3,3,2,3,3,3,2,0,3,3,3,3,2,3,1,3,0,0,1,3,1,3,3,1,0,1,0,0,1,0,0,0, - 3,3,3,0,3,2,3,2,1,3,2,3,3,3,3,2,3,0,0,1,2,0,0,1,1,0,3,0,0,0,0,0,0, - 3,3,3,2,3,3,3,3,2,3,2,3,3,2,3,2,3,0,0,2,3,1,1,0,3,1,0,1,0,1,2,1,1, - 3,3,3,1,3,3,3,0,3,0,1,3,3,0,3,1,3,0,1,0,0,2,0,0,1,0,0,0,0,0,0,0,0, - 0,1,1,3,3,3,0,3,3,3,3,3,0,3,0,2,0,2,2,1,1,3,3,3,2,3,0,1,0,0,0,0,0, - 3,3,3,1,3,3,3,2,1,3,2,1,3,3,3,1,2,2,0,2,1,0,0,1,2,0,1,3,0,0,2,2,1, - 3,3,3,1,2,1,2,1,2,0,1,1,3,1,3,1,2,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0, - 3,3,3,2,2,2,0,1,1,1,1,1,2,1,3,1,1,0,0,0,2,0,1,0,1,0,0,1,1,1,0,0,0, - 1,1,2,3,3,3,0,2,2,3,2,3,0,2,0,2,0,2,1,1,2,2,0,0,1,1,0,2,0,0,0,1,0, - 0,0,1,2,3,1,0,1,1,1,1,1,0,2,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0, - 0,0,0,1,1,1,0,1,1,0,2,3,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,2,0,0,0,0,0, + 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,3,3,2,1,1,2,0, + 3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,3,0, + 3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,1,1,0,2,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,0,2,3,2,2,1,2,1,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,2,3,3,1,1,3,1,1, + 3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,2,0,2,3,2,1,3,3,0,1, + 2,1,0,3,3,3,3,3,3,3,3,3,2,3,2,3,0,3,3,1,3,2,3,3,3,3,0,3,0,0,0,0,1,0, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,2,3,2,1,0,3,2,1,1,3,1,0,3, + 3,3,3,2,3,3,3,1,3,2,3,2,3,3,3,2,3,0,2,2,1,2,0,2,1,0,3,1,1,2,2,1,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,0,3,2,2,3,3,3,1,0,3,3,1,2,1,1,0,0, + 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,0,2,2,1,3,3,3,3,0,3,3,0,2,1,1,0,0, + 3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,1,3,3,0,3,2,1,2,2,3,1,1, + 3,3,3,3,3,3,0,3,3,3,3,3,2,3,2,3,0,3,3,3,3,3,3,3,3,3,0,3,1,0,0,0,2,0, + 3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,1,3,3,2,2,1,3,2,0,3,2,0,1,1,0,2,1, + 2,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,2,3,3,3,0,3,3,3,0,0,2,0, + 3,3,3,2,3,3,3,1,3,1,2,3,3,2,3,2,3,1,1,1,2,1,0,2,1,0,3,0,1,2,2,1,0,1, + 1,2,1,3,3,3,0,3,3,3,3,3,0,3,1,3,1,3,3,1,3,2,3,3,3,3,1,3,1,0,0,0,1,0, + 3,3,3,2,3,3,3,3,1,3,2,3,3,2,2,2,3,0,3,3,1,2,3,1,1,0,2,2,0,0,1,0,0,1, + 3,3,3,2,3,3,3,2,3,0,3,2,3,3,3,2,2,2,3,2,2,2,0,3,0,0,0,1,1,0,1,1,0,0, + 3,3,3,3,3,3,3,1,2,2,3,2,3,2,3,1,3,0,1,2,2,3,0,0,1,0,3,1,1,1,2,0,1,0, + 3,3,3,2,1,3,3,2,3,2,2,3,3,3,3,2,3,0,1,3,2,3,0,3,1,0,2,0,0,0,1,1,0,1, + 3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,0,2,2,3,1,2,0,2,1,0,1,3,2,0,0, + 3,3,3,0,2,3,3,2,1,3,2,3,3,2,3,2,3,0,0,1,0,1,0,0,0,0,3,0,0,0,0,0,0,0, + 3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,2,3,0,1,1,1,3,0,3,1,0,0,2,0,0,0,0,0,0, + 3,3,3,1,3,3,3,3,1,3,3,3,3,2,3,1,3,0,0,1,1,3,3,1,2,0,1,1,1,1,1,0,0,0, + 3,3,3,1,3,3,3,1,3,0,1,3,3,0,2,1,3,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,0,0, + 0,1,1,3,3,3,0,3,3,3,3,3,0,3,0,1,0,2,2,2,3,1,3,1,3,3,0,1,0,0,0,0,0,0, + 3,3,3,2,3,3,3,2,1,3,2,1,3,3,3,1,2,2,0,1,1,1,1,2,1,0,1,3,0,1,0,1,0,0, + 3,3,3,2,1,2,2,1,2,0,1,1,3,0,3,0,2,0,0,1,1,0,0,1,1,0,1,1,0,1,0,0,0,0, + 3,3,3,2,2,1,1,1,1,1,2,1,1,1,3,1,0,1,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0, + 0,0,1,3,3,3,0,3,2,2,1,2,0,2,0,2,0,2,1,1,2,2,0,0,0,2,0,1,0,0,0,0,0,0, + 0,0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,1,2,0,0,1,2,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,2,0,0,1,0,0,0,0,1,0, + 1,0,0,1,1,1,0,1,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, }; @@ -169,8 +170,8 @@ const SequenceModel Iso_8859_3TurkishModel = { Iso_8859_3_CharToOrderMap, TurkishLangModel, - 33, - (float)0.9990010128916399, + 34, + (float)0.9990048479641982, PR_FALSE, "ISO-8859-3", "tr" @@ -180,8 +181,8 @@ const SequenceModel Iso_8859_9TurkishModel = { Iso_8859_9_CharToOrderMap, TurkishLangModel, - 33, - (float)0.9990010128916399, + 34, + (float)0.9990048479641982, PR_FALSE, "ISO-8859-9", "tr" @@ -191,11 +192,11 @@ const LanguageModel TurkishModel = { "tr", Unicode_CharOrder, - 66, + 68, TurkishLangModel, - 33, - 4, - (float)0.37622064189380516, + 34, + 5, + (float)0.4444901594335149, 23, - (float)0.0331922903705142, + (float)0.03317779168044757, }; diff --git a/src/LangModels/LangVietnameseModel.cpp b/src/LangModels/LangVietnameseModel.cpp index b3c46fd..0cd43ee 100644 --- a/src/LangModels/LangVietnameseModel.cpp +++ b/src/LangModels/LangVietnameseModel.cpp @@ -42,7 +42,7 @@ /** * Generated by BuildLangModel.py - * On: 2022-12-14 18:45:49.354853 + * On: 2022-12-15 00:50:53.989529 **/ /* Character Mapping Table: @@ -68,269 +68,269 @@ static const unsigned char Windows_1258_CharToOrderMap[] = CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 6, 20, 3, 23, 25, 72, 5, 1, 4, 81, 21, 14, 9, 0, 10, /* 4X */ - 17, 31, 12, 18, 2, 7, 13, 73, 51, 19, 84,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 6, 20, 3, 23, 25, 72, 5, 1, 4, 81, 21, 14, 9, 0, 10, /* 6X */ - 17, 31, 12, 18, 2, 7, 13, 73, 51, 19, 84,SYM,SYM,SYM,SYM,CTR, /* 7X */ - SYM,ILL,SYM,107,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,101,ILL,ILL,ILL, /* 8X */ - ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM,101,ILL,ILL,104, /* 9X */ + SYM, 6, 19, 3, 22, 23, 68, 5, 1, 4, 75, 21, 14, 10, 0, 9, /* 4X */ + 15, 34, 12, 18, 2, 7, 13, 73, 50, 20, 82,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 6, 19, 3, 22, 23, 68, 5, 1, 4, 75, 21, 14, 10, 0, 9, /* 6X */ + 15, 34, 12, 18, 2, 7, 13, 73, 50, 20, 82,SYM,SYM,SYM,SYM,CTR, /* 7X */ + SYM,ILL,SYM,107,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 99,ILL,ILL,ILL, /* 8X */ + ILL,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,ILL,SYM, 99,ILL,ILL,104, /* 9X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* AX */ SYM,SYM,SYM,SYM,SYM,108,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* BX */ - 11, 15, 32, 39, 97,106, 95, 96, 85, 74, 30,105,SYM, 43, 99,102, /* CX */ - 8,103,SYM, 36, 29, 44, 94,SYM, 98, 62, 61,109, 92, 16,SYM,100, /* DX */ - 11, 15, 32, 39, 97,106, 95, 96, 85, 74, 30,105,SYM, 43, 99,102, /* EX */ - 8,103,SYM, 36, 29, 44, 94,SYM, 98, 62, 61,110, 92, 16,111,104, /* FX */ + 11, 16, 26, 47,105,106, 98, 92, 85, 72, 31,100,SYM, 41,101, 96, /* CX */ + 8,103,SYM, 33, 30, 48, 95,SYM, 94, 60, 62,102, 97, 17,SYM,109, /* DX */ + 11, 16, 26, 47,105,106, 98, 92, 85, 72, 31,100,SYM, 41,101, 96, /* EX */ + 8,103,SYM, 33, 30, 48, 95,SYM, 94, 60, 62,102, 97, 17,110,104, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const unsigned char Viscii_CharToOrderMap[] = { - CTR,CTR, 86,CTR,CTR, 91, 78,CTR,CTR,CTR,RET,CTR,CTR,RET,CTR,CTR, /* 0X */ - CTR,CTR,CTR,CTR, 79,CTR,CTR,CTR,CTR, 80,CTR,CTR,CTR,CTR, 93,CTR, /* 1X */ + CTR,CTR, 86,CTR,CTR, 91, 76,CTR,CTR,CTR,RET,CTR,CTR,RET,CTR,CTR, /* 0X */ + CTR,CTR,CTR,CTR, 81,CTR,CTR,CTR,CTR, 84,CTR,CTR,CTR,CTR, 93,CTR, /* 1X */ SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM,SYM, /* 2X */ NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,NUM,SYM,SYM,SYM,SYM,SYM,SYM, /* 3X */ - SYM, 6, 20, 3, 23, 25, 72, 5, 1, 4, 81, 21, 14, 9, 0, 10, /* 4X */ - 17, 31, 12, 18, 2, 7, 13, 73, 51, 19, 84,SYM,SYM,SYM,SYM,SYM, /* 5X */ - SYM, 6, 20, 3, 23, 25, 72, 5, 1, 4, 81, 21, 14, 9, 0, 10, /* 6X */ - 17, 31, 12, 18, 2, 7, 13, 73, 51, 19, 84,SYM,SYM,SYM,SYM,CTR, /* 7X */ - 26, 60, 69, 66, 38, 50, 75, 45, 83, 88, 22, 37, 46, 65, 28, 27, /* 8X */ - 56, 58, 82, 24, 41, 35, 40, 54, 42, 77, 53, 71, 34, 67, 57, 76, /* 9X */ - 87, 60, 69, 66, 38, 50, 75, 45, 83, 88, 22, 37, 46, 65, 28, 27, /* AX */ - 56, 58, 82, 90, 44, 24, 40, 54, 42, 47, 52, 59, 64, 44, 35, 16, /* BX */ - 11, 15, 32, 55, 33, 39, 86, 91, 85, 74, 30, 89, 49, 43, 68, 76, /* CX */ - 8, 52, 63, 36, 29, 26, 79, 59, 64, 62, 61, 80, 93, 70, 90, 16, /* DX */ - 11, 15, 32, 55, 33, 39, 48, 78, 85, 74, 30, 89, 49, 43, 68, 71, /* EX */ - 8, 47, 63, 36, 29, 87, 77, 53, 57, 62, 61, 67, 34, 70, 41, 48, /* FX */ + SYM, 6, 19, 3, 22, 23, 68, 5, 1, 4, 75, 21, 14, 10, 0, 9, /* 4X */ + 15, 34, 12, 18, 2, 7, 13, 73, 50, 20, 82,SYM,SYM,SYM,SYM,SYM, /* 5X */ + SYM, 6, 19, 3, 22, 23, 68, 5, 1, 4, 75, 21, 14, 10, 0, 9, /* 6X */ + 15, 34, 12, 18, 2, 7, 13, 73, 50, 20, 82,SYM,SYM,SYM,SYM,CTR, /* 7X */ + 29, 61, 67, 63, 42, 49, 78, 45, 80, 88, 24, 40, 44, 77, 27, 28, /* 8X */ + 57, 59, 83, 25, 39, 36, 38, 52, 43, 74, 55, 69, 32, 70, 56, 79, /* 9X */ + 89, 61, 67, 63, 42, 49, 78, 45, 80, 88, 24, 40, 44, 77, 27, 28, /* AX */ + 57, 59, 83, 90, 48, 25, 38, 52, 43, 46, 54, 58, 65, 48, 36, 17, /* BX */ + 11, 16, 26, 51, 35, 47, 86, 91, 85, 72, 31, 87, 53, 41, 66, 79, /* CX */ + 8, 54, 64, 33, 30, 29, 81, 58, 65, 60, 62, 84, 93, 71, 90, 17, /* DX */ + 11, 16, 26, 51, 35, 47, 37, 76, 85, 72, 31, 87, 53, 41, 66, 69, /* EX */ + 8, 46, 64, 33, 30, 89, 74, 55, 56, 60, 62, 70, 32, 71, 39, 37, /* FX */ }; /*X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ static const int Unicode_Char_size = 188; static const unsigned int Unicode_CharOrder[] = { - 65, 6, 66, 20, 67, 3, 68, 23, 69, 25, 70, 72, 71, 5, 72, 1, - 73, 4, 74, 81, 75, 21, 76, 14, 77, 9, 78, 0, 79, 10, 80, 17, - 81, 31, 82, 12, 83, 18, 84, 2, 85, 7, 86, 13, 87, 73, 88, 51, - 89, 19, 90, 84, 97, 6, 98, 20, 99, 3, 100, 23, 101, 25, 102, 72, - 103, 5, 104, 1, 105, 4, 106, 81, 107, 21, 108, 14, 109, 9, 110, 0, - 111, 10, 112, 17, 113, 31, 114, 12, 115, 18, 116, 2, 117, 7, 118, 13, - 119, 73, 120, 51, 121, 19, 122, 84, 192, 11, 193, 15, 194, 32, 195, 55, - 200, 85, 201, 74, 202, 30, 204, 49, 205, 43, 210, 63, 211, 36, 212, 29, - 213, 87, 217, 62, 218, 61, 220, 92, 221, 70, 224, 11, 225, 15, 226, 32, - 227, 55, 232, 85, 233, 74, 234, 30, 236, 49, 237, 43, 242, 63, 243, 36, - 244, 29, 245, 87, 249, 62, 250, 61, 252, 92, 253, 70, 258, 39, 259, 39, - 272, 8, 273, 8, 296, 68, 297, 68, 360, 67, 361, 67, 416, 44, 417, 44, - 431, 16, 432, 16, 7840, 26, 7841, 26, 7842, 33, 7843, 33, 7844, 38,7845, 38, - 7846, 50, 7847, 50, 7848, 75, 7849, 75, 7850, 78, 7851, 78, 7852, 45,7853, 45, - 7854, 60, 7855, 60, 7856, 69, 7857, 69, 7858, 86, 7859, 86, 7860, 91,7861, 91, - 7862, 66, 7863, 66, 7864, 88, 7865, 88, 7866, 89, 7867, 89, 7868, 83,7869, 83, - 7870, 22, 7871, 22, 7872, 37, 7873, 37, 7874, 46, 7875, 46, 7876, 65,7877, 65, - 7878, 28, 7879, 28, 7880, 71, 7881, 71, 7882, 42, 7883, 42, 7884, 53,7885, 53, - 7886, 77, 7887, 77, 7888, 27, 7889, 27, 7890, 56, 7891, 56, 7892, 58,7893, 58, - 7894, 82, 7895, 82, 7896, 24, 7897, 24, 7898, 35, 7899, 35, 7900, 40,7901, 40, - 7902, 54, 7903, 54, 7904, 90, 7905, 90, 7906, 41, 7907, 41, 7908, 57,7909, 57, - 7910, 34, 7911, 34, 7912, 52, 7913, 52, 7914, 59, 7915, 59, 7916, 64,7917, 64, - 7918, 48, 7919, 48, 7920, 47, 7921, 47, 7922, 76, 7923, 76, 7924, 93,7925, 93, - 7926, 79, 7927, 79, 7928, 80, 7929, 80, + 65, 6, 66, 19, 67, 3, 68, 22, 69, 23, 70, 68, 71, 5, 72, 1, + 73, 4, 74, 75, 75, 21, 76, 14, 77, 10, 78, 0, 79, 9, 80, 15, + 81, 34, 82, 12, 83, 18, 84, 2, 85, 7, 86, 13, 87, 73, 88, 50, + 89, 20, 90, 82, 97, 6, 98, 19, 99, 3, 100, 22, 101, 23, 102, 68, + 103, 5, 104, 1, 105, 4, 106, 75, 107, 21, 108, 14, 109, 10, 110, 0, + 111, 9, 112, 15, 113, 34, 114, 12, 115, 18, 116, 2, 117, 7, 118, 13, + 119, 73, 120, 50, 121, 20, 122, 82, 192, 11, 193, 16, 194, 26, 195, 51, + 199, 92, 200, 85, 201, 72, 202, 31, 204, 53, 205, 41, 210, 64, 211, 33, + 212, 30, 213, 89, 217, 60, 218, 62, 221, 71, 224, 11, 225, 16, 226, 26, + 227, 51, 231, 92, 232, 85, 233, 72, 234, 31, 236, 53, 237, 41, 242, 64, + 243, 33, 244, 30, 245, 89, 249, 60, 250, 62, 253, 71, 258, 47, 259, 47, + 272, 8, 273, 8, 296, 66, 297, 66, 360, 70, 361, 70, 416, 48, 417, 48, + 431, 17, 432, 17, 7840, 29, 7841, 29, 7842, 35, 7843, 35, 7844, 42,7845, 42, + 7846, 49, 7847, 49, 7848, 78, 7849, 78, 7850, 76, 7851, 76, 7852, 45,7853, 45, + 7854, 61, 7855, 61, 7856, 67, 7857, 67, 7858, 86, 7859, 86, 7860, 91,7861, 91, + 7862, 63, 7863, 63, 7864, 88, 7865, 88, 7866, 87, 7867, 87, 7868, 80,7869, 80, + 7870, 24, 7871, 24, 7872, 40, 7873, 40, 7874, 44, 7875, 44, 7876, 77,7877, 77, + 7878, 27, 7879, 27, 7880, 69, 7881, 69, 7882, 43, 7883, 43, 7884, 55,7885, 55, + 7886, 74, 7887, 74, 7888, 28, 7889, 28, 7890, 57, 7891, 57, 7892, 59,7893, 59, + 7894, 83, 7895, 83, 7896, 25, 7897, 25, 7898, 36, 7899, 36, 7900, 38,7901, 38, + 7902, 52, 7903, 52, 7904, 90, 7905, 90, 7906, 39, 7907, 39, 7908, 56,7909, 56, + 7910, 32, 7911, 32, 7912, 54, 7913, 54, 7914, 58, 7915, 58, 7916, 65,7917, 65, + 7918, 37, 7919, 37, 7920, 46, 7921, 46, 7922, 79, 7923, 79, 7924, 93,7925, 93, + 7926, 81, 7927, 81, 7928, 84, 7929, 84, }; /* Model Table: - * Total considered sequences: 1993 / 8836 - * - Positive sequences: first 1119 (0.9950155124227584) - * - Probable sequences: next 340 (1459-1119) (0.003985367896549574) - * - Neutral sequences: last 7377 (0.0009991196806919955) - * - Negative sequences: 6843 (off-ratio) + * Total considered sequences: 1992 / 8836 + * - Positive sequences: first 1145 (0.9950096057827752) + * - Probable sequences: next 346 (1491-1145) (0.003994365518613985) + * - Neutral sequences: last 7345 (0.000996028698610818) + * - Negative sequences: 6844 (off-ratio) * Negative sequences: TODO */ static const PRUint8 VietnameseLangModel[] = { - 3,3,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,2,0,2,3,3,2,3,1,2,1,1,3,1,1, - 0,3,0,1,2,1,1,2,2,2,1,3,0,3,3,1,2,3,0,3,0,1,3,0,1,2,2,3,1,0,1,0,0,0,3,3,0,3,2,0,0,0,0,1,3,1,0, - 3,1,3,2,3,1,3,3,0,3,3,3,3,1,3,3,3,1,3,3,2,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,0,3,2,2,3,3,0,3,2,1,0,1,3,3,1,3,3,1,3,1,1,1,1,0, - 3,3,3,3,3,2,3,3,1,3,3,3,3,3,3,3,3,3,3,3,2,1,3,2,3,3,3,3,3,3,3,1,3,3,2,3,3,2,3,3,3,0,3,3,2,3,3, - 3,0,3,3,1,3,2,0,1,3,3,3,3,3,3,3,3,3,0,3,0,3,1,1,3,2,3,2,2,1,3,1,3,0,0,0,0,3,1,0,0,0,1,0,0,1,2, - 3,3,3,3,3,0,3,3,1,3,3,3,3,1,3,3,3,2,3,3,2,3,0,3,3,3,3,3,0,3,0,2,3,3,3,2,3,0,3,3,3,1,0,0,3,3,0, - 3,1,0,3,1,3,2,1,3,2,3,3,2,3,3,3,3,3,0,2,3,0,1,0,0,2,2,1,3,0,2,0,0,0,2,2,0,1,1,0,2,0,0,2,0,0,0, - 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,0,3,1,3,3,3,3,3,2,3,0,3,3,3,3,1,3,0,0,0,1,2,3, - 0,3,0,0,3,1,3,0,1,1,1,0,0,0,3,1,1,0,3,3,1,0,1,0,0,3,1,3,0,0,2,1,0,0,2,0,1,3,2,0,0,1,0,0,0,0,0, - 3,3,3,1,3,2,3,3,1,2,3,3,3,1,3,3,3,2,3,3,2,2,1,3,2,3,3,3,0,3,1,0,3,2,2,0,3,0,3,3,3,3,1,1,2,2,0, - 3,3,3,3,1,1,3,2,3,3,3,0,3,3,1,1,3,3,0,3,3,0,1,0,0,1,2,2,1,0,1,2,0,0,1,3,0,1,1,0,2,0,0,2,0,1,0, - 3,3,3,3,3,3,3,3,1,3,3,0,3,3,3,0,0,3,3,3,3,3,0,3,0,3,0,0,0,0,0,3,0,0,0,0,0,0,1,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,3,3,0,0,0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0,1,0, - 3,3,3,3,3,3,3,1,0,3,2,2,3,2,3,3,0,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,3,3,0,1,1,1,3,1,0,0,0,1,1,3,0, - 0,0,1,3,3,0,1,2,2,3,0,3,0,0,0,0,0,0,0,2,0,0,0,3,0,2,1,3,3,3,0,3,2,3,2,2,1,2,0,0,0,1,1,0,0,0,2, - 0,1,0,1,3,0,3,3,0,0,3,3,1,0,0,3,3,1,0,0,0,0,3,0,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 2,0,3,3,0,3,3,0,3,3,2,3,2,3,3,1,3,0,0,3,1,3,2,0,3,0,0,0,3,0,3,1,0,0,0,3,1,0,3,3,0,3,2,3,0,0,0, - 2,2,2,2,3,1,3,3,1,3,3,3,1,1,2,3,3,3,3,3,3,1,2,2,3,3,3,3,3,3,2,0,3,3,0,3,3,3,3,2,3,0,1,2,2,3,0, - 3,0,3,1,1,3,3,3,3,2,3,1,2,3,2,3,2,0,1,3,2,2,0,0,1,2,2,3,1,0,3,3,0,3,1,3,3,0,2,1,1,3,2,2,0,2,0, - 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,3,3,3,3,3,0,3,0,3,3,0,0,0,0,2,0,3,0,0,1,0,0,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,2,0,0,0,0,2,0,0,1,0,0,3,0,0,1,0,0,3,3,2,0,0,0,0,0,0,2,0,0,2,1,0,0,1,1,0,1,0,0, - 3,1,1,0,3,0,0,3,0,3,3,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,1,0,0,0,0,0,0,0,0,0,0,0,0, - 3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,2,3,3,2,1,1,1,3,3,3,3,3,3,3,3,2, - 3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,3,3,2,2,1,2,1,3,0,1,3,2,3,0,0,0,2,0,0,0,2,2,2,2,0,3,0,3,2,0,2,0, - 2,1,2,1,3,1,3,3,2,1,3,3,2,1,2,2,3,1,2,2,1,1,2,2,2,3,3,3,3,3,2,1,3,3,0,3,2,3,3,3,1,3,3,3,1,3,1, - 3,3,3,3,0,1,3,3,2,0,3,0,3,2,2,3,3,0,0,1,3,3,0,0,1,1,0,2,1,0,2,3,0,2,1,1,3,0,1,0,3,2,2,3,0,0,0, - 2,3,3,3,3,2,3,3,0,3,3,3,1,3,3,3,3,3,3,3,3,2,1,3,3,3,3,3,3,3,3,0,3,0,0,3,2,2,3,3,3,3,3,3,1,3,1, - 3,3,1,3,1,1,2,1,3,3,3,1,2,3,3,2,3,3,3,3,3,3,0,3,0,3,2,3,1,0,3,3,0,0,1,3,3,2,1,0,2,1,2,0,1,3,2, - 3,0,3,3,3,0,0,3,0,3,3,0,0,0,2,0,0,3,1,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, - 3,0,2,1,1,0,3,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,0,3,3,0,0,3,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,3,0,0,0, - 1,3,3,2,3,0,3,3,0,2,3,0,3,1,3,2,0,3,3,2,2,2,0,2,0,3,0,0,0,2,1,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, - 2,3,3,3,3,2,3,3,0,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,2,3,2,3,0,3,1,2,3,3,2,3,3,0,2,2,0,3,0,1,3,2,0, - 3,1,1,2,0,3,2,3,2,1,3,2,1,3,3,2,1,3,0,1,0,3,0,0,1,2,3,3,1,0,1,0,0,2,0,0,3,2,0,0,0,0,2,1,3,1,0, - 3,1,2,3,3,2,3,2,0,3,3,0,2,1,3,0,0,2,3,1,3,2,3,2,0,3,0,0,3,0,3,0,0,0,0,0,0,3,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,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, - 3,3,2,3,3,0,3,3,0,1,3,3,3,0,3,3,3,0,3,3,3,0,3,1,3,3,3,3,3,3,3,0,2,3,0,3,3,3,3,3,3,1,3,3,2,3,1, - 0,1,3,3,1,3,3,3,3,3,2,3,1,3,3,3,2,2,0,0,0,1,3,0,3,0,1,3,2,0,3,1,0,0,2,1,1,1,3,0,0,0,1,1,0,1,0, - 2,3,2,1,3,2,3,3,0,3,3,0,3,2,3,3,0,1,3,3,1,1,3,1,0,3,1,0,1,3,3,0,0,0,0,0,1,2,0,0,0,0,3,3,0,0,3, - 0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,3,2,1,1,3,0,3,0,0,3,3,0,0,3,0,3,0,0,1,3,0,0,1,2, - 3,0,3,3,0,0,0,3,0,3,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0, - 2,2,3,3,3,3,3,3,1,2,3,3,3,2,3,2,3,3,3,2,2,1,0,2,2,3,3,2,2,1,1,0,3,2,0,0,1,1,3,1,3,0,3,1,2,3,0, - 3,3,1,3,0,3,3,2,3,2,3,1,2,2,0,3,3,0,3,3,2,2,0,0,0,2,3,3,0,0,0,3,0,0,1,1,0,2,2,1,2,3,2,1,0,1,0, - 3,0,3,3,3,0,0,0,0,2,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, - 3,3,3,3,3,3,3,3,1,3,3,0,3,3,3,0,0,3,3,3,3,3,0,3,0,3,0,0,0,0,0,1,0,0,0,0,1,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,3,3,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,0,0,0,0, - 3,0,3,3,3,0,0,0,0,3,3,0,0,0,0,0,0,3,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, - 3,0,3,3,3,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,1,3,3,0,0,0,3,0,3,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, - 3,0,2,2,3,1,0,0,1,3,0,0,2,0,2,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,2,2,0,2,0,3,1,3,0,0,2,0,1,0,0,1,2,0,1,1,0,1,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,1,0,1,0,1,3,2,0,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,1,1,0,0,0,3,0,3,0,0,0,0,0,0,0,1,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, - 3,0,0,0,3,0,0,0,0,3,3,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, - 3,0,1,0,2,0,3,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, - 3,0,3,3,3,0,0,1,0,3,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, - 3,0,3,3,3,0,3,0,0,3,0,0,1,0,1,0,0,3,0,0,0,0,0,0,0,1,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,2,3,3,3,3,2,3,2,2,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,0,3,2,2,2,3,0,2,3,2,3,1,1,1,1, + 3,3,2,1,2,2,0,1,2,1,2,0,3,1,3,3,3,1,3,0,3,3,0,0,0,3,3,1,2,0,0,1,0,0,0,2,3,0,3,0,1,0,0,0,2,3,0, + 3,0,3,2,3,1,3,3,1,3,3,3,3,1,2,2,3,3,3,1,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3, + 3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,0,3,2,3,1,2,1,3,0,3,2,1,3,0,3,3,2,3,1,0,1,0,0, + 3,3,3,3,3,2,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,2,3,0,3,3,0,3,1,2,3,3,3,1,3,3, + 3,2,3,1,2,1,3,3,2,3,3,3,3,3,3,3,3,3,3,2,1,2,3,0,1,3,3,3,1,0,1,2,1,0,3,3,0,0,2,0,2,1,0,0,0,0,1, + 3,3,3,3,3,1,3,3,1,3,3,3,3,1,3,2,3,3,3,3,3,3,2,3,0,3,3,0,3,3,3,0,3,3,3,3,1,0,3,0,0,0,3,0,0,3,3, + 3,3,3,1,3,1,0,3,2,3,2,2,3,3,3,3,3,3,3,0,2,2,0,3,0,3,3,3,1,1,0,3,0,0,0,1,1,0,1,0,0,0,2,2,0,0,0, + 3,2,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,0,2,3,3,0,1,3,0,3,3,3,3,3,3,0,3,0,3,0,3,2,0, + 1,1,0,3,2,0,0,0,3,1,1,0,0,0,0,3,2,0,0,0,2,3,0,1,0,2,2,2,3,1,3,0,0,1,0,3,1,0,3,0,1,1,0,1,0,0,0, + 3,3,3,2,3,2,3,3,1,3,2,3,3,1,3,2,3,3,3,3,3,3,3,3,2,2,3,0,3,3,3,2,3,3,2,1,1,3,2,3,0,0,2,2,0,3,3, + 3,2,3,1,3,0,3,0,3,3,3,3,1,1,3,1,3,3,3,0,1,1,0,3,0,3,1,1,1,2,0,0,0,0,0,2,3,0,2,0,0,0,2,2,0,0,1, + 3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,0,0,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,3,0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, + 3,2,3,3,3,3,3,1,0,2,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,3,1,0,1,0,1,1,3,0,0,3,0, + 2,2,3,3,2,2,0,0,1,0,3,0,3,0,0,0,2,1,0,0,0,3,0,0,3,2,1,0,2,2,0,3,3,0,2,3,2,3,0,0,0,1,0,0,0,1,3, + 0,0,1,0,3,0,3,3,0,3,0,3,1,0,0,0,3,3,0,1,0,0,0,3,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,3,2, + 3,3,3,0,3,0,3,3,3,2,3,2,3,1,3,3,3,3,0,3,2,0,3,1,0,2,0,3,0,1,1,3,0,0,0,0,3,0,2,3,2,3,0,3,0,0,0, + 3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,0,0,0,0,0,3,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,3,2,0,0,0,1,0,0,0,0,0,2,0,3,1,0,0,1,3,0,0,0,1,3,0,2,0,0,0,0,0,0,2,0,0,2,0,1,1,0,0,1,0,0, + 3,1,2,2,3,1,3,3,0,3,3,3,2,1,2,3,3,3,3,3,3,1,2,3,2,3,3,3,3,3,3,3,1,3,1,2,3,0,3,0,3,2,3,1,0,3,3, + 2,2,2,1,3,3,3,3,3,3,2,2,0,3,3,2,3,2,0,3,1,2,2,3,0,3,2,3,1,3,1,1,0,3,0,0,3,3,2,0,1,3,1,2,0,0,0, + 3,0,0,0,3,1,0,3,0,3,3,0,0,0,1,1,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,1,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,1,3,3,3,0,3,3,3,1,3,3, + 3,3,3,2,3,3,3,2,3,3,3,3,2,3,3,3,2,3,2,0,3,2,1,2,0,3,1,1,1,2,2,1,0,3,0,2,2,0,2,0,3,0,3,2,0,0,0, + 2,1,2,1,3,1,3,3,0,3,1,3,2,2,2,1,2,3,2,1,2,2,2,3,2,1,3,3,3,3,3,2,0,2,1,2,3,3,2,3,3,3,3,3,1,3,3, + 3,2,3,0,2,2,3,1,3,3,0,3,1,3,3,2,0,3,0,3,1,1,1,3,0,2,0,2,0,3,0,0,0,2,0,0,1,1,1,0,3,2,3,2,0,0,0, + 2,3,3,3,3,3,3,3,0,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,2,1,1,3,2,3,3,2,3,3,3,0,3,3, + 3,2,3,1,3,0,1,1,3,3,2,2,1,3,3,3,3,3,3,3,2,3,0,3,3,3,1,2,2,3,3,2,0,3,0,1,3,0,2,0,3,1,3,0,0,0,2, + 2,3,3,2,3,1,3,3,0,3,3,0,3,0,3,3,1,0,3,2,3,1,2,3,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,3,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, + 3,0,3,3,3,0,0,3,0,3,3,0,1,0,0,3,0,0,1,1,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, + 3,0,2,2,2,0,3,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,3,3,3,3,2,3,3,1,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,0,2,3,0,3,3,3,1,1,3,3,3,3,2,1,3,0,3,2,0,1,1,3, + 3,3,2,1,0,3,1,3,1,3,1,1,2,2,3,3,1,1,3,3,0,2,2,0,0,3,3,2,1,0,0,1,0,3,0,1,0,2,1,0,3,0,0,1,3,0,0, + 3,2,2,3,3,1,3,3,0,3,2,3,3,1,3,1,3,3,3,3,3,1,2,3,3,3,3,3,3,3,2,3,1,3,0,3,2,3,3,1,3,3,3,3,2,3,1, + 3,2,3,0,3,3,3,3,3,2,3,1,3,3,3,2,0,3,2,0,3,2,3,0,0,3,1,3,1,1,1,2,0,0,0,0,1,0,3,0,1,2,0,0,0,0,0, + 3,0,3,3,3,1,3,3,0,3,3,1,3,2,3,3,0,0,3,3,1,2,2,3,3,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, + 2,3,2,1,3,1,3,3,0,3,3,1,3,2,3,1,2,0,3,2,3,2,0,3,3,0,0,0,0,1,3,3,0,0,0,0,0,0,0,0,2,3,0,3,3,0,0, + 0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,0,3,3,2,0,1,0,0,0,3,1,3,1,0,3,3,0,3,2,0,0,0,0,2, + 2,3,3,3,3,3,3,3,0,3,2,3,3,2,2,3,3,3,3,2,3,2,3,3,0,2,3,2,2,3,1,2,0,1,0,2,0,3,2,0,2,1,3,3,0,3,3, + 1,1,3,0,3,1,2,3,3,3,2,2,0,3,1,0,2,3,1,2,1,2,0,2,0,3,3,0,1,3,3,0,0,0,0,1,1,0,2,2,2,2,2,1,0,0,0, + 3,3,3,3,3,3,3,3,0,3,3,0,3,3,3,3,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,2,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,3,0,0,0,0,3,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,0,0,0,3,0,0,3,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,3,0,0,1,0,0,2,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, + 3,0,2,1,0,0,0,3,0,0,3,0,1,0,1,1,0,1,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,1,0,0,3,0,0,3,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, + 3,0,3,3,3,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,3,0,0,0,0,3,3,0,0,0,0,3,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, + 3,0,2,2,3,1,0,1,0,0,3,0,1,0,1,2,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,2,2,1,0,0,3,1,0,3,0,1,1,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,3,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, + 3,0,1,1,2,0,3,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, - 3,0,3,2,1,0,0,3,0,3,0,0,0,0,0,0,0,3,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, + 3,0,3,3,3,0,3,0,0,0,3,0,1,0,0,3,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,0,2,0,2,3,2,1,0,0,2,0,3,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,1,0,3,3,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, - 3,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, + 3,0,3,3,3,0,0,1,0,0,3,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, + 3,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, + 3,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,3,0,0,3,0,0,2,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, - 3,0,3,3,3,0,0,2,0,2,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, + 3,0,0,0,0,0,0,3,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,0, - 3,0,3,3,0,0,3,3,0,1,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, + 3,0,3,3,0,0,3,2,0,0,3,0,0,0,1,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,0,0,3,1,0,2,1,0,1,0,1,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,2,2,0,0,3,0,0,3,0,0,0,0,3,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, - 3,0,1,1,3,0,0,2,0,3,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,0,0,3,3,0,0,1,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, - 3,0,3,3,0,0,0,3,0,3,0,0,0,0,0,0,0,3,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, + 3,0,0,0,0,0,0,3,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,0, - 3,0,0,0,0,0,0,3,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, + 3,0,3,3,0,0,0,3,0,0,3,0,0,0,0,3,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,3,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,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,2,2,0,0,0,0,0,0,3,0,1,0,0,1,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 3,0,0,0,0,0,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,2,1,3,0,0,2,0,0,3,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,0,0,3,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, - 3,0,0,0,0,0,2,1,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,2,3,2,3,0,3,3,0,3,1,1,1,3,1,2,3,3,1,0,2,0,0,3,3,1,3,0,2,2,3,2,0,3,0,3,1,0,0,0,0,3,3,0,0,0,0, + 2,1,0,3,3,0,1,3,0,0,0,0,1,1,1,3,0,1,3,0,0,2,2,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0, + 3,1,0,1,3,0,0,0,0,3,2,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, - 3,0,0,0,0,0,0,3,0,3,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, + 3,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,0,3,3,0,0,3,2,0,3,0,3,3,2,0,2,2,1,3,1,1,3,2,1,1,3,2,0,3,3,0,0,3,1,2,1,0,0,1,3,1,0,0, - 0,0,1,0,3,3,0,1,3,0,0,1,0,1,3,2,1,3,0,0,0,0,0,0,2,2,0,3,1,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0, - 3,0,3,3,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, + 3,0,0,0,0,0,2,2,0,0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,3,0,3,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, + 3,0,3,3,1,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, - 3,0,1,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,3,0,3,0,0,0,0,0,1,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, - 3,1,1,0,3,0,0,0,0,3,3,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, + 3,0,3,3,2,0,2,0,0,0,3,0,0,0,0,3,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, - 3,0,0,0,3,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, + 3,0,0,0,3,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,0, - 3,0,3,3,2,0,2,0,0,3,0,0,0,0,0,0,0,3,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, + 3,0,0,0,0,0,3,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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, - 3,0,0,0,0,0,3,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,1,3,0,0,0,2,0,0,0,0,0,0,0,1,1,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, - 3,0,3,3,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,0,0,0,0,0,0,3,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,3,3,0,3,0,0,1,0,0,0,0,0,0,0,3,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, + 3,0,3,3,3,0,3,0,0,0,0,0,0,0,0,3,0,0,0,1,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, - 3,0,0,0,3,0,3,0,0,3,0,0,0,0,0,0,0,0,1,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, + 3,0,3,3,0,0,0,0,0,0,2,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, - 3,0,0,0,3,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,1,3,0,3,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,3,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, - 3,0,0,0,0,0,0,2,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, + 3,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,0,0,0,0,0, - 3,0,3,3,0,0,0,0,0,3,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, + 3,0,0,0,1,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,0, - 3,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,3,2,3,1,3,3,0,3,2,0,3,0,3,1,1,1,2,2,1,1,1,3,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,0,0,2,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,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,2,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,3,3,1,2,2,1,0,3,3,0,3,1,3,3,0,0,2,1,0,0,3,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 2,3,2,1,3,1,3,1,0,3,1,0,2,0,2,0,1,0,3,1,2,1,1,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,0,0,3,1,3,3,0,3,0,0,1,1,0,1,0,0,2,0,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,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,3,0,0,2,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,3,2,3,2,3,3,0,1,3,0,3,1,3,1,1,1,2,1,1,0,0,1,0,3,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0, - 2,3,2,1,3,1,3,1,0,1,3,0,2,0,2,0,0,0,3,1,2,1,0,0,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 3,1,3,3,1,2,1,2,0,3,3,0,3,2,2,0,0,3,2,0,2,1,0,1,0,2,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 3,0,0,0,0,0,0,3,0,3,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, + 3,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,3,0,0,1,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, + 3,0,0,0,0,0,0,3,0,0,3,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, - 3,0,0,0,0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,2,1,1,3,1,3,3,0,1,3,0,2,1,0,1,0,1,1,1,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0, - 0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0, + 2,2,1,0,3,1,3,2,0,3,0,1,0,1,0,0,1,0,2,1,1,1,1,3,0,0,2,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0, + 0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0, 3,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,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,2,2,1,3,1,3,2,0,1,3,0,1,0,1,1,0,0,1,1,1,1,1,1,0,3,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,1,0, - 3,0,1,1,0,1,0,0,0,3,3,0,2,2,1,0,0,0,2,0,0,0,0,1,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,1,0,1,0,0,0,3,3,0,3,2,1,1,0,0,3,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,0,0,0,0,0,2,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, + 3,0,2,0,0,0,0,0,0,2,1,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, - 1,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,3,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,2,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,1,0,0,2,0,1,0,0,0,1,1,3,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,2,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 +340,7 @@ const SequenceModel Windows_1258VietnameseModel = Windows_1258_CharToOrderMap, VietnameseLangModel, 94, - (float)0.999000880319308, + (float)0.9990039713013892, PR_FALSE, "WINDOWS-1258", "vi" @@ -351,7 +351,7 @@ const SequenceModel VisciiVietnameseModel = Viscii_CharToOrderMap, VietnameseLangModel, 94, - (float)0.999000880319308, + (float)0.9990039713013892, PR_FALSE, "VISCII", "vi" @@ -364,8 +364,8 @@ const LanguageModel VietnameseModel = 188, VietnameseLangModel, 94, - 4, - (float)0.3451482480607094, + 6, + (float)0.4477746522151054, 57, - (float)0.03101094622486187, + (float)0.03172832235321948, }; |