diff options
author | grig <grig@yandex-team.ru> | 2022-02-10 16:50:24 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:50:24 +0300 |
commit | beb63ece3a6872dfbe113104f524ab6fdbec0adc (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 | |
parent | da383a4f674027527827ad076134241fc5da0cbf (diff) | |
download | ydb-beb63ece3a6872dfbe113104f524ab6fdbec0adc.tar.gz |
Restoring authorship annotation for <grig@yandex-team.ru>. Commit 2 of 2.
29 files changed, 1977 insertions, 1977 deletions
diff --git a/library/cpp/charset/codepage.cpp b/library/cpp/charset/codepage.cpp index 209de0c216..0431bef31b 100644 --- a/library/cpp/charset/codepage.cpp +++ b/library/cpp/charset/codepage.cpp @@ -264,10 +264,10 @@ void DoDecodeUnknownPlane(TxChar* str, TxChar*& ee, const ECharset enc) { TxChar* d; for (s = d = str; s < e;) { - size_t l = 0; + size_t l = 0; - if (utf8_read_rune_from_unknown_plane(*d, l, s, e) == RECODE_OK) { - d++, s += l; + if (utf8_read_rune_from_unknown_plane(*d, l, s, e) == RECODE_OK) { + d++, s += l; } else { *d++ = BROKEN_RUNE; ++s; @@ -317,7 +317,7 @@ void DecodeUnknownPlane(wchar16* str, wchar16*& ee, const ECharset enc) { void DecodeUnknownPlane(wchar32* str, wchar32*& ee, const ECharset enc) { DoDecodeUnknownPlane(str, ee, enc); } - + namespace { class THashSetType: public THashSet<TString> { public: @@ -332,37 +332,37 @@ namespace { } class TWindowsPrefixesHashSet: public THashSetType { -public: - inline TWindowsPrefixesHashSet() { +public: + inline TWindowsPrefixesHashSet() { Add("win"); Add("wincp"); Add("window"); - Add("windowcp"); + Add("windowcp"); Add("windows"); Add("windowscp"); - Add("ansi"); - Add("ansicp"); - } -}; - + Add("ansi"); + Add("ansicp"); + } +}; + class TCpPrefixesHashSet: public THashSetType { -public: - inline TCpPrefixesHashSet() { - Add("microsoft"); - Add("microsoftcp"); - Add("cp"); - } -}; - +public: + inline TCpPrefixesHashSet() { + Add("microsoft"); + Add("microsoftcp"); + Add("cp"); + } +}; + class TIsoPrefixesHashSet: public THashSetType { -public: - inline TIsoPrefixesHashSet() { - Add("iso"); - Add("isolatin"); - Add("latin"); - } -}; - +public: + inline TIsoPrefixesHashSet() { + Add("iso"); + Add("isolatin"); + Add("latin"); + } +}; + class TLatinToIsoHash: public THashMap<const char*, TString, ci_hash, ci_equal_to> { public: inline TLatinToIsoHash() { @@ -377,57 +377,57 @@ public: insert(value_type("latin9", "iso-8859-15")); insert(value_type("latin10", "iso-8859-16")); } -}; - +}; + static inline void NormalizeEncodingPrefixes(TString& enc) { - size_t preflen = enc.find_first_of("0123456789"); + size_t preflen = enc.find_first_of("0123456789"); if (preflen == TString::npos) - return; - + return; + TString prefix = enc.substr(0, preflen); - for (size_t i = 0; i < prefix.length(); ++i) { - if (prefix[i] == '-') { - prefix.remove(i--); - } - } - + for (size_t i = 0; i < prefix.length(); ++i) { + if (prefix[i] == '-') { + prefix.remove(i--); + } + } + if (Singleton<TWindowsPrefixesHashSet>()->Has(prefix)) { - enc.remove(0, preflen); - enc.prepend("windows-"); - return; - } - + enc.remove(0, preflen); + enc.prepend("windows-"); + return; + } + if (Singleton<TCpPrefixesHashSet>()->Has(prefix)) { if (enc.length() > preflen + 3 && !strncmp(enc.c_str() + preflen, "125", 3) && isdigit(enc[preflen + 3])) { - enc.remove(0, preflen); - enc.prepend("windows-"); - return; - } - enc.remove(0, preflen); - enc.prepend("cp"); - return; - } - + enc.remove(0, preflen); + enc.prepend("windows-"); + return; + } + enc.remove(0, preflen); + enc.prepend("cp"); + return; + } + if (Singleton<TIsoPrefixesHashSet>()->Has(prefix)) { - if (enc.length() == preflen + 1 || enc.length() == preflen + 2) { + if (enc.length() == preflen + 1 || enc.length() == preflen + 2) { TString enccopy = enc.substr(preflen); - enccopy.prepend("latin"); - const TLatinToIsoHash* latinhash = Singleton<TLatinToIsoHash>(); + enccopy.prepend("latin"); + const TLatinToIsoHash* latinhash = Singleton<TLatinToIsoHash>(); TLatinToIsoHash::const_iterator it = latinhash->find(enccopy.data()); - if (it != latinhash->end()) - enc.assign(it->second); - return; - } else if (enc.length() > preflen + 5 && enc[preflen] == '8') { - enc.remove(0, preflen); - enc.prepend("iso-"); - return; - } - } -} - + if (it != latinhash->end()) + enc.assign(it->second); + return; + } else if (enc.length() > preflen + 5 && enc[preflen] == '8') { + enc.remove(0, preflen); + enc.prepend("iso-"); + return; + } + } +} + class TEncodingNamesHashSet: public THashSetType { -public: - TEncodingNamesHashSet() { +public: + TEncodingNamesHashSet() { Add("iso-8859-1"); Add("iso-8859-2"); Add("iso-8859-3"); @@ -468,44 +468,44 @@ public: Add("big5"); Add("tis-620"); Add("tis620"); - } -}; - + } +}; + ECharset EncodingHintByName(const char* encname) { - if (!encname) - return CODES_UNKNOWN; // safety check - - // Common trouble: spurious "charset=" in the encoding name - if (!strnicmp(encname, "charset=", 8)) { - encname += 8; - } - - // Strip everything up to the first alphanumeric, and after the last one - while (*encname && !isalnum(*encname)) - ++encname; - - if (!*encname) - return CODES_UNKNOWN; - - const char* lastpos = encname + strlen(encname) - 1; - while (lastpos > encname && !isalnum(*lastpos)) - --lastpos; - - // Do some normalization + if (!encname) + return CODES_UNKNOWN; // safety check + + // Common trouble: spurious "charset=" in the encoding name + if (!strnicmp(encname, "charset=", 8)) { + encname += 8; + } + + // Strip everything up to the first alphanumeric, and after the last one + while (*encname && !isalnum(*encname)) + ++encname; + + if (!*encname) + return CODES_UNKNOWN; + + const char* lastpos = encname + strlen(encname) - 1; + while (lastpos > encname && !isalnum(*lastpos)) + --lastpos; + + // Do some normalization TString enc(encname, lastpos - encname + 1); - enc.to_lower(); + enc.to_lower(); for (char* p = enc.begin(); p != enc.end(); ++p) { - if (*p == ' ' || *p == '=' || *p == '_') - *p = '-'; - } - - NormalizeEncodingPrefixes(enc); - + if (*p == ' ' || *p == '=' || *p == '_') + *p = '-'; + } + + NormalizeEncodingPrefixes(enc); + ECharset hint = CharsetByName(enc.c_str()); - if (hint != CODES_UNKNOWN) - return hint; - + if (hint != CODES_UNKNOWN) + return hint; + if (Singleton<TEncodingNamesHashSet>()->Has(enc)) - return CODES_UNSUPPORTED; - return CODES_UNKNOWN; -} + return CODES_UNSUPPORTED; + return CODES_UNKNOWN; +} diff --git a/library/cpp/charset/codepage_ut.cpp b/library/cpp/charset/codepage_ut.cpp index f854d338ea..c3ac3ac478 100644 --- a/library/cpp/charset/codepage_ut.cpp +++ b/library/cpp/charset/codepage_ut.cpp @@ -6,7 +6,7 @@ #include <util/charset/utf8.h> #include <util/system/yassert.h> - + #if defined(_MSC_VER) #pragma warning(disable : 4309) /*truncation of constant value*/ #endif @@ -30,8 +30,8 @@ namespace { } class TCodepageTest: public TTestBase { -private: - UNIT_TEST_SUITE(TCodepageTest); +private: + UNIT_TEST_SUITE(TCodepageTest); UNIT_TEST(TestUTF); UNIT_TEST(TestUTFFromUnknownPlane); UNIT_TEST(TestBrokenMultibyte); @@ -42,14 +42,14 @@ private: UNIT_TEST(TestUpperLower); UNIT_TEST(TestBrokenRune); UNIT_TEST(TestCanEncode); - UNIT_TEST_SUITE_END(); - -public: - void TestUTF(); - void TestUTFFromUnknownPlane(); + UNIT_TEST_SUITE_END(); + +public: + void TestUTF(); + void TestUTFFromUnknownPlane(); void TestBrokenMultibyte(); void TestSurrogatePairs(); - void TestEncodingHints(); + void TestEncodingHints(); void TestToLower(); void TestToUpper(); @@ -71,55 +71,55 @@ public: void TestBrokenRune() { UNIT_ASSERT_VALUES_EQUAL(BROKEN_RUNE, 0xFFFDu); } -}; - -UNIT_TEST_SUITE_REGISTRATION(TCodepageTest); - -void TCodepageTest::TestUTF() { +}; + +UNIT_TEST_SUITE_REGISTRATION(TCodepageTest); + +void TCodepageTest::TestUTF() { for (wchar32 i = 0; i <= 0x10FFFF; i++) { - unsigned char buffer[32]; + unsigned char buffer[32]; Zero(buffer); - size_t rune_len; - size_t ref_len = 0; - - if (i < 0x80) - ref_len = 1; - else if (i < 0x800) - ref_len = 2; - else if (i < 0x10000) - ref_len = 3; - else - ref_len = 4; - + size_t rune_len; + size_t ref_len = 0; + + if (i < 0x80) + ref_len = 1; + else if (i < 0x800) + ref_len = 2; + else if (i < 0x10000) + ref_len = 3; + else + ref_len = 4; + RECODE_RESULT res = SafeWriteUTF8Char(i, rune_len, buffer, buffer + 32); - UNIT_ASSERT(res == RECODE_OK); - UNIT_ASSERT(rune_len == ref_len); - + UNIT_ASSERT(res == RECODE_OK); + UNIT_ASSERT(rune_len == ref_len); + res = SafeWriteUTF8Char(i, rune_len, buffer, buffer + ref_len - 1); - UNIT_ASSERT(res == RECODE_EOOUTPUT); - - wchar32 rune; + UNIT_ASSERT(res == RECODE_EOOUTPUT); + + wchar32 rune; res = SafeReadUTF8Char(rune, rune_len, buffer, buffer + 32); - UNIT_ASSERT(res == RECODE_OK); - UNIT_ASSERT(rune == i); - UNIT_ASSERT(rune_len == ref_len); - + UNIT_ASSERT(res == RECODE_OK); + UNIT_ASSERT(rune == i); + UNIT_ASSERT(rune_len == ref_len); + res = SafeReadUTF8Char(rune, rune_len, buffer, buffer + ref_len - 1); - UNIT_ASSERT(res == RECODE_EOINPUT); - - if (ref_len > 1) { + UNIT_ASSERT(res == RECODE_EOINPUT); + + if (ref_len > 1) { res = SafeReadUTF8Char(rune, rune_len, buffer + 1, buffer + ref_len); - UNIT_ASSERT(res == RECODE_BROKENSYMBOL); - - buffer[1] |= 0xC0; + UNIT_ASSERT(res == RECODE_BROKENSYMBOL); + + buffer[1] |= 0xC0; res = SafeReadUTF8Char(rune, rune_len, buffer, buffer + ref_len); - UNIT_ASSERT(res == RECODE_BROKENSYMBOL); - - buffer[1] &= 0x3F; + UNIT_ASSERT(res == RECODE_BROKENSYMBOL); + + buffer[1] &= 0x3F; res = SafeReadUTF8Char(rune, rune_len, buffer, buffer + ref_len); - UNIT_ASSERT(res == RECODE_BROKENSYMBOL); - } - } + UNIT_ASSERT(res == RECODE_BROKENSYMBOL); + } + } const char* badStrings[] = { "\xfe", "\xff", @@ -158,8 +158,8 @@ void TCodepageTest::TestUTF() { RECODE_RESULT res = SafeReadUTF8Char(rune, len, p, p + strlen(badStrings[i])); UNIT_ASSERT(res == RECODE_BROKENSYMBOL); } -} - +} + void TCodepageTest::TestBrokenMultibyte() { const ECharset cp = CODES_EUC_JP; @@ -180,24 +180,24 @@ void TCodepageTest::TestBrokenMultibyte() { UNIT_ASSERT(nread == Y_ARRAY_SIZE(bigSample)); } -void TCodepageTest::TestUTFFromUnknownPlane() { +void TCodepageTest::TestUTFFromUnknownPlane() { static const wchar32 sampletext[] = {0x61, 0x62, 0x63, 0x20, 0x430, 0x431, 0x432, 0x20, 0x1001, 0x1002, 0x1003, 0x20, 0x10001, 0x10002, 0x10003}; - - static const size_t BUFFER_SIZE = 1024; - char bytebuffer[BUFFER_SIZE]; - - size_t readchars = 0; - size_t writtenbytes = 0; + + static const size_t BUFFER_SIZE = 1024; + char bytebuffer[BUFFER_SIZE]; + + size_t readchars = 0; + size_t writtenbytes = 0; size_t samplelen = Y_ARRAY_SIZE(sampletext); RECODE_RESULT res = RecodeFromUnicode(CODES_UTF8, sampletext, bytebuffer, samplelen, BUFFER_SIZE, readchars, writtenbytes); - + UNIT_ASSERT(res == RECODE_OK); UNIT_ASSERT(samplelen == readchars); - + size_t writtenbytes2 = 0; char bytebuffer2[BUFFER_SIZE]; for (size_t i = 0; i != samplelen; ++i) { @@ -209,45 +209,45 @@ void TCodepageTest::TestUTFFromUnknownPlane() { } UNIT_ASSERT_VALUES_EQUAL(TStringBuf(bytebuffer, writtenbytes), TStringBuf(bytebuffer2, writtenbytes2)); - wchar32 charbuffer[BUFFER_SIZE]; - size_t readbytes = 0; - size_t writtenchars = 0; - + wchar32 charbuffer[BUFFER_SIZE]; + size_t readbytes = 0; + size_t writtenchars = 0; + res = RecodeToUnicode(CODES_UNKNOWNPLANE, bytebuffer, charbuffer, writtenbytes, BUFFER_SIZE, readbytes, writtenchars); - + UNIT_ASSERT(res == RECODE_OK); UNIT_ASSERT(readbytes == writtenbytes); - - wchar32* charbufferend = charbuffer + writtenchars; + + wchar32* charbufferend = charbuffer + writtenchars; DecodeUnknownPlane(charbuffer, charbufferend, CODES_UTF8); - + UNIT_ASSERT(charbufferend == charbuffer + samplelen); for (size_t i = 0; i < samplelen; ++i) UNIT_ASSERT(sampletext[i] == charbuffer[i]); - - // Now, concatenate the thing with an explicit character and retest + + // Now, concatenate the thing with an explicit character and retest res = RecodeToUnicode(CODES_UNKNOWNPLANE, bytebuffer, charbuffer, writtenbytes, BUFFER_SIZE, readbytes, writtenchars); UNIT_ASSERT(res == RECODE_OK); UNIT_ASSERT(readbytes == writtenbytes); - - charbuffer[writtenchars] = 0x1234; - - size_t morewrittenchars = 0; + + charbuffer[writtenchars] = 0x1234; + + size_t morewrittenchars = 0; res = RecodeToUnicode(CODES_UNKNOWNPLANE, bytebuffer, charbuffer + writtenchars + 1, writtenbytes, BUFFER_SIZE, readbytes, morewrittenchars); UNIT_ASSERT(res == RECODE_OK); UNIT_ASSERT(readbytes == writtenbytes); UNIT_ASSERT(writtenchars == morewrittenchars); - - charbuffer[2 * writtenchars + 1] = 0x5678; - - charbufferend = charbuffer + 2 * writtenchars + 2; + + charbuffer[2 * writtenchars + 1] = 0x5678; + + charbufferend = charbuffer + 2 * writtenchars + 2; DecodeUnknownPlane(charbuffer, charbufferend, CODES_UTF8); - + UNIT_ASSERT(charbufferend == charbuffer + 2 * samplelen + 2); - for (size_t i = 0; i < samplelen; ++i) { + for (size_t i = 0; i < samplelen; ++i) { UNIT_ASSERT(sampletext[i] == charbuffer[i]); UNIT_ASSERT(sampletext[i] == charbuffer[samplelen + 1 + i]); - } + } UNIT_ASSERT(0x1234 == charbuffer[samplelen]); UNIT_ASSERT(0x5678 == charbuffer[2 * samplelen + 1]); @@ -265,8 +265,8 @@ void TCodepageTest::TestUTFFromUnknownPlane() { UNIT_ASSERT_VALUES_EQUAL(wtr[i], sampletext[i]); } } -} - +} + static void TestSurrogates(const char* str, const wchar16* wide, size_t wideSize) { size_t sSize = strlen(str); size_t wSize = sSize * 2; @@ -298,24 +298,24 @@ void TCodepageTest::TestSurrogatePairs() { TestSurrogates(utf8NonBMP2, wNonBMPDummy2, Y_ARRAY_SIZE(wNonBMPDummy2)); } -void TCodepageTest::TestEncodingHints() { - UNIT_ASSERT(CODES_WIN == EncodingHintByName("windows-1251")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("Windows1251")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("WIN1251")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("window-cp1251")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("!!!CP1251???")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("'ansi-cp1251;'")); - UNIT_ASSERT(CODES_WIN == EncodingHintByName("charset=Microsoft-CP1251;")); - - UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-8859-2")); - UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-2")); - UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-latin-2")); - UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("charset=\"Latin2\";")); - - UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("widow1251")); - UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("default")); - UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("$phpcharset")); - +void TCodepageTest::TestEncodingHints() { + UNIT_ASSERT(CODES_WIN == EncodingHintByName("windows-1251")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("Windows1251")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("WIN1251")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("window-cp1251")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("!!!CP1251???")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("'ansi-cp1251;'")); + UNIT_ASSERT(CODES_WIN == EncodingHintByName("charset=Microsoft-CP1251;")); + + UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-8859-2")); + UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-2")); + UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("iso-latin-2")); + UNIT_ASSERT(CODES_ISO_EAST == EncodingHintByName("charset=\"Latin2\";")); + + UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("widow1251")); + UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("default")); + UNIT_ASSERT(CODES_UNKNOWN == EncodingHintByName("$phpcharset")); + UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("ShiftJIS")); UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("Shift_JIS")); UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("Big5")); @@ -324,7 +324,7 @@ void TCodepageTest::TestEncodingHints() { UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("charset='Shift_JIS';;")); UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("ISO-2022-KR")); UNIT_ASSERT(CODES_UNSUPPORTED != EncodingHintByName("ISO-2022-jp")); -} +} void TCodepageTest::TestToLower() { TTempBuf buf; diff --git a/library/cpp/charset/doccodes.h b/library/cpp/charset/doccodes.h index 5314a167ee..75c87adf9e 100644 --- a/library/cpp/charset/doccodes.h +++ b/library/cpp/charset/doccodes.h @@ -1,7 +1,7 @@ #pragma once enum ECharset { - CODES_UNSUPPORTED = -2, // valid but unsupported encoding + CODES_UNSUPPORTED = -2, // valid but unsupported encoding CODES_UNKNOWN = -1, // invalid or unspecified encoding CODES_WIN, // [ 0] WINDOWS_1251 Windows CODES_KOI8, // [ 1] KOI8_U Koi8-u diff --git a/library/cpp/charset/generated/cp_data.cpp b/library/cpp/charset/generated/cp_data.cpp index e60169ed26..202362c596 100644 --- a/library/cpp/charset/generated/cp_data.cpp +++ b/library/cpp/charset/generated/cp_data.cpp @@ -1,7 +1,7 @@ #include <library/cpp/charset/codepage.h> - -extern const char defchars[][DEFCHAR_BUF]; - + +extern const char defchars[][DEFCHAR_BUF]; + static const CodePage CODES_ALT_CODE_PAGE = { CODES_ALT, {"IBM866", "csIBM866", "cp866", "866", "dos-866", "alt", "windows-866",}, @@ -3244,9 +3244,9 @@ static const CodePage CODES_TIS620_CODE_PAGE = { }; // generated from tis620.txt static const CodePage CODES_UNKNOWNPLANE_CODE_PAGE = { - CODES_UNKNOWNPLANE, + CODES_UNKNOWNPLANE, {"unknownplane", "unknown-plane",}, - { + { 0x0000, 0xF001, 0xF002, 0xF003, 0xF004, 0xF005, 0xF006, 0xF007, 0xF008, 0xF009, 0xF00A, 0xF00B, 0xF00C, 0xF00D, 0xF00E, 0xF00F, 0xF010, 0xF011, 0xF012, 0xF013, 0xF014, 0xF015, 0xF016, 0xF017, @@ -3279,10 +3279,10 @@ static const CodePage CODES_UNKNOWNPLANE_CODE_PAGE = { 0xF0E8, 0xF0E9, 0xF0EA, 0xF0EB, 0xF0EC, 0xF0ED, 0xF0EE, 0xF0EF, 0xF0F0, 0xF0F1, 0xF0F2, 0xF0F3, 0xF0F4, 0xF0F5, 0xF0F6, 0xF0F7, 0xF0F8, 0xF0F9, 0xF0FA, 0xF0FB, 0xF0FC, 0xF0FD, 0xF0FE, 0xF0FF, - }, - defchars[0], + }, + defchars[0], }; // generated from unknown.txt - + static const CodePage CODES_UTF8_CODE_PAGE = { CODES_UTF8, {"utf-8",}, @@ -3307,7 +3307,7 @@ static const CodePage CODES_UTF_16LE_CODE_PAGE = { static const CodePage CODES_VISCII_CODE_PAGE = { CODES_VISCII, {"VISCII", "VISCII1.1-1", "CSVISCII",}, - { + { 0x0000, 0x0001, 0x1EB2, 0x0003, 0x0004, 0x1EB4, 0x1EAA, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x1EF6, 0x0015, 0x0016, 0x0017, @@ -3660,15 +3660,15 @@ static const CodePage CODES_YANDEX_CODE_PAGE = { 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - }, + }, defchars[1], }; // generated from yandex.txt - + const char defchars[][DEFCHAR_BUF] = { {"\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077"}, // generated from ascii_dc.txt {"\077\xA6\xB6\xA6\055\xB6\x9F\x9F\x9F\x9F\x9F\x9F\x9F\200\200\200\071\130\077\071\040\040\n\n\x1A\x1A\x1A\x1A\x1A\x1A\x1A\077\077\055\055\050\042\051\042\042\042\137\052\042\056\055\055\075\055\044\140\xB0\047\047\047\047\047"}, // generated from yandex_dc.txt -}; - +}; + const CodePage* const NCodepagePrivate::TCodePageData::AllCodePages[] = { &CODES_ALT_CODE_PAGE, &CODES_ARMSCII_CODE_PAGE, @@ -3783,6 +3783,6 @@ const CodePage* const NCodepagePrivate::TCodePageData::AllCodePages[] = { &CODES_WINDOWS_1257_CODE_PAGE, &CODES_WIN_EAST_CODE_PAGE, &CODES_YANDEX_CODE_PAGE, -}; +}; const CodePage& csYandex = CODES_YANDEX_CODE_PAGE; diff --git a/library/cpp/charset/generated/encrec_data.cpp b/library/cpp/charset/generated/encrec_data.cpp index 58ce2e5064..ca59f8ddef 100644 --- a/library/cpp/charset/generated/encrec_data.cpp +++ b/library/cpp/charset/generated/encrec_data.cpp @@ -1,101 +1,101 @@ #include <library/cpp/charset/codepage.h> - -extern const char defchars[][DEFCHAR_BUF]; + +extern const char defchars[][DEFCHAR_BUF]; static const char PP_00[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; -#define P00 (char*)PP_00 + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; +#define P00 (char*)PP_00 static const char PP_01[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000" "\000\000\244\000\246\247\000\251\000\253\254\255\256\000\260\261\000\000" "\000\265\266\267\000\000\000\273\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P01 (char*)PP_01 static const char PP_02[257] = "\000\250\200\201\252\275\262\257\243\212\214\216\215\000\241\217\300\301" - "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" - "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" + "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" "\370\371\372\373\374\375\376\377\000\270\220\203\272\276\263\277\274\232" "\234\236\235\000\242\237\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\245\264\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\245\264\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P02 (char*)PP_02 static const char PP_03[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\226\227\000\000\000\221\222\202\000\223\224\204\000\206\207\225\000" - "\000\000\205\000\000\000\000\000\000\000\000\000\211\000\000\000\000\000" - "\000\000\000\213\233\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\226\227\000\000\000\221\222\202\000\223\224\204\000\206\207\225\000" + "\000\000\205\000\000\000\000\000\000\000\000\000\211\000\000\000\000\000" + "\000\000\000\213\233\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\210\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P03 (char*)PP_03 static const char PP_04[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\271\000\000\000\000\000\000\000\000\000\000\000\231\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000"; #define P04 (char*)PP_04 static const char PP_05[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\232\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\232\000" "\000\000\000\000\000\000\000\277\000\000\000\000\000\000\234\000\235\000" "\000\000\000\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -105,82 +105,82 @@ static const char PP_05[257] = #define P05 (char*)PP_05 static const char PP_06[257] = "\000\263\000\000\264\000\266\267\000\000\000\000\000\000\000\000\341\342" - "\367\347\344\345\366\372\351\352\353\354\355\356\357\360\362\363\364\365" - "\346\350\343\376\373\375\377\371\370\374\340\361\301\302\327\307\304\305" - "\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336" + "\367\347\344\345\366\372\351\352\353\354\355\356\357\360\362\363\364\365" + "\346\350\343\376\373\375\377\371\370\374\340\361\301\302\327\307\304\305" + "\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336" "\333\335\337\331\330\334\300\321\000\243\000\000\244\000\246\247\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\275\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\275\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000"; #define P06 (char*)PP_06 static const char PP_07[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\225\226\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\227\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\230\231\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\225\226\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\227\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\230\231\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P07 (char*)PP_07 static const char PP_08[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\233\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\233\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P08 (char*)PP_08 static const char PP_09[257] = - "\200\000\201\000\000\000\000\000\000\000\000\000\202\000\000\000\203\000" - "\000\000\204\000\000\000\205\000\000\000\206\000\000\000\000\000\000\000" - "\207\000\000\000\000\000\000\000\210\000\000\000\000\000\000\000\211\000" - "\000\000\000\000\000\000\212\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\240\241\242\000\245\000\000\250\251\252" - "\253\254\000\256\257\260\261\262\000\265\000\000\270\271\272\273\274\000" - "\276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\213\000\000\000\214\000\000\000\215\000\000\000\216\000\000\000" - "\217\220\221\222\000\000\000\000\000\000\000\000\000\000\000\000\224\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\200\000\201\000\000\000\000\000\000\000\000\000\202\000\000\000\203\000" + "\000\000\204\000\000\000\205\000\000\000\206\000\000\000\000\000\000\000" + "\207\000\000\000\000\000\000\000\210\000\000\000\000\000\000\000\211\000" + "\000\000\000\000\000\000\212\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\240\241\242\000\245\000\000\250\251\252" + "\253\254\000\256\257\260\261\262\000\265\000\000\270\271\272\273\274\000" + "\276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\213\000\000\000\214\000\000\000\215\000\000\000\216\000\000\000" + "\217\220\221\222\000\000\000\000\000\000\000\000\000\000\000\000\224\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P09 (char*)PP_09 static const char PP_10[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000" "\000\000\375\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000" "\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -190,20 +190,20 @@ static const char PP_10[257] = #define P10 (char*)PP_10 static const char PP_11[257] = "\000\360\000\000\362\000\000\364\000\000\000\000\000\000\366\000\200\201" - "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223" - "\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245" - "\246\247\250\251\252\253\254\255\256\257\340\341\342\343\344\345\346\347" + "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223" + "\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245" + "\246\247\250\251\252\253\254\255\256\257\340\341\342\343\344\345\346\347" "\350\351\352\353\354\355\356\357\000\361\000\000\363\000\000\365\000\000" "\000\000\000\000\367\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P11 (char*)PP_11 static const char PP_12[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -214,64 +214,64 @@ static const char PP_12[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P12 (char*)PP_12 static const char PP_13[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\371\373\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\371\373\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P13 (char*)PP_13 static const char PP_14[257] = - "\304\000\263\000\000\000\000\000\000\000\000\000\332\000\000\000\277\000" - "\000\000\300\000\000\000\331\000\000\000\303\000\000\000\000\000\000\000" - "\264\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\301\000" - "\000\000\000\000\000\000\305\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\315\272\325\326\311\270\267\273\324\323" - "\310\276\275\274\306\307\314\265\266\271\321\322\313\317\320\312\330\327" - "\316\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\337\000\000\000\334\000\000\000\333\000\000\000\335\000\000\000" - "\336\260\261\262\000\000\000\000\000\000\000\000\000\000\000\000\376\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\304\000\263\000\000\000\000\000\000\000\000\000\332\000\000\000\277\000" + "\000\000\300\000\000\000\331\000\000\000\303\000\000\000\000\000\000\000" + "\264\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\301\000" + "\000\000\000\000\000\000\305\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\315\272\325\326\311\270\267\273\324\323" + "\310\276\275\274\306\307\314\265\266\271\321\322\313\317\320\312\330\327" + "\316\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\337\000\000\000\334\000\000\000\333\000\000\000\335\000\000\000" + "\336\260\261\262\000\000\000\000\000\000\000\000\000\000\000\000\376\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P14 (char*)PP_14 static const char PP_15[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\312\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\312\000" "\000\243\000\000\000\244\000\251\000\307\302\000\250\000\241\261\000\000" "\000\265\246\000\000\000\000\310\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\326\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000"; #define P15 (char*)PP_15 static const char PP_16[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -292,82 +292,82 @@ static const char PP_16[257] = #define P16 (char*)PP_16 static const char PP_17[257] = "\000\335\253\256\270\301\247\272\267\274\276\313\315\000\330\332\200\201" - "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223" - "\224\225\226\227\230\231\232\233\234\235\236\237\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223" + "\224\225\226\227\230\231\232\233\234\235\236\237\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" "\370\371\372\373\374\375\376\337\000\336\254\257\271\317\264\273\300\275" "\277\314\316\000\331\333\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\242\266\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P17 (char*)PP_17 static const char PP_18[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\320\321\000\000\000\324\325\000\000\322\323\327\000\240\000\245\000" - "\000\000\311\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\320\321\000\000\000\324\325\000\000\322\323\327\000\240\000\245\000" + "\000\000\311\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P18 (char*)PP_18 static const char PP_19[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\334\000\000\000\000\000\000\000\000\000\000\000\252\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P19 (char*)PP_19 static const char PP_20[257] = "\000\000\000\000\000\000\306\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\303\000\000\000\260\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\305\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\255\000\000\000\262\263\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\303\000\000\000\260\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\305\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\255\000\000\000\262\263\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P20 (char*)PP_20 static const char PP_21[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\000" "\000\000\000\000\000\375\000\000\000\000\000\255\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -377,20 +377,20 @@ static const char PP_21[257] = #define P21 (char*)PP_21 static const char PP_22[257] = "\000\241\242\243\244\245\246\247\250\251\252\253\254\000\256\257\260\261" - "\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303" - "\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325" - "\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347" + "\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303" + "\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325" + "\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347" "\350\351\352\353\354\355\356\357\000\361\362\363\364\365\366\367\370\371" "\372\373\374\000\376\377\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P22 (char*)PP_22 static const char PP_23[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -401,124 +401,124 @@ static const char PP_23[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P23 (char*)PP_23 static const char PP_24[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"; + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"; #define P24 (char*)PP_24 static const char PP_25[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\214\234\000\000\000\000\000\000" "\000\000\000\000\000\000\212\232\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\216" "\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P25 (char*)PP_25 static const char PP_26[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\230\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000"; #define P26 (char*)PP_26 static const char PP_27[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\226\227\000\000\000\221\222\202\000\223\224\204\000\206\207\225\000" - "\000\000\205\000\000\000\000\000\000\000\000\000\211\000\000\000\000\000" - "\000\000\000\213\233\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\226\227\000\000\000\221\222\202\000\223\224\204\000\206\207\225\000" + "\000\000\205\000\000\000\000\000\000\000\000\000\211\000\000\000\000\000" + "\000\000\000\213\233\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P27 (char*)PP_27 static const char PP_28[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\231\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P28 (char*)PP_28 static const char PP_29[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P29 (char*)PP_29 static const char PP_30[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000" "\000\000\244\000\246\247\250\251\000\253\254\255\256\000\260\261\000\000" @@ -543,35 +543,35 @@ static const char PP_31[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000"; #define P31 (char*)PP_31 static const char PP_32[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\242\377\000\262\000\275\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P32 (char*)PP_32 static const char PP_33[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\000" "\000\000\244\000\000\247\250\000\000\000\000\255\000\000\260\000\000\000" "\264\000\000\000\270\000\000\000\000\000\000\000\000\301\302\000\304\000" "\000\307\000\311\000\313\000\315\316\000\000\000\000\323\324\000\326\327" @@ -594,7 +594,7 @@ static const char PP_34[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000"; #define P34 (char*)PP_34 static const char PP_35[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -616,36 +616,36 @@ static const char PP_35[257] = static const char PP_36[257] = "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000" - "\000\000\000\000\000\247\000\000\141\000\000\217\000\000\260\000\062\063" - "\000\000\000\000\000\061\157\000\061\061\063\000\101\101\101\101\201\101" - "\000\103\105\105\105\105\111\111\111\111\000\116\117\242\117\117\202\000" - "\000\125\125\125\203\131\000\220\210\141\211\141\221\141\000\212\213\214" - "\215\230\151\151\231\232\000\156\157\262\233\157\222\000\000\234\165\235" - "\223\171\000\171"; + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000" + "\000\000\000\000\000\247\000\000\141\000\000\217\000\000\260\000\062\063" + "\000\000\000\000\000\061\157\000\061\061\063\000\101\101\101\101\201\101" + "\000\103\105\105\105\105\111\111\111\111\000\116\117\242\117\117\202\000" + "\000\125\125\125\203\131\000\220\210\141\211\141\221\141\000\212\213\214" + "\215\230\151\151\231\232\000\156\157\262\233\157\222\000\000\234\165\235" + "\223\171\000\171"; #define P36 (char*)PP_36 static const char PP_37[257] = - "\101\141\101\141\204\224\205\225\103\143\103\143\103\143\104\144\000\000" - "\105\145\105\145\105\145\206\226\105\145\107\147\107\147\107\147\107\147" - "\110\150\000\000\111\151\111\151\111\151\111\151\111\000\111\151\112\152" - "\113\153\000\114\154\114\154\114\154\114\154\207\227\241\261\116\156\116" - "\156\000\000\000\117\157\117\157\117\157\000\000\122\162\122\162\122\162" - "\243\263\123\163\123\163\123\163\124\164\124\164\000\000\125\165\125\165" - "\125\165\125\165\125\165\125\165\127\167\131\171\131\245\265\244\264\132" - "\172\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\117\157" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\125\165\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\104\104" + "\101\141\101\141\204\224\205\225\103\143\103\143\103\143\104\144\000\000" + "\105\145\105\145\105\145\206\226\105\145\107\147\107\147\107\147\107\147" + "\110\150\000\000\111\151\111\151\111\151\111\151\111\000\111\151\112\152" + "\113\153\000\114\154\114\154\114\154\114\154\207\227\241\261\116\156\116" + "\156\000\000\000\117\157\117\157\117\157\000\000\122\162\122\162\122\162" + "\243\263\123\163\123\163\123\163\124\164\124\164\000\000\125\165\125\165" + "\125\165\125\165\125\165\125\165\127\167\131\171\131\245\265\244\264\132" + "\172\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\117\157" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\125\165\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\104\104" "\144\114\114\154\116\116\156\101\141\111\151\117\157\125\165\125\165\125" "\165\125\165\125\165\000\101\141\101\141\000\000\000\000\107\147\113\153" - "\117\157\117\157\000\000\152\104\104\144\107\147\000\000\116\156\101\141" - "\000\000\000\000"; + "\117\157\117\157\000\000\152\104\104\144\107\147\000\000\116\156\101\141" + "\000\000\000\000"; #define P37 (char*)PP_37 static const char PP_38[257] = "\101\141\101\141\105\145\105\145\111\151\111\151\117\157\117\157\122\162" @@ -665,38 +665,38 @@ static const char PP_38[257] = "\000\000\000\000"; #define P38 (char*)PP_38 static const char PP_39[257] = - "\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P39 (char*)PP_39 static const char PP_40[257] = - "\305\250\000\303\256\000\255\257\000\000\000\000\312\310\254\000\300\301" - "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" - "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\345\270\000\343\276\000\275\277\000\000" - "\000\000\352\350\274\000\000\000\251\271\000\000\000\000\000\000\000\000" - "\246\266\000\000\000\000\252\272\253\273\253\273\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\216\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\306\346\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\300\340\300\340\000\000\305\345" - "\000\000\000\000\306\346\307\347\000\000\310\350\310\350\316\356\000\000" - "\000\000\335\375\323\363\323\363\323\363\327\367\000\000\333\373\000\000" - "\000\000\000\000"; + "\305\250\000\303\256\000\255\257\000\000\000\000\312\310\254\000\300\301" + "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" + "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\345\270\000\343\276\000\275\277\000\000" + "\000\000\352\350\274\000\000\000\251\271\000\000\000\000\000\000\000\000" + "\246\266\000\000\000\000\252\272\253\273\253\273\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\216\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\306\346\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\300\340\300\340\000\000\305\345" + "\000\000\000\000\306\346\307\347\000\000\310\350\310\350\316\356\000\000" + "\000\000\335\375\323\363\323\363\323\363\327\367\000\000\333\373\000\000" + "\000\000\000\000"; #define P40 (char*)PP_40 static const char PP_41[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -750,42 +750,42 @@ static const char PP_43[257] = "\000\000\000\000"; #define P43 (char*)PP_43 static const char PP_44[257] = - "\000\000\103\000\000\000\000\000\000\000\147\110\110\110\150\000\111\111" - "\114\154\000\116\267\000\000\120\121\122\122\122\000\000\000\000\000\000" - "\132\000\000\000\132\000\113\101\102\103\000\145\105\106\000\115\157\000" - "\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\104\144\145" + "\000\000\103\000\000\000\000\000\000\000\147\110\110\110\150\000\111\111" + "\114\154\000\116\267\000\000\120\121\122\122\122\000\000\000\000\000\000" + "\132\000\000\000\132\000\113\101\102\103\000\145\105\106\000\115\157\000" + "\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\104\144\145" "\151\152\000\000\000\000\000\000\061\061\061\061\062\061\062\063\064\061" - "\065\061\063\065\067\061\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\065\061\063\065\067\061\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\060\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P44 (char*)PP_44 static const char PP_45[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\061\062\063\064\065\066\067\070\071\061\061\061" "\061\061\061\061\061\061\061\062\061\062\063\064\065\066\067\070\071\061" "\061\061\061\061\061\061\061\061\061\062\061\062\063\064\065\066\067\070" "\071\061\061\061\061\061\061\061\061\061\061\062\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000"; #define P45 (char*)PP_45 static const char PP_46[257] = - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -829,10 +829,10 @@ static const char PP_48[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P48 (char*)PP_48 static const char PP_49[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -886,15 +886,15 @@ static const char PP_51[257] = "\000\000\000\000"; #define P51 (char*)PP_51 static const char PP_52[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000" + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000" "\000\000\317\000\000\375\000\000\000\256\000\360\000\000\000\000\000\000" "\000\000\000\000\000\000\000\257\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -904,20 +904,20 @@ static const char PP_52[257] = #define P52 (char*)PP_52 static const char PP_53[257] = "\000\205\201\203\207\211\213\215\217\221\223\225\227\000\231\233\241\243" - "\354\255\247\251\352\364\270\276\307\321\323\325\327\335\342\344\346\350" - "\253\266\245\374\366\372\237\362\356\370\235\340\240\242\353\254\246\250" - "\351\363\267\275\306\320\322\324\326\330\341\343\345\347\252\265\244\373" + "\354\255\247\251\352\364\270\276\307\321\323\325\327\335\342\344\346\350" + "\253\266\245\374\366\372\237\362\356\370\235\340\240\242\353\254\246\250" + "\351\363\267\275\306\320\322\324\326\330\341\343\345\347\252\265\244\373" "\365\371\236\361\355\367\234\336\000\204\200\202\206\210\212\214\216\220" "\222\224\226\000\230\232\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P53 (char*)PP_53 static const char PP_54[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" @@ -928,47 +928,47 @@ static const char PP_54[257] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P54 (char*)PP_54 static const char PP_55[257] = - "\304\000\263\000\000\000\000\000\000\000\000\000\332\000\000\000\277\000" - "\000\000\300\000\000\000\331\000\000\000\303\000\000\000\000\000\000\000" - "\264\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\301\000" - "\000\000\000\000\000\000\305\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\315\272\000\000\311\000\000\273\000\000" - "\310\000\000\274\000\000\314\000\000\271\000\000\313\000\000\312\000\000" - "\316\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\337\000\000\000\334\000\000\000\333\000\000\000\000\000\000\000" - "\000\260\261\262\000\000\000\000\000\000\000\000\000\000\000\000\376\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\304\000\263\000\000\000\000\000\000\000\000\000\332\000\000\000\277\000" + "\000\000\300\000\000\000\331\000\000\000\303\000\000\000\000\000\000\000" + "\264\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\301\000" + "\000\000\000\000\000\000\305\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\315\272\000\000\311\000\000\273\000\000" + "\310\000\000\274\000\000\314\000\000\271\000\000\313\000\000\312\000\000" + "\316\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\337\000\000\000\334\000\000\000\333\000\000\000\000\000\000\000" + "\000\260\261\262\000\000\000\000\000\000\000\000\000\000\000\000\376\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000"; #define P55 (char*)PP_55 static const char PP_56[257] = - "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"; + "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"; #define P56 (char*)PP_56 static const char PP_57[257] = "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" @@ -989,20 +989,20 @@ static const char PP_57[257] = #define P57 (char*)PP_57 static const char PP_58[257] = "\000\250\000\000\252\000\262\257\000\000\000\000\000\000\241\000\300\301" - "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" - "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323" + "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" "\370\371\372\373\374\375\376\377\000\270\000\000\272\000\263\277\000\000" "\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\201\203\000\000\243\274\000\000\215\235\000\000\000\000\000\000" - "\214\234\000\000\000\000\000\000\000\000\000\000\217\237\200\220\245\264" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" + "\000\000\201\203\000\000\243\274\000\000\215\235\000\000\000\000\000\000" + "\214\234\000\000\000\000\000\000\000\000\000\000\217\237\200\220\245\264" "\000\000\000\000\000\000\216\236\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" "\275\276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\232" "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000"; + "\000\000\000\000"; #define P58 (char*)PP_58 static const char PP_59[257] = "\000\250\000\201\252\275\262\257\243\000\000\000\000\000\241\000\300\301" @@ -4897,9 +4897,9 @@ static const char PP_287[257] = "\273\327\274\330\377\346\271\361\237\317\036\334\024\326\031\333\000\000" "\000\000\000\000"; #define P287 (char*)PP_287 - -static const Encoder encoder_00 = { //windows-1251 - { + +static const Encoder encoder_00 = { //windows-1251 + { P01, P00, P00, P00, P02, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -4932,13 +4932,13 @@ static const Encoder encoder_00 = { //windows-1251 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - + }, + defchars[0], + P00, +}; + static const Encoder encoder_01 = { //KOI8-U - { + { P05, P00, P00, P00, P06, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -4971,13 +4971,13 @@ static const Encoder encoder_01 = { //KOI8-U P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_02 = { //IBM866 - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_02 = { //IBM866 + { P10, P00, P00, P00, P11, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5010,13 +5010,13 @@ static const Encoder encoder_02 = { //IBM866 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_03 = { //MacCyrillic - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_03 = { //MacCyrillic + { P15, P16, P00, P00, P17, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5049,13 +5049,13 @@ static const Encoder encoder_03 = { //MacCyrillic P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_04 = { //ISO-8859-5 - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_04 = { //ISO-8859-5 + { P21, P00, P00, P00, P22, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5088,13 +5088,13 @@ static const Encoder encoder_04 = { //ISO-8859-5 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_05 = { //windows-1252 - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_05 = { //windows-1252 + { P24, P25, P26, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5127,13 +5127,13 @@ static const Encoder encoder_05 = { //windows-1252 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - + }, + defchars[0], + P00, +}; + static const Encoder encoder_06 = { //reserved3 - { + { P29, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5166,13 +5166,13 @@ static const Encoder encoder_06 = { //reserved3 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_07 = { //windows-1250 - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_07 = { //windows-1250 + { P30, P31, P32, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5205,13 +5205,13 @@ static const Encoder encoder_07 = { //windows-1250 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_08 = { //iso-2 - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_08 = { //iso-2 + { P33, P34, P35, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5244,13 +5244,13 @@ static const Encoder encoder_08 = { //iso-2 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_09 = { //yandex - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_09 = { //yandex + { P36, P37, P38, P39, P40, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5283,13 +5283,13 @@ static const Encoder encoder_09 = { //yandex P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P50, P00, P00, P00, P51, - }, - defchars[1], - P00, -}; - -static const Encoder encoder_12 = { //IBM855 - { + }, + defchars[1], + P00, +}; + +static const Encoder encoder_12 = { //IBM855 + { P52, P00, P00, P00, P53, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5322,13 +5322,13 @@ static const Encoder encoder_12 = { //IBM855 P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_14 = { //unknownplane - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_14 = { //unknownplane + { P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5361,13 +5361,13 @@ static const Encoder encoder_14 = { //unknownplane P00, P00, P00, P00, P00, P00, P00, P00, P56, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - -static const Encoder encoder_15 = { //windows-1251-k - { + }, + defchars[0], + P00, +}; + +static const Encoder encoder_15 = { //windows-1251-k + { P57, P00, P00, P00, P58, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, @@ -5400,11 +5400,11 @@ static const Encoder encoder_15 = { //windows-1251-k P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, P00, - }, - defchars[0], - P00, -}; - + }, + defchars[0], + P00, +}; + static const Encoder encoder_16 = { //windows-1251-t { P57, P00, P00, P00, P59, P00, P00, P00, @@ -8292,22 +8292,22 @@ static const Encoder encoder_89 = { //VISCII }; const Encoder* const NCodepagePrivate::TCodePageData::EncodeTo[] = { - &encoder_00, - &encoder_01, - &encoder_02, - &encoder_03, - &encoder_04, - &encoder_05, - &encoder_06, - &encoder_07, - &encoder_08, - &encoder_09, + &encoder_00, + &encoder_01, + &encoder_02, + &encoder_03, + &encoder_04, + &encoder_05, + &encoder_06, + &encoder_07, + &encoder_08, + &encoder_09, nullptr, nullptr, - &encoder_12, + &encoder_12, nullptr, - &encoder_14, - &encoder_15, + &encoder_14, + &encoder_15, &encoder_16, &encoder_17, &encoder_18, @@ -8405,108 +8405,108 @@ const Encoder* const NCodepagePrivate::TCodePageData::EncodeTo[] = { nullptr, nullptr, nullptr, -}; - -const struct Encoder &WideCharToYandex = encoder_09; - +}; + +const struct Encoder &WideCharToYandex = encoder_09; + const Recoder NCodepagePrivate::TCodePageData::rcdr_to_yandex[] = { {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\246\303\047\343\042\056\052\052\044\052\246\042\246\312\246\246" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\246\303\047\343\042\056\052\052\044\052\246\042\246\312\246\246" "\266\047\047\042\042\052\055\055\260\260\266\042\266\352\266\266\240\254" - "\274\246\044\216\260\247\250\260\256\042\075\217\260\257\260\075\255\275" + "\274\246\044\216\260\247\250\260\256\042\075\217\260\257\260\075\255\275" "\236\266\052\055\270\267\276\042\266\246\266\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" - "\260\260\260\075\260\075\075\075\075\075\240\075\260\062\055\075\260\260" - "\260\270\276\260\275\277\260\260\260\260\260\236\260\260\260\260\260\250" - "\256\260\255\257\260\260\260\260\260\216\260\260\376\340\341\366\344\345" - "\364\343\365\350\351\352\353\354\355\356\357\377\360\361\362\363\346\342" - "\374\373\347\370\375\371\367\372\336\300\301\326\304\305\324\303\325\310" - "\311\312\313\314\315\316\317\337\320\321\322\323\306\302\334\333\307\330" - "\335\331\327\332"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" - "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341" - "\342\343\344\345\346\347\350\351\352\353\354\355\356\357\260\260\260\260" - "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" - "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" - "\260\260\260\260\260\260\260\260\360\361\362\363\364\365\366\367\370\371" - "\372\373\374\375\376\377\250\270\256\276\257\277\254\274\260\075\055\075" - "\267\044\260\240"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" - "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\052\260" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" + "\260\260\260\075\260\075\075\075\075\075\240\075\260\062\055\075\260\260" + "\260\270\276\260\275\277\260\260\260\260\260\236\260\260\260\260\260\250" + "\256\260\255\257\260\260\260\260\260\216\260\260\376\340\341\366\344\345" + "\364\343\365\350\351\352\353\354\355\356\357\377\360\361\362\363\346\342" + "\374\373\347\370\375\371\367\372\336\300\301\326\304\305\324\303\325\310" + "\311\312\313\314\315\316\317\337\320\321\322\323\306\302\334\333\307\330" + "\335\331\327\332"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" + "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341" + "\342\343\344\345\346\347\350\351\352\353\354\355\356\357\260\260\260\260" + "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" + "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" + "\260\260\260\260\260\260\260\260\360\361\362\363\364\365\366\367\370\371" + "\372\373\374\375\376\377\250\270\256\276\257\277\254\274\260\075\055\075" + "\267\044\260\240"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" + "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\052\260" "\216\044\247\052\052\255\260\260\260\246\266\075\303\343\075\075\075\075" "\275\266\236\246\256\276\257\277\246\266\246\266\266\246\075\075\266\075" - "\075\042\042\056\240\246\266\312\352\266\055\055\042\042\047\047\075\042" - "\254\274\246\266\267\250\270\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\044"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032" - "\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\240\250" - "\246\303\256\246\255\257\246\246\246\246\312\217\254\246\300\301\302\303" - "\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325" - "\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347" - "\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371" - "\372\373\374\375\376\377\267\270\266\343\276\266\275\277\266\266\266\266" - "\352\247\274\266"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\075\042\042\056\240\246\266\312\352\266\055\055\042\042\047\047\075\042" + "\254\274\246\266\267\250\270\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\044"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032" + "\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\240\250" + "\246\303\256\246\255\257\246\246\246\246\312\217\254\246\300\301\302\303" + "\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325" + "\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347" + "\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371" + "\372\373\374\375\376\377\267\270\266\343\276\266\275\277\266\266\266\266" + "\352\247\274\266"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\044\260\047\266\042\056\052\052\266\052\123\042\246\260\132\260" "\260\047\047\042\042\052\055\055\140\260\163\042\266\260\172\131\240\052" - "\044\044\044\044\260\247\140\260\141\042\075\217\260\140\260\075\062\063" + "\044\044\044\044\260\247\140\260\141\042\075\217\260\140\260\075\062\063" "\140\266\052\055\140\061\157\042\061\061\063\052\101\101\101\101\201\101" - "\246\103\105\105\105\105\111\111\111\111\246\116\117\242\117\117\202\075" - "\246\125\125\125\203\131\246\220\210\141\211\141\221\141\266\212\213\214" - "\215\230\151\151\231\232\266\156\157\262\233\157\222\075\266\234\165\235" - "\223\171\266\171"},}, + "\246\103\105\105\105\105\111\111\111\111\246\116\117\242\117\117\202\075" + "\246\125\125\125\203\131\246\220\210\141\211\141\221\141\266\212\213\214" + "\215\230\151\151\231\232\266\156\157\262\233\157\222\075\266\234\165\235" + "\223\171\266\171"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" "\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260\260" @@ -8517,97 +8517,97 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_to_yandex[] = { "\260\260\260\260"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\044\260\047\260\042\056\052\052\260\052\123\042\243\124\132\245" "\260\047\047\042\042\052\055\055\260\260\163\042\263\164\172\265\240\055" - "\140\207\044\204\260\247\140\260\123\042\075\217\260\244\260\075\140\227" + "\140\207\044\204\260\247\140\260\123\042\075\217\260\244\260\075\140\227" "\140\266\052\055\140\224\163\042\114\140\154\264\122\101\101\101\201\114" - "\205\103\103\105\206\105\105\111\111\104\246\241\116\242\117\117\202\075" - "\122\125\125\125\203\131\124\220\162\141\211\141\221\154\225\212\143\214" - "\226\230\145\151\231\144\266\261\156\262\233\157\222\075\162\165\165\165" - "\223\171\164\140"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032" - "\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\240\204" - "\140\207\044\114\243\247\140\123\123\124\245\217\132\244\260\224\140\227" - "\140\154\263\055\140\163\163\164\265\140\172\264\122\101\101\101\201\114" - "\205\103\103\105\206\105\105\111\111\104\246\241\116\242\117\117\202\075" - "\122\125\125\125\203\131\124\220\162\141\211\141\221\154\225\212\143\214" - "\226\230\145\151\231\144\266\261\156\262\233\157\222\075\162\165\165\165" - "\223\171\164\140"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\266\246\343\303\270\250\276\256\266\246\275\255\277\257\266\246" - "\266\246\266\246\266\246\352\312\274\254\266\246\376\336\372\332\340\300" - "\341\301\366\326\344\304\345\305\364\324\343\303\042\042\260\260\260\260" - "\260\365\325\350\310\260\260\260\260\351\311\260\260\260\260\260\260\260" - "\352\312\260\260\260\260\260\260\260\044\353\313\354\314\355\315\356\316" - "\357\260\260\260\260\317\377\260\337\360\320\361\321\362\322\363\323\346" - "\306\342\302\374\334\267\217\373\333\347\307\370\330\375\335\371\331\367" - "\327\247\260\240"},}, -{{},}, -{{"\000\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\246\246\047\266\042\056\052\052\044\052\246\042\246\246\246\246" - "\266\047\047\042\042\052\055\055\032\260\266\042\266\266\266\266\240\254" - "\274\246\044\246\260\247\250\260\256\042\075\217\260\257\260\075\255\275" + "\205\103\103\105\206\105\105\111\111\104\246\241\116\242\117\117\202\075" + "\122\125\125\125\203\131\124\220\162\141\211\141\221\154\225\212\143\214" + "\226\230\145\151\231\144\266\261\156\262\233\157\222\075\162\165\165\165" + "\223\171\164\140"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032" + "\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\032\240\204" + "\140\207\044\114\243\247\140\123\123\124\245\217\132\244\260\224\140\227" + "\140\154\263\055\140\163\163\164\265\140\172\264\122\101\101\101\201\114" + "\205\103\103\105\206\105\105\111\111\104\246\241\116\242\117\117\202\075" + "\122\125\125\125\203\131\124\220\162\141\211\141\221\154\225\212\143\214" + "\226\230\145\151\231\144\266\261\156\262\233\157\222\075\162\165\165\165" + "\223\171\164\140"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\266\246\343\303\270\250\276\256\266\246\275\255\277\257\266\246" + "\266\246\266\246\266\246\352\312\274\254\266\246\376\336\372\332\340\300" + "\341\301\366\326\344\304\345\305\364\324\343\303\042\042\260\260\260\260" + "\260\365\325\350\310\260\260\260\260\351\311\260\260\260\260\260\260\260" + "\352\312\260\260\260\260\260\260\260\044\353\313\354\314\355\315\356\316" + "\357\260\260\260\260\317\377\260\337\360\320\361\321\362\322\363\323\346" + "\306\342\302\374\334\267\217\373\333\347\307\370\330\375\335\371\331\367" + "\327\247\260\240"},}, +{{},}, +{{"\000\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\246\246\047\266\042\056\052\052\044\052\246\042\246\246\246\246" + "\266\047\047\042\042\052\055\055\032\260\266\042\266\266\266\266\240\254" + "\274\246\044\246\260\247\250\260\256\042\075\217\260\257\260\075\255\275" "\266\266\052\055\270\267\276\042\266\246\266\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" @@ -9741,184 +9741,178 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_to_yandex[] = { {{},}, {{},}, {{},}, -}; - +}; + const Recoder NCodepagePrivate::TCodePageData::rcdr_from_yandex[] = { {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\245\255" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\264\077\240\077" "\077\077\077\077\077\247\250\077\077\077\241\262\252\257\260\077\077\077" "\077\077\077\271\270\077\077\077\242\263\272\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\275\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\255\077\232\077" "\077\077\077\077\077\077\263\077\077\077\077\266\264\267\234\077\077\077" "\077\077\077\077\243\077\077\077\077\246\244\247\341\342\367\347\344\345" - "\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376" - "\373\375\377\371\370\374\340\361\301\302\327\307\304\305\326\332\311\312" - "\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\337\331" - "\330\334\300\321"},}, + "\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376" + "\373\375\377\371\370\374\340\361\301\302\327\307\304\305\326\332\311\312" + "\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\337\331" + "\330\334\300\321"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\377\077" "\077\077\077\077\077\077\360\077\077\077\366\077\362\364\370\077\077\077" "\077\077\077\374\361\077\077\077\367\077\363\365\200\201\202\203\204\205" - "\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227" - "\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251" - "\252\253\254\255\256\257\340\341\342\343\344\345\346\347\350\351\352\353" - "\354\355\356\357"},}, + "\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227" + "\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251" + "\252\253\254\255\256\257\340\341\342\343\344\345\346\347\350\351\352\353" + "\354\355\356\357"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\242\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\266\077\312\077" "\077\077\077\077\077\244\335\077\077\077\330\247\270\272\241\077\077\077" "\077\077\077\334\336\077\077\077\331\264\271\273\200\201\202\203\204\205" - "\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227" - "\230\231\232\233\234\235\236\237\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\337"},}, + "\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227" + "\230\231\232\233\234\235\236\237\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\337"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\255" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\240\077" "\077\077\077\077\077\375\241\077\077\077\256\246\244\247\077\077\077\077" "\077\077\077\360\361\077\077\077\376\366\364\367\260\261\262\263\264\265" - "\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307" - "\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331" - "\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353" - "\354\355\356\357"},}, + "\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307" + "\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331" + "\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353" + "\354\355\356\357"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\304\326\334\077\077\077\077\340\342\347\350\351\352\077\255" "\337\344\366\374\077\077\077\077\353\356\357\364\371\373\077\077\240\077" "\323\077\077\077\077\247\077\077\077\077\077\077\077\077\260\077\363\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\304\326\334\245\306\312\243\077\342\347\077\351\077\077\255" "\337\344\366\374\271\346\352\263\353\356\077\364\077\077\077\077\240\321" - "\323\214\257\217\077\247\077\077\077\077\077\077\077\077\260\361\363\234" - "\277\237\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\323\214\257\217\077\247\077\077\077\077\077\077\077\077\260\361\363\234" + "\277\237\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\304\326\334\241\306\312\243\077\342\347\077\351\077\077\255" "\337\344\366\374\261\346\352\263\353\356\077\364\077\077\077\077\240\321" - "\323\246\257\254\077\247\077\077\077\077\077\077\077\077\260\361\363\266" - "\277\274\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\323\246\257\254\077\247\077\077\077\077\077\077\077\077\260\361\363\266" + "\277\274\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\360" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\377\077" "\077\077\077\077\077\375\205\077\077\077\231\213\207\215\077\077\077\077" "\077\077\077\357\204\077\077\077\230\212\206\214\241\243\354\255\247\251" - "\352\364\270\276\307\321\323\325\327\335\342\344\346\350\253\266\245\374" - "\366\372\237\362\356\370\235\340\240\242\353\254\246\250\351\363\267\275" - "\306\320\322\324\326\330\341\343\345\347\252\265\244\373\365\371\236\361" - "\355\367\234\336"},}, + "\352\364\270\276\307\321\323\325\327\335\342\344\346\350\253\266\245\374" + "\366\372\237\362\356\370\235\340\240\242\353\254\246\250\351\363\267\275" + "\306\320\322\324\326\330\341\343\345\347\252\265\244\373\365\371\236\361" + "\355\367\234\336"},}, {{},}, {{"\000\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" @@ -9926,22 +9920,28 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_from_yandex[] = { "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" - "\077\077\077\077"},}, + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077" + "\077\077\077\077"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\255" "\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\240\077" "\077\077\077\077\077\247\250\077\077\077\241\262\252\257\260\077\077\077" "\077\077\077\271\270\077\077\077\242\263\272\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" @@ -11075,207 +11075,207 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_from_yandex[] = { {{},}, {{},}, {{},}, -}; - +}; + const Recoder NCodepagePrivate::TCodePageData::rcdr_to_lower[] = { -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\220\203\202\203\204\205\206\207\210\211\232\213\234\235\236\237" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\242" - "\242\274\244\264\246\247\270\251\272\253\254\255\256\277\260\261\263\263" - "\264\265\266\267\270\271\272\273\274\276\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" - "\244\265\246\247\270\271\272\273\274\255\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257" - "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\361\361\363\363\365\365\367\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357" - "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\337\240\241" +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\220\203\202\203\204\205\206\207\210\211\232\213\234\235\236\237" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\242" + "\242\274\244\264\246\247\270\251\272\253\254\255\256\277\260\261\263\263" + "\264\265\266\267\270\271\272\273\274\276\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" + "\244\265\246\247\270\271\272\273\274\255\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257" + "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\361\361\363\363\365\365\367\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357" + "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\337\240\241" "\266\243\244\245\246\264\250\251\252\254\254\255\257\257\260\261\262\263" - "\264\265\266\300\271\271\273\273\275\275\277\277\300\317\302\303\304\305" - "\306\307\310\311\312\314\314\316\316\317\320\321\322\323\324\325\326\327" - "\331\331\333\333\334\336\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\361" - "\362\363\364\365\366\367\370\371\372\373\374\255\376\377\320\321\322\323" - "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\232\213\234\215\236\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\377\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" - "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\264\265\266\300\271\271\273\273\275\275\277\277\300\317\302\303\304\305" + "\306\307\310\311\312\314\314\316\316\317\320\321\322\323\324\325\326\327" + "\331\331\333\333\334\336\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\361" + "\362\363\364\365\366\367\370\371\372\373\374\255\376\377\320\321\322\323" + "\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\232\213\234\215\236\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\377\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" + "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\232\213\234\235\236\237" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\263\244\271\246\247\250\251\272\253\254\255\256\277\260\261\262\263" - "\264\265\266\267\270\271\272\273\276\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" - "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\261" - "\242\263\244\265\266\247\250\271\272\273\274\255\276\277\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" - "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\221\222\223\224\225\226\227\210\211\212\213\214\215\236\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\261" - "\262\263\264\265\266\247\270\271\272\273\274\275\276\277\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\200\202\202\204\204\206\206\210\210\212\212\214\214\216\216" - "\220\220\222\222\224\224\226\226\230\230\232\232\234\234\236\236\240\240" - "\242\242\244\244\246\246\250\250\252\252\254\254\256\257\260\261\262\263" - "\264\265\265\267\267\271\272\273\274\275\275\277\300\301\302\303\304\305" - "\306\306\310\311\312\313\314\315\316\317\320\320\322\322\324\324\326\326" - "\330\331\332\333\334\330\336\337\336\341\341\343\343\345\345\347\347\351" - "\351\353\353\355\355\357\360\361\361\363\363\365\365\367\367\371\371\373" - "\373\375\376\377"},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" - "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" - "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\220\203\202\203\204\205\206\207\210\211\232\213\234\235\236\237" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\242" - "\242\274\244\264\246\247\270\251\272\253\254\255\256\277\260\261\263\263" - "\264\265\266\267\270\271\272\273\274\276\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\232\213\234\235\236\237" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\263\244\271\246\247\250\251\272\253\254\255\256\277\260\261\262\263" + "\264\265\266\267\270\271\272\273\276\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" + "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\261" + "\242\263\244\265\266\247\250\271\272\273\274\255\276\277\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\327" + "\370\371\372\373\374\375\376\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\221\222\223\224\225\226\227\210\211\212\213\214\215\236\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\261" + "\262\263\264\265\266\247\270\271\272\273\274\275\276\277\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\200\202\202\204\204\206\206\210\210\212\212\214\214\216\216" + "\220\220\222\222\224\224\226\226\230\230\232\232\234\234\236\236\240\240" + "\242\242\244\244\246\246\250\250\252\252\254\254\256\257\260\261\262\263" + "\264\265\265\267\267\271\272\273\274\275\275\277\300\301\302\303\304\305" + "\306\306\310\311\312\313\314\315\316\317\320\320\322\322\324\324\326\326" + "\330\331\332\333\334\330\336\337\336\341\341\343\343\345\345\347\347\351" + "\351\353\353\355\355\357\360\361\361\363\363\365\365\367\367\371\371\373" + "\373\375\376\377"},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\141\142\143\144\145\146\147" + "\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171" + "\172\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\220\203\202\203\204\205\206\207\210\211\232\213\234\235\236\237" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\242" + "\242\274\244\264\246\247\270\251\272\253\254\255\256\277\260\261\263\263" + "\264\265\266\267\270\271\272\273\274\276\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" @@ -12409,207 +12409,207 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_to_lower[] = { {{},}, {{},}, {{},}, -}; - +}; + const Recoder NCodepagePrivate::TCodePageData::rcdr_to_upper[] = { -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" - "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" - "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\263\264\245\266\267\250\251\252\253\254\275\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\200\201" - "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\220\221\222\223\224\225\226\227\230\231" - "\232\233\234\235\236\237\360\360\362\362\364\364\366\366\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\253\255\256\256\260\261\262\263" +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" + "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" + "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\263\264\245\266\267\250\251\252\253\254\275\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\200\201" + "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\220\221\222\223\224\225\226\227\230\231" + "\232\233\234\235\236\237\360\360\362\362\364\364\366\366\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\253\255\256\256\260\261\262\263" "\247\265\242\267\270\270\272\272\274\274\276\276\267\301\302\303\304\305" - "\306\307\310\311\312\313\313\315\315\301\320\321\322\323\324\325\326\327" - "\330\330\332\332\334\335\335\237\200\201\202\203\204\205\206\207\210\211" - "\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233" - "\234\235\236\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\260\261\262\263\264\265\266\267" - "\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\360\241\242\243\244\245\246\247\250\251\252\253" - "\254\375\256\257"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\212\233\214\235\216\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\237"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\306\307\310\311\312\313\313\315\315\301\320\321\322\323\324\325\326\327" + "\330\330\332\332\334\335\335\237\200\201\202\203\204\205\206\207\210\211" + "\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233" + "\234\235\236\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\260\261\262\263\264\265\266\267" + "\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\360\241\242\243\244\245\246\247\250\251\252\253" + "\254\375\256\257"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\212\233\214\235\216\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\237"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" + "\264\265\266\267\270\245\252\273\274\275\274\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\262\243" + "\264\245\246\267\270\251\252\253\254\275\256\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\101\101\103\105\105\105\216\217" + "\220\201\202\203\204\205\206\207\105\111\111\117\125\125\216\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\242\243" + "\244\245\246\267\250\251\252\253\254\255\256\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, +{{},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\201\201\203\203\205\205\207\207\211\211\213\213\215\215\217\217" + "\221\221\223\223\225\225\227\227\231\231\233\233\235\235\237\237\241\241" + "\243\243\245\245\247\247\251\251\253\253\255\255\256\257\260\261\262\263" + "\264\266\266\270\270\271\272\273\274\276\276\277\300\301\302\303\304\305" + "\307\307\310\311\312\313\314\315\316\317\321\321\323\323\325\325\327\327" + "\335\331\332\333\334\335\340\337\340\342\342\344\344\346\346\350\350\352" + "\352\354\354\356\356\357\360\362\362\364\364\366\366\370\370\372\372\374" + "\374\375\376\377"},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" - "\264\265\266\267\270\245\252\273\274\275\274\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\262\243" - "\264\245\246\267\270\251\252\253\254\275\256\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\101\101\103\105\105\105\216\217" - "\220\201\202\203\204\205\206\207\105\111\111\117\125\125\216\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\242\243" - "\244\245\246\267\250\251\252\253\254\255\256\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, -{{},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\201\201\203\203\205\205\207\207\211\211\213\213\215\215\217\217" - "\221\221\223\223\225\225\227\227\231\231\233\233\235\235\237\237\241\241" - "\243\243\245\245\247\247\251\251\253\253\255\255\256\257\260\261\262\263" - "\264\266\266\270\270\271\272\273\274\276\276\277\300\301\302\303\304\305" - "\307\307\310\311\312\313\314\315\316\317\321\321\323\323\325\325\327\327" - "\335\331\332\333\334\335\340\337\340\342\342\344\344\346\346\350\350\352" - "\352\354\354\356\356\357\360\362\362\364\364\366\366\370\370\372\372\374" - "\374\375\376\377"},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" - "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" - "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" + "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" + "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" @@ -13743,207 +13743,207 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_to_upper[] = { {{},}, {{},}, {{},}, -}; - +}; + const Recoder NCodepagePrivate::TCodePageData::rcdr_to_title[] = { -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" - "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" - "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\263\264\245\266\267\250\251\252\253\254\275\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" - "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" - "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\200\201" - "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\220\221\222\223\224\225\226\227\230\231" - "\232\233\234\235\236\237\360\360\362\362\364\364\366\366\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\253\255\256\256\260\261\262\263" +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" + "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" + "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\263\264\245\266\267\250\251\252\253\254\275\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\340\341\342\343\344\345" + "\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367" + "\370\371\372\373\374\375\376\377\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\200\201" + "\202\203\204\205\206\207\210\211\212\213\214\215\216\217\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\220\221\222\223\224\225\226\227\230\231" + "\232\233\234\235\236\237\360\360\362\362\364\364\366\366\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\253\255\256\256\260\261\262\263" "\247\265\242\267\270\270\272\272\274\274\276\276\267\301\302\303\304\305" - "\306\307\310\311\312\313\313\315\315\301\320\321\322\323\324\325\326\327" - "\330\330\332\332\334\335\335\237\200\201\202\203\204\205\206\207\210\211" - "\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233" - "\234\235\236\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\260\261\262\263\264\265\266\267" - "\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\360\241\242\243\244\245\246\247\250\251\252\253" - "\254\375\256\257"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\212\233\214\235\216\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\237"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\306\307\310\311\312\313\313\315\315\301\320\321\322\323\324\325\326\327" + "\330\330\332\332\334\335\335\237\200\201\202\203\204\205\206\207\210\211" + "\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233" + "\234\235\236\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\260\261\262\263\264\265\266\267" + "\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\360\241\242\243\244\245\246\247\250\251\252\253" + "\254\375\256\257"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\212\233\214\235\216\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\237"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" + "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" + "\374\375\376\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" + "\264\265\266\267\270\245\252\273\274\275\274\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\262\243" + "\264\245\246\267\270\251\252\253\254\275\256\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" + "\334\335\336\377"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\101\101\103\105\105\105\216\217" + "\220\201\202\203\204\205\206\207\105\111\111\117\125\125\216\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\242\243" + "\244\245\246\267\250\251\252\253\254\255\256\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, +{{},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\201\201\203\203\205\205\207\207\211\211\213\213\215\215\217\217" + "\221\221\223\223\225\225\227\227\231\231\233\233\235\235\237\237\241\241" + "\243\243\245\245\247\247\251\251\253\253\255\255\256\257\260\261\262\263" + "\264\266\266\270\270\271\272\273\274\276\276\277\300\301\302\303\304\305" + "\307\307\310\311\312\313\314\315\316\317\321\321\323\323\325\325\327\327" + "\335\331\332\333\334\335\340\337\340\342\342\344\344\346\346\350\350\352" + "\352\354\354\356\356\357\360\362\362\364\364\366\366\370\370\372\372\374" + "\374\375\376\377"},}, +{{},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" + "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" + "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" + "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" + "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" + "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\243" - "\264\265\266\267\270\245\252\273\274\275\274\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\262\243" - "\264\245\246\267\270\251\252\253\254\275\256\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\367\330\331\332\333" - "\334\335\336\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\101\101\103\105\105\105\216\217" - "\220\201\202\203\204\205\206\207\105\111\111\117\125\125\216\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\241\242\243" - "\244\245\246\267\250\251\252\253\254\255\256\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, -{{},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\201\201\203\203\205\205\207\207\211\211\213\213\215\215\217\217" - "\221\221\223\223\225\225\227\227\231\231\233\233\235\235\237\237\241\241" - "\243\243\245\245\247\247\251\251\253\253\255\255\256\257\260\261\262\263" - "\264\266\266\270\270\271\272\273\274\276\276\277\300\301\302\303\304\305" - "\307\307\310\311\312\313\314\315\316\317\321\321\323\323\325\325\327\327" - "\335\331\332\333\334\335\340\337\340\342\342\344\344\346\346\350\350\352" - "\352\354\354\356\356\357\360\362\362\364\364\366\366\370\370\372\372\374" - "\374\375\376\377"},}, -{{},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153" - "\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175" - "\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217" - "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241" - "\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263" - "\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351" - "\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373" - "\374\375\376\377"},}, -{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" - "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" - "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" - "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" - "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" - "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" - "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" - "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" - "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" - "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" - "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" - "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" - "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" - "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" - "\334\335\336\337"},}, +{{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" + "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" + "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" + "\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107" + "\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131" + "\132\133\134\135\136\137\140\101\102\103\104\105\106\107\110\111\112\113" + "\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\173\174\175" + "\176\177\200\201\202\201\204\205\206\207\210\211\212\213\214\215\216\217" + "\200\221\222\223\224\225\226\227\230\231\212\233\214\215\216\217\240\241" + "\241\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\262" + "\245\265\266\267\250\271\252\273\243\275\275\257\300\301\302\303\304\305" + "\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327" + "\330\331\332\333\334\335\336\337\300\301\302\303\304\305\306\307\310\311" + "\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333" + "\334\335\336\337"},}, {{"\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021" "\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043" "\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065" @@ -15077,4 +15077,4 @@ const Recoder NCodepagePrivate::TCodePageData::rcdr_to_title[] = { {{},}, {{},}, {{},}, -}; +}; diff --git a/library/cpp/containers/comptrie/comptrie.h b/library/cpp/containers/comptrie/comptrie.h index a37dcee421..f77024327e 100644 --- a/library/cpp/containers/comptrie/comptrie.h +++ b/library/cpp/containers/comptrie/comptrie.h @@ -1,4 +1,4 @@ #pragma once - + #include "comptrie_trie.h" #include "comptrie_builder.h" diff --git a/library/cpp/containers/comptrie/comptrie_builder.h b/library/cpp/containers/comptrie/comptrie_builder.h index 156f93db39..cf7d2e39a3 100644 --- a/library/cpp/containers/comptrie/comptrie_builder.h +++ b/library/cpp/containers/comptrie/comptrie_builder.h @@ -1,5 +1,5 @@ #pragma once - + #include "comptrie_packer.h" #include "minimize.h" #include "key_selector.h" @@ -12,7 +12,7 @@ // is created incrementally. It actually helps a lot to have the input data prefix-grouped // by key; otherwise, memory consumption becomes a tough issue. // NOTE: building and serializing the automaton may be lengthy, and takes lots of memory. - + // PREFIX_GROUPED means that if we, while constructing a trie, add to the builder two keys with the same prefix, // then all the keys that we add between these two also have the same prefix. // Actually in this mode the builder can accept even more freely ordered input, @@ -45,16 +45,16 @@ public: typedef S TPacker; typedef typename TCompactTrieKeySelector<TSymbol>::TKey TKey; typedef typename TCompactTrieKeySelector<TSymbol>::TKeyBuf TKeyBuf; - + explicit TCompactTrieBuilder(TCompactTrieBuilderFlags flags = CTBF_NONE, TPacker packer = TPacker(), IAllocator* alloc = TDefaultAllocator::Instance()); - + // All Add.. methods return true if it was a new key, false if the key already existed. bool Add(const TSymbol* key, size_t keylen, const TData& value); bool Add(const TKeyBuf& key, const TData& value) { return Add(key.data(), key.size(), value); } - + // add already serialized data bool AddPtr(const TSymbol* key, size_t keylen, const char* data); bool AddPtr(const TKeyBuf& key, const char* data) { @@ -80,14 +80,14 @@ public: bool FindLongestPrefix(const TKeyBuf& key, size_t* prefixLen, TData* value = nullptr) const { return FindLongestPrefix(key.data(), key.size(), prefixLen, value); } - + size_t Save(IOutputStream& os) const; size_t SaveAndDestroy(IOutputStream& os); size_t SaveToFile(const TString& fileName) const { TFixedBufferFileOutput out(fileName); return Save(out); } - + void Clear(); // Returns all memory to the system and resets the builder state. size_t GetEntryCount() const; @@ -101,8 +101,8 @@ public: protected: class TCompactTrieBuilderImpl; THolder<TCompactTrieBuilderImpl> Impl; -}; - +}; + //---------------------------------------------------------------------------------------------------------------------- // Minimize the trie. The result is equivalent to the original // trie, except that it takes less space (and has marginally lower @@ -119,7 +119,7 @@ protected: template <class TPacker> size_t CompactTrieMinimize(IOutputStream& os, const char* data, size_t datalength, bool verbose = false, const TPacker& packer = TPacker(), NCompactTrie::EMinimizeMode mode = NCompactTrie::MM_DEFAULT); - + template <class TTrieBuilder> size_t CompactTrieMinimize(IOutputStream& os, const TTrieBuilder& builder, bool verbose = false); diff --git a/library/cpp/containers/comptrie/comptrie_builder.inl b/library/cpp/containers/comptrie/comptrie_builder.inl index a0c1097862..f273fa6571 100644 --- a/library/cpp/containers/comptrie/comptrie_builder.inl +++ b/library/cpp/containers/comptrie/comptrie_builder.inl @@ -1,5 +1,5 @@ #pragma once - + #include "comptrie_impl.h" #include "comptrie_trie.h" #include "make_fast_layout.h" @@ -618,7 +618,7 @@ typename TCompactTrieBuilder<T, D, S>::TCompactTrieBuilderImpl::TNode* } else { ConvertSymbolArrayToChar(key, keylen, ckeybuf, ckeylen); } - + char* ckey = ckeybuf.Data(); TNode* next; @@ -907,9 +907,9 @@ ui64 TCompactTrieBuilder<T, D, S>::TCompactTrieBuilderImpl::ArcMeasure( size_t leftoffsetsize = leftsize ? MeasureOffset(coresize + treesize) : 0; size_t rightoffsetsize = rightsize ? MeasureOffset(coresize + treesize + leftsize) : 0; leftoffsetsize = leftsize ? MeasureOffset(coresize + treesize + leftoffsetsize + rightoffsetsize) : 0; - rightoffsetsize = rightsize ? MeasureOffset(coresize + treesize + leftsize + leftoffsetsize + rightoffsetsize) : 0; + rightoffsetsize = rightsize ? MeasureOffset(coresize + treesize + leftsize + leftoffsetsize + rightoffsetsize) : 0; leftoffsetsize = leftsize ? MeasureOffset(coresize + treesize + leftoffsetsize + rightoffsetsize) : 0; - rightoffsetsize = rightsize ? MeasureOffset(coresize + treesize + leftsize + leftoffsetsize + rightoffsetsize) : 0; + rightoffsetsize = rightsize ? MeasureOffset(coresize + treesize + leftsize + leftoffsetsize + rightoffsetsize) : 0; coresize += leftoffsetsize + rightoffsetsize; thiz->LeftOffset = leftsize ? coresize + treesize : 0; diff --git a/library/cpp/containers/comptrie/comptrie_impl.cpp b/library/cpp/containers/comptrie/comptrie_impl.cpp index a8c1f76bfb..a116ab6d1e 100644 --- a/library/cpp/containers/comptrie/comptrie_impl.cpp +++ b/library/cpp/containers/comptrie/comptrie_impl.cpp @@ -8,26 +8,26 @@ namespace NCompactTrie { size_t MeasureOffset(size_t offset) { int n = 0; - + while (offset) { offset >>= 8; ++n; } return n; - } + } size_t PackOffset(char* buffer, size_t offset) { size_t len = MeasureOffset(offset); size_t i = len; - + while (i--) { buffer[i] = (char)(offset & 0xFF); offset >>= 8; } return len; - } + } void ShowProgress(size_t n) { if (n % 1000000 == 0) @@ -35,5 +35,5 @@ namespace NCompactTrie { else if (n % 20000 == 0) Cerr << "."; } - -} + +} diff --git a/library/cpp/containers/comptrie/comptrie_impl.h b/library/cpp/containers/comptrie/comptrie_impl.h index 9a3e7f7d90..f41c38311a 100644 --- a/library/cpp/containers/comptrie/comptrie_impl.h +++ b/library/cpp/containers/comptrie/comptrie_impl.h @@ -1,7 +1,7 @@ #pragma once - + #include <util/stream/output.h> - + #ifndef COMPTRIE_DATA_CHECK #define COMPTRIE_DATA_CHECK 1 #endif diff --git a/library/cpp/containers/comptrie/comptrie_trie.h b/library/cpp/containers/comptrie/comptrie_trie.h index 6665dfdf4d..40ec1e52b3 100644 --- a/library/cpp/containers/comptrie/comptrie_trie.h +++ b/library/cpp/containers/comptrie/comptrie_trie.h @@ -1,11 +1,11 @@ #pragma once - + #include "comptrie_impl.h" #include "comptrie_packer.h" #include "opaque_trie_iterator.h" #include "leaf_skipper.h" #include "key_selector.h" - + #include <util/generic/buffer.h> #include <util/generic/ptr.h> #include <util/generic/vector.h> @@ -30,12 +30,12 @@ class TPrefixIterator; // in case of <char> specialization cannot distinguish between "" and "\0" keys template <class T = char, class D = ui64, class S = TCompactTriePacker<D>> -class TCompactTrie { -public: - typedef T TSymbol; +class TCompactTrie { +public: + typedef T TSymbol; typedef D TData; typedef S TPacker; - + typedef typename TCompactTrieKeySelector<TSymbol>::TKey TKey; typedef typename TCompactTrieKeySelector<TSymbol>::TKeyBuf TKeyBuf; @@ -50,8 +50,8 @@ protected: const char* EmptyValue = nullptr; TPacker Packer; NCompactTrie::TPackerLeafSkipper<TPacker> Skipper = &Packer; // This should be true for every constructor. - -public: + +public: TCompactTrie() = default; TCompactTrie(const char* d, size_t len, TPacker packer); @@ -76,7 +76,7 @@ public: void Init(const char* d, size_t len, TPacker packer = TPacker()); void Init(const TBlob& data, TPacker packer = TPacker()); - + bool IsInitialized() const; bool IsEmpty() const; @@ -142,14 +142,14 @@ public: inline bool FindTails(TSymbol label, TCompactTrie<T, D, S>& res) const; class TConstIterator { - private: + private: typedef NCompactTrie::TOpaqueTrieIterator TOpaqueTrieIterator; typedef NCompactTrie::TOpaqueTrie TOpaqueTrie; - friend class TCompactTrie; + friend class TCompactTrie; TConstIterator(const TOpaqueTrie& trie, const char* emptyValue, bool atend, TPacker packer); // only usable from Begin() and End() methods TConstIterator(const TOpaqueTrie& trie, const char* emptyValue, const TKeyBuf& key, TPacker packer); // only usable from UpperBound() method - public: + public: TConstIterator() = default; bool IsEmpty() const { return !Impl; @@ -162,7 +162,7 @@ public: TConstIterator& operator--(); TConstIterator operator--(int /*unused*/); TValueType operator*(); - + TKey GetKey() const; size_t GetKeySize() const; TData GetValue() const; @@ -172,13 +172,13 @@ public: private: TPacker Packer; TCopyPtr<TOpaqueTrieIterator> Impl; - }; - + }; + TConstIterator Begin() const; TConstIterator begin() const; TConstIterator End() const; TConstIterator end() const; - + // Returns an iterator pointing to the smallest key in the trie >= the argument. // TODO: misleading name. Should be called LowerBound for consistency with stl. // No. It is the STL that has a misleading name. @@ -203,22 +203,22 @@ protected: return LookupLongestPrefix(key, keylen, prefixLen, valuepos, hasNext); } void LookupPhrases(const char* datapos, size_t len, const TSymbol* key, size_t keylen, TVector<TPhraseMatch>& matches, TSymbol separator) const; -}; - +}; + template <class T = char, class D = ui64, class S = TCompactTriePacker<D>> class TCompactTrieHolder: public TCompactTrie<T, D, S>, NNonCopyable::TNonCopyable { private: typedef TCompactTrie<T, D, S> TBase; TArrayHolder<char> Storage; - + public: TCompactTrieHolder(IInputStream& is, size_t len); }; - + //------------------------// // Implementation section // //------------------------// - + // TCompactTrie template <class T, class D, class S> diff --git a/library/cpp/containers/comptrie/comptrie_ut.cpp b/library/cpp/containers/comptrie/comptrie_ut.cpp index 0afb79113f..74bee09b5d 100644 --- a/library/cpp/containers/comptrie/comptrie_ut.cpp +++ b/library/cpp/containers/comptrie/comptrie_ut.cpp @@ -116,25 +116,25 @@ private: UNIT_TEST_SUITE_END(); static const char* SampleData[]; - - template <class T> + + template <class T> void CreateTrie(IOutputStream& out, bool minimize, bool useFastLayout); - - template <class T> + + template <class T> void CheckData(const char* src, size_t len); - template <class T> + template <class T> void CheckUpperBound(const char* src, size_t len); template <class T> - void CheckIterator(const char* src, size_t len); - - template <class T> + void CheckIterator(const char* src, size_t len); + + template <class T> void TestTrie(bool minimize, bool useFastLayout); - - template <class T> - void TestTrieIterator(bool minimize); - + + template <class T> + void TestTrieIterator(bool minimize); + template <class T, bool minimize> void TestRandom(const size_t n, const size_t maxKeySize); @@ -167,34 +167,34 @@ private: class TDummyPacker; class TStrokaPacker; -public: +public: void TestPackers(); - void TestTrie8(); - void TestTrie16(); - void TestTrie32(); + void TestTrie8(); + void TestTrie16(); + void TestTrie32(); void TestFastTrie8(); void TestFastTrie16(); void TestFastTrie32(); - void TestMinimizedTrie8(); - void TestMinimizedTrie16(); - void TestMinimizedTrie32(); + void TestMinimizedTrie8(); + void TestMinimizedTrie16(); + void TestMinimizedTrie32(); void TestFastMinimizedTrie8(); void TestFastMinimizedTrie16(); void TestFastMinimizedTrie32(); - void TestTrieIterator8(); - void TestTrieIterator16(); - void TestTrieIterator32(); + void TestTrieIterator8(); + void TestTrieIterator16(); + void TestTrieIterator32(); - void TestMinimizedTrieIterator8(); - void TestMinimizedTrieIterator16(); - void TestMinimizedTrieIterator32(); + void TestMinimizedTrieIterator8(); + void TestMinimizedTrieIterator16(); + void TestMinimizedTrieIterator32(); - void TestPhraseSearch(); + void TestPhraseSearch(); void TestAddGet(); void TestEmpty(); void TestUninitializedNonEmpty(); @@ -279,13 +279,13 @@ const char* TCompactTrieTest::SampleData[] = { template <class T> typename TCompactTrie<T>::TKey MakeWideKey(const char* str, size_t len) { typename TCompactTrie<T>::TKey buffer; - for (size_t i = 0; i < len; i++) { - unsigned int ch = (str[i] & 0xFF); + for (size_t i = 0; i < len; i++) { + unsigned int ch = (str[i] & 0xFF); buffer.push_back((T)(ch | ch << 8 | ch << 16 | ch << 24)); - } - return buffer; -} - + } + return buffer; +} + template <class T> typename TCompactTrie<T>::TKey MakeWideKey(const TString& str) { return MakeWideKey<T>(str.c_str(), str.length()); @@ -308,13 +308,13 @@ void TCompactTrieTest::CreateTrie(IOutputStream& out, bool minimize, bool useFas TBufferOutput tmp2; IOutputStream& currentOutput = useFastLayout ? tmp2 : out; - if (minimize) { - TBufferOutput buftmp; - builder.Save(buftmp); + if (minimize) { + TBufferOutput buftmp; + builder.Save(buftmp); CompactTrieMinimize<TCompactTriePacker<ui64>>(currentOutput, buftmp.Buffer().Data(), buftmp.Buffer().Size(), false); - } else { + } else { builder.Save(currentOutput); - } + } if (useFastLayout) { CompactTrieMakeFastLayout<TCompactTriePacker<T>>(out, tmp2.Buffer().Data(), tmp2.Buffer().Size(), false); } @@ -358,23 +358,23 @@ void TCompactTrieTest::CheckUpperBound(const char* data, size_t datalen) { } template <class T> -void TCompactTrieTest::CheckData(const char* data, size_t datalen) { - TCompactTrie<T> trie(data, datalen); +void TCompactTrieTest::CheckData(const char* data, size_t datalen) { + TCompactTrie<T> trie(data, datalen); UNIT_ASSERT_VALUES_EQUAL(Y_ARRAY_SIZE(SampleData), trie.Size()); for (auto& i : SampleData) { size_t len = strlen(i); - ui64 value = 0; + ui64 value = 0; size_t prefixLen = 0; typename TCompactTrie<T>::TKey key = MakeWideKey<T>(i, len); UNIT_ASSERT(trie.Find(key, &value)); - UNIT_ASSERT_EQUAL(len * 2, value); + UNIT_ASSERT_EQUAL(len * 2, value); UNIT_ASSERT(trie.FindLongestPrefix(key, &prefixLen, &value)); UNIT_ASSERT_EQUAL(len, prefixLen); UNIT_ASSERT_EQUAL(len * 2, value); - + TString badkey("bb"); badkey += i; key = MakeWideKey<T>(badkey); @@ -420,35 +420,35 @@ void TCompactTrieTest::CheckData(const char* data, size_t datalen) { } template <class T> -void TCompactTrieTest::CheckIterator(const char* data, size_t datalen) { +void TCompactTrieTest::CheckIterator(const char* data, size_t datalen) { typedef typename TCompactTrie<T>::TKey TKey; typedef typename TCompactTrie<T>::TValueType TValue; TMap<TKey, ui64> stored; - + for (auto& i : SampleData) { size_t len = strlen(i); - + stored[MakeWideKey<T>(i, len)] = len * 2; - } - - TCompactTrie<T> trie(data, datalen); + } + + TCompactTrie<T> trie(data, datalen); TVector<TValue> items; - typename TCompactTrie<T>::TConstIterator it = trie.Begin(); - size_t entry_count = 0; + typename TCompactTrie<T>::TConstIterator it = trie.Begin(); + size_t entry_count = 0; TMap<TKey, ui64> received; - while (it != trie.End()) { + while (it != trie.End()) { UNIT_ASSERT_VALUES_EQUAL(it.GetKeySize(), it.GetKey().size()); - received.insert(*it); + received.insert(*it); items.push_back(*it); - entry_count++; + entry_count++; it++; - } + } TMap<TKey, ui64> received2; for (std::pair<TKey, ui64> x : trie) { received2.insert(x); } - UNIT_ASSERT(entry_count == stored.size()); - UNIT_ASSERT(received == stored); + UNIT_ASSERT(entry_count == stored.size()); + UNIT_ASSERT(received == stored); UNIT_ASSERT(received2 == stored); std::reverse(items.begin(), items.end()); @@ -483,21 +483,21 @@ void TCompactTrieTest::CheckIterator(const char* data, size_t datalen) { UNIT_ASSERT(revIt == emptyIt); UNIT_ASSERT(revIt.IsEmpty()); UNIT_ASSERT(revIt != trie.End()); -} - +} + template <class T> void TCompactTrieTest::TestTrie(bool minimize, bool useFastLayout) { TBufferOutput bufout; CreateTrie<T>(bufout, minimize, useFastLayout); - CheckData<T>(bufout.Buffer().Data(), bufout.Buffer().Size()); + CheckData<T>(bufout.Buffer().Data(), bufout.Buffer().Size()); CheckUpperBound<T>(bufout.Buffer().Data(), bufout.Buffer().Size()); } template <class T> -void TCompactTrieTest::TestTrieIterator(bool minimize) { +void TCompactTrieTest::TestTrieIterator(bool minimize) { TBufferOutput bufout; CreateTrie<T>(bufout, minimize, false); - CheckIterator<T>(bufout.Buffer().Data(), bufout.Buffer().Size()); + CheckIterator<T>(bufout.Buffer().Data(), bufout.Buffer().Size()); } void TCompactTrieTest::TestTrie8() { @@ -519,7 +519,7 @@ void TCompactTrieTest::TestFastTrie16() { void TCompactTrieTest::TestFastTrie32() { TestTrie<wchar32>(false, true); } - + void TCompactTrieTest::TestMinimizedTrie8() { TestTrie<char>(true, false); } @@ -529,7 +529,7 @@ void TCompactTrieTest::TestMinimizedTrie16() { void TCompactTrieTest::TestMinimizedTrie32() { TestTrie<wchar32>(true, false); } - + void TCompactTrieTest::TestFastMinimizedTrie8() { TestTrie<char>(true, true); } @@ -559,56 +559,56 @@ void TCompactTrieTest::TestMinimizedTrieIterator16() { void TCompactTrieTest::TestMinimizedTrieIterator32() { TestTrieIterator<wchar32>(true); } - -void TCompactTrieTest::TestPhraseSearch() { + +void TCompactTrieTest::TestPhraseSearch() { static const char* phrases[] = {"ab", "ab cd", "ab cd ef"}; - static const char* const goodphrase = "ab cd ef gh"; - static const char* const badphrase = "cd ef gh ab"; - TBufferOutput bufout; - + static const char* const goodphrase = "ab cd ef gh"; + static const char* const badphrase = "cd ef gh ab"; + TBufferOutput bufout; + TCompactTrieBuilder<char> builder; for (size_t i = 0; i < Y_ARRAY_SIZE(phrases); i++) { - builder.Add(phrases[i], strlen(phrases[i]), i); - } - builder.Save(bufout); - - TCompactTrie<char> trie(bufout.Buffer().Data(), bufout.Buffer().Size()); + builder.Add(phrases[i], strlen(phrases[i]), i); + } + builder.Save(bufout); + + TCompactTrie<char> trie(bufout.Buffer().Data(), bufout.Buffer().Size()); TVector<TCompactTrie<char>::TPhraseMatch> matches; - trie.FindPhrases(goodphrase, strlen(goodphrase), matches); - + trie.FindPhrases(goodphrase, strlen(goodphrase), matches); + UNIT_ASSERT(matches.size() == Y_ARRAY_SIZE(phrases)); for (size_t i = 0; i < Y_ARRAY_SIZE(phrases); i++) { - UNIT_ASSERT(matches[i].first == strlen(phrases[i])); - UNIT_ASSERT(matches[i].second == i); - } - - trie.FindPhrases(badphrase, strlen(badphrase), matches); - UNIT_ASSERT(matches.size() == 0); -} - + UNIT_ASSERT(matches[i].first == strlen(phrases[i])); + UNIT_ASSERT(matches[i].second == i); + } + + trie.FindPhrases(badphrase, strlen(badphrase), matches); + UNIT_ASSERT(matches.size() == 0); +} + void TCompactTrieTest::TestAddGet() { - TCompactTrieBuilder<char> builder; - builder.Add("abcd", 4, 1); - builder.Add("acde", 4, 2); + TCompactTrieBuilder<char> builder; + builder.Add("abcd", 4, 1); + builder.Add("acde", 4, 2); ui64 dummy; - UNIT_ASSERT(builder.Find("abcd", 4, &dummy)); + UNIT_ASSERT(builder.Find("abcd", 4, &dummy)); UNIT_ASSERT(1 == dummy); - UNIT_ASSERT(builder.Find("acde", 4, &dummy)); + UNIT_ASSERT(builder.Find("acde", 4, &dummy)); UNIT_ASSERT(2 == dummy); - UNIT_ASSERT(!builder.Find("fgdgfacde", 9, &dummy)); - UNIT_ASSERT(!builder.Find("ab", 2, &dummy)); + UNIT_ASSERT(!builder.Find("fgdgfacde", 9, &dummy)); + UNIT_ASSERT(!builder.Find("ab", 2, &dummy)); } void TCompactTrieTest::TestEmpty() { - TCompactTrieBuilder<char> builder; + TCompactTrieBuilder<char> builder; ui64 dummy = 12345; size_t prefixLen; - UNIT_ASSERT(!builder.Find("abc", 3, &dummy)); + UNIT_ASSERT(!builder.Find("abc", 3, &dummy)); TBufferOutput bufout; builder.Save(bufout); - TCompactTrie<char> trie(bufout.Buffer().Data(), bufout.Buffer().Size()); - UNIT_ASSERT(!trie.Find("abc", 3, &dummy)); + TCompactTrie<char> trie(bufout.Buffer().Data(), bufout.Buffer().Size()); + UNIT_ASSERT(!trie.Find("abc", 3, &dummy)); UNIT_ASSERT(!trie.Find("", 0, &dummy)); UNIT_ASSERT(!trie.FindLongestPrefix("abc", 3, &prefixLen, &dummy)); UNIT_ASSERT(!trie.FindLongestPrefix("", 0, &prefixLen, &dummy)); diff --git a/library/cpp/containers/comptrie/leaf_skipper.h b/library/cpp/containers/comptrie/leaf_skipper.h index 06e93e10dc..3959258948 100644 --- a/library/cpp/containers/comptrie/leaf_skipper.h +++ b/library/cpp/containers/comptrie/leaf_skipper.h @@ -1,7 +1,7 @@ #pragma once - + #include <cstddef> - + namespace NCompactTrie { class ILeafSkipper { public: diff --git a/library/cpp/containers/comptrie/make_fast_layout.cpp b/library/cpp/containers/comptrie/make_fast_layout.cpp index 5de128e0e9..ade78d7899 100644 --- a/library/cpp/containers/comptrie/make_fast_layout.cpp +++ b/library/cpp/containers/comptrie/make_fast_layout.cpp @@ -146,7 +146,7 @@ namespace NCompactTrie { explicit TOffsetIndex(TTrieNodeCounts& counts) { ParentCounts.Swap(counts); } - + void Add(size_t key, size_t value) { Data[key] = value; } @@ -154,7 +154,7 @@ namespace NCompactTrie { size_t Size() const { return Data.size(); } - + size_t Get(size_t key) { auto pos = Data.find(key); if (pos == Data.end()) { @@ -167,14 +167,14 @@ namespace NCompactTrie { } return result; } - + private: TTrieNodeCounts ParentCounts; THashMap<size_t, size_t> Data; }; //--------------------------------------------------------------------------------------- - + class TTrieMeasurer { public: TTrieMeasurer(const TOpaqueTrie& trie, bool verbose); @@ -226,7 +226,7 @@ namespace NCompactTrie { { Y_ASSERT(Trie.Data); } - + void TTrieMeasurer::Measure() { if (Verbose) { Cerr << "Measuring the trie..." << Endl; @@ -308,7 +308,7 @@ namespace NCompactTrie { , Verbose(verbose) { } - + bool Move() override { if (!Fresh) { CentralWord.pop_back(); @@ -318,11 +318,11 @@ namespace NCompactTrie { } return true; } - + const TNode& Get() const { return CentralWord.back(); } - + size_t GetLeafLength() const override { return Get().GetLeafLength(); } @@ -333,7 +333,7 @@ namespace NCompactTrie { return NPOS; return resultLength - BackIndex.Get(absoffset); } - + size_t RecreateNode(char* buffer, size_t resultLength) override { TWriteableNode newNode(Get(), Trie.Data); newNode.ForwardOffset = PrepareOffset(Get().GetForwardOffset(), resultLength); @@ -346,7 +346,7 @@ namespace NCompactTrie { MaxIndexSize = Max(MaxIndexSize, BackIndex.Size()); return len; } - + private: bool Fresh; TOpaqueTrie Trie; @@ -382,7 +382,7 @@ namespace NCompactTrie { } } } - + void FillCentralWord() { CentralWord.clear(); CentralWord.push_back(TNode(Trie.Data, Trace.back().Nodes.back(), Trie.SkipFunction)); @@ -462,6 +462,6 @@ namespace NCompactTrie { mes.Measure(); TVanEmdeBoasReverseNodeEnumerator enumerator(mes, verbose); return WriteTrieBackwards(os, enumerator, verbose); - } + } } diff --git a/library/cpp/containers/comptrie/make_fast_layout.h b/library/cpp/containers/comptrie/make_fast_layout.h index a55e9a5689..b8fab5d65b 100644 --- a/library/cpp/containers/comptrie/make_fast_layout.h +++ b/library/cpp/containers/comptrie/make_fast_layout.h @@ -1,8 +1,8 @@ #pragma once - + #include "leaf_skipper.h" #include <cstddef> - + class IOutputStream; namespace NCompactTrie { diff --git a/library/cpp/containers/comptrie/minimize.cpp b/library/cpp/containers/comptrie/minimize.cpp index cb25a366f6..80d0b25217 100644 --- a/library/cpp/containers/comptrie/minimize.cpp +++ b/library/cpp/containers/comptrie/minimize.cpp @@ -15,7 +15,7 @@ namespace NCompactTrie { // nodes that have identical continuations (Daciuk's right language), // and repack the trie. Repacking is done in-place, so memory is less // of an issue; however, it may take considerable time. - + // IMPORTANT: never try to reminimize an already minimized trie or a trie with fast layout. // Because of non-local structure and epsilon links, it won't work // as you expect it to, and can destroy the trie in the making. @@ -23,7 +23,7 @@ namespace NCompactTrie { namespace { using TOffsetList = TVector<size_t>; using TPieceIndex = THashMap<size_t, TOffsetList>; - + using TSizePair = std::pair<size_t, size_t>; using TSizePairVector = TVector<TSizePair>; using TSizePairVectorVector = TVector<TSizePairVector>; @@ -36,38 +36,38 @@ namespace NCompactTrie { TOffsetMap() { Data.reserve(0x10000); } - + void Add(size_t key, size_t value) { size_t hikey = key & 0xFFFF; - + if (Data.size() <= hikey) Data.resize(hikey + 1); TSizePairVector& sublist = Data[hikey]; - + for (auto& it : sublist) { if (it.first == key) { it.second = value; - + return; } } - + sublist.push_back(TSizePair(key, value)); } bool Contains(size_t key) const { return (Get(key) != 0); - } + } size_t Get(size_t key) const { size_t hikey = key & 0xFFFF; - + if (Data.size() <= hikey) return 0; - + const TSizePairVector& sublist = Data[hikey]; - + for (const auto& it : sublist) { if (it.first == key) return it.second; @@ -76,7 +76,7 @@ namespace NCompactTrie { return 0; } }; - + class TOffsetDeltas { protected: TSizePairVector Data; @@ -88,10 +88,10 @@ namespace NCompactTrie { return; // no offset } else { TSizePair last = Data.back(); - + if (key <= last.first) { Cerr << "Trouble: elements to offset delta list added in wrong order" << Endl; - + return; } @@ -100,19 +100,19 @@ namespace NCompactTrie { } Data.push_back(TSizePair(key, value)); - } + } size_t Get(size_t key) const { if (Data.empty()) return key; // difference is zero; - + if (key < Data.front().first) return key; - + // Binary search for the highest entry in the list that does not exceed the key size_t from = 0; size_t to = Data.size() - 1; - + while (from < to) { size_t midpoint = (from + to + 1) / 2; @@ -121,7 +121,7 @@ namespace NCompactTrie { else from = midpoint; } - + TSizePair entry = Data[from]; return key - entry.first + entry.second; @@ -139,7 +139,7 @@ namespace NCompactTrie { , Length(len) { } - + bool operator()(size_t p1, const size_t p2) { int res = memcmp(Data + p1, Data + p2, Length); @@ -159,13 +159,13 @@ namespace NCompactTrie { : Selector(0) { } - + TBranchPoint(const char* data, size_t offset, const ILeafSkipper& skipFunction) : Node(data, offset, skipFunction) , Selector(0) { } - + bool IsFinal() const { return Node.IsFinal(); } @@ -174,7 +174,7 @@ namespace NCompactTrie { size_t NextNode(const TOffsetMap& mergedNodes) { while (Selector < 3) { size_t nextOffset = 0; - + switch (++Selector) { case 1: if (Node.GetRightOffset()) @@ -199,7 +199,7 @@ namespace NCompactTrie { return nextOffset; } return 0; - } + } }; class TMergingReverseNodeEnumerator: public TReverseNodeEnumerator { @@ -209,7 +209,7 @@ namespace NCompactTrie { const TOffsetMap& MergeMap; TVector<TBranchPoint> Trace; TOffsetDeltas OffsetIndex; - + public: TMergingReverseNodeEnumerator(const TOpaqueTrie& trie, const TOffsetMap& mergers) : Fresh(true) @@ -217,7 +217,7 @@ namespace NCompactTrie { , MergeMap(mergers) { } - + bool Move() override { if (Fresh) { Trace.push_back(TBranchPoint(Trie.Data, 0, Trie.SkipFunction)); @@ -225,7 +225,7 @@ namespace NCompactTrie { } else { if (Trace.empty()) return false; - + Trace.pop_back(); if (Trace.empty()) @@ -233,7 +233,7 @@ namespace NCompactTrie { } size_t nextnode = Trace.back().NextNode(MergeMap); - + while (nextnode) { Trace.push_back(TBranchPoint(Trie.Data, nextnode, Trie.SkipFunction)); nextnode = Trace.back().NextNode(MergeMap); @@ -241,30 +241,30 @@ namespace NCompactTrie { return (!Trace.empty()); } - + const TNode& Get() const { return Trace.back().Node; } size_t GetLeafLength() const override { return Get().GetLeafLength(); } - + // Returns recalculated offset from the end of the current node size_t PrepareOffset(size_t absoffset, size_t minilength) { if (!absoffset) return NPOS; - + if (MergeMap.Contains(absoffset)) absoffset = MergeMap.Get(absoffset); return minilength - OffsetIndex.Get(Trie.Length - absoffset); } - + size_t RecreateNode(char* buffer, size_t resultLength) override { TWriteableNode newNode(Get(), Trie.Data); newNode.ForwardOffset = PrepareOffset(Get().GetForwardOffset(), resultLength); newNode.LeftOffset = PrepareOffset(Get().GetLeftOffset(), resultLength); newNode.RightOffset = PrepareOffset(Get().GetRightOffset(), resultLength); - + if (!buffer) return newNode.Measure(); @@ -275,8 +275,8 @@ namespace NCompactTrie { } }; - } - + } + static void AddPiece(TPieceIndex& index, size_t offset, size_t len) { index[len].push_back(offset); } @@ -288,24 +288,24 @@ namespace NCompactTrie { TOffsetMap merger; // Start walking the trie from head. AddPiece(subtries, 0, trie.Length); - + size_t counter = 0; // Now consider all nodes with sizeable continuations for (size_t curlen = trie.Length; curlen >= minMergeSize && !subtries.empty(); curlen--) { TPieceIndex::iterator iit = subtries.find(curlen); - + if (iit == subtries.end()) continue; // fast forward to the next available length value TOffsetList& batch = iit->second; TPieceComparer comparer(trie.Data, curlen); Sort(batch.begin(), batch.end(), comparer); - + TOffsetList::iterator it = batch.begin(); while (it != batch.end()) { if (verbose) ShowProgress(++counter); - + size_t offset = *it; // Fill the array with the subnodes of the element @@ -322,11 +322,11 @@ namespace NCompactTrie { if (size_t forwardOffset = node.GetForwardOffset()) { AddPiece(subtries, forwardOffset, end - forwardOffset); } - + while (++it != batch.end()) { // Find next different; until then, just add the offsets to the list of merged nodes. size_t nextoffset = *it; - + if (memcmp(trie.Data + offset, trie.Data + nextoffset, curlen)) break; @@ -335,12 +335,12 @@ namespace NCompactTrie { } subtries.erase(curlen); - } + } if (verbose) { Cerr << counter << Endl; } return merger; - } + } size_t RawCompactTrieMinimizeImpl(IOutputStream& os, TOpaqueTrie& trie, bool verbose, size_t minMergeSize, EMinimizeMode mode) { if (!trie.Data || !trie.Length) { diff --git a/library/cpp/containers/comptrie/minimize.h b/library/cpp/containers/comptrie/minimize.h index d9fff3cfa5..baaa431d04 100644 --- a/library/cpp/containers/comptrie/minimize.h +++ b/library/cpp/containers/comptrie/minimize.h @@ -1,8 +1,8 @@ #pragma once - + #include "leaf_skipper.h" #include <cstddef> - + class IOutputStream; namespace NCompactTrie { diff --git a/library/cpp/containers/comptrie/node.cpp b/library/cpp/containers/comptrie/node.cpp index 1df102fb84..5fd22f15ec 100644 --- a/library/cpp/containers/comptrie/node.cpp +++ b/library/cpp/containers/comptrie/node.cpp @@ -1,7 +1,7 @@ #include "node.h" #include "leaf_skipper.h" #include "comptrie_impl.h" - + #include <util/system/yassert.h> #include <util/generic/yexception.h> @@ -16,7 +16,7 @@ namespace NCompactTrie { offset = 0; } } - + // We believe that epsilon links are found only on the forward-position and that afer jumping an epsilon link you come to an ordinary node. TNode::TNode(const char* data, size_t offset, const ILeafSkipper& skipFunction) @@ -35,7 +35,7 @@ namespace NCompactTrie { char flags = *(datapos++); Y_ASSERT(!IsEpsilonLink(flags)); Label = *(datapos++); - + size_t leftsize = LeftOffsetLen(flags); size_t& leftOffset = Offsets[D_LEFT]; leftOffset = UnpackOffset(datapos, leftsize); @@ -43,7 +43,7 @@ namespace NCompactTrie { leftOffset += Offset; } datapos += leftsize; - + size_t rightsize = RightOffsetLen(flags); size_t& rightOffset = Offsets[D_RIGHT]; rightOffset = UnpackOffset(datapos, rightsize); @@ -72,8 +72,8 @@ namespace NCompactTrie { ythrow yexception() << "Corrupted epsilon link"; } forwardOffset += epsilonOffset; - } - } - } + } + } + } -} +} diff --git a/library/cpp/containers/comptrie/node.h b/library/cpp/containers/comptrie/node.h index 3194a1340f..d6f4317db0 100644 --- a/library/cpp/containers/comptrie/node.h +++ b/library/cpp/containers/comptrie/node.h @@ -4,7 +4,7 @@ namespace NCompactTrie { class ILeafSkipper; - + enum TDirection { D_LEFT, D_FINAL, @@ -42,11 +42,11 @@ namespace NCompactTrie { size_t GetCoreLength() const { return CoreLength; } - + size_t GetOffsetByDirection(TDirection direction) const { return Offsets[direction]; } - + size_t GetForwardOffset() const { return Offsets[D_NEXT]; } @@ -63,7 +63,7 @@ namespace NCompactTrie { bool IsFinal() const { return GetLeafOffset() != 0; } - + bool HasEpsilonLinkForward() const { return GetForwardOffset() > Offset + CoreLength; } @@ -76,5 +76,5 @@ namespace NCompactTrie { char Label; }; - + } diff --git a/library/cpp/containers/comptrie/opaque_trie_iterator.cpp b/library/cpp/containers/comptrie/opaque_trie_iterator.cpp index 356c6a72ff..5fd3914be6 100644 --- a/library/cpp/containers/comptrie/opaque_trie_iterator.cpp +++ b/library/cpp/containers/comptrie/opaque_trie_iterator.cpp @@ -1,7 +1,7 @@ #include "opaque_trie_iterator.h" #include "comptrie_impl.h" #include "node.h" - + namespace NCompactTrie { TOpaqueTrieIterator::TOpaqueTrieIterator(const TOpaqueTrie& trie, const char* emptyValue, bool atend, size_t maxKeyLength) diff --git a/library/cpp/containers/comptrie/opaque_trie_iterator.h b/library/cpp/containers/comptrie/opaque_trie_iterator.h index 04d7134b07..195da3c191 100644 --- a/library/cpp/containers/comptrie/opaque_trie_iterator.h +++ b/library/cpp/containers/comptrie/opaque_trie_iterator.h @@ -1,10 +1,10 @@ #pragma once - + #include "comptrie_impl.h" #include "node.h" #include "key_selector.h" #include "leaf_skipper.h" - + #include <util/generic/vector.h> #include <util/generic/yexception.h> @@ -17,7 +17,7 @@ namespace NCompactTrie { const char* Data; size_t Limit; // valid data is in range [Data + Node.GetOffset(), Data + Limit) TDirection CurrentDirection; - + public: TFork(const char* data, size_t offset, size_t limit, const ILeafSkipper& skipper); diff --git a/library/cpp/containers/comptrie/write_trie_backwards.cpp b/library/cpp/containers/comptrie/write_trie_backwards.cpp index 3109e342a7..fd8c28b0ed 100644 --- a/library/cpp/containers/comptrie/write_trie_backwards.cpp +++ b/library/cpp/containers/comptrie/write_trie_backwards.cpp @@ -11,23 +11,23 @@ namespace NCompactTrie { if (verbose) { Cerr << "Writing down the trie..." << Endl; } - + // Rewrite everything from the back, removing unused pieces. const size_t chunksize = 0x10000; TVector<char*> resultData; - + resultData.push_back(new char[chunksize]); char* chunkend = resultData.back() + chunksize; - + size_t resultLength = 0; size_t chunkLength = 0; - + size_t counter = 0; TBuffer bufferHolder; while (enumerator.Move()) { if (verbose) ShowProgress(++counter); - + size_t bufferLength = 64 + enumerator.GetLeafLength(); // never know how big leaf data can be bufferHolder.Clear(); bufferHolder.Resize(bufferLength); @@ -35,7 +35,7 @@ namespace NCompactTrie { size_t nodelength = enumerator.RecreateNode(buffer, resultLength); Y_ASSERT(nodelength <= bufferLength); - + resultLength += nodelength; if (chunkLength + nodelength <= chunksize) { @@ -44,14 +44,14 @@ namespace NCompactTrie { } else { // allocate a new chunk memcpy(chunkend - chunksize, buffer + nodelength - (chunksize - chunkLength), chunksize - chunkLength); chunkLength = chunkLength + nodelength - chunksize; - + resultData.push_back(new char[chunksize]); chunkend = resultData.back() + chunksize; - + while (chunkLength > chunksize) { // allocate a new chunks chunkLength -= chunksize; memcpy(chunkend - chunksize, buffer + chunkLength, chunksize); - + resultData.push_back(new char[chunksize]); chunkend = resultData.back() + chunksize; } @@ -70,11 +70,11 @@ namespace NCompactTrie { chunkLength = chunksize; delete[] chunk; resultData.pop_back(); - } + } return resultLength; - } - + } + size_t WriteTrieBackwardsNoAlloc(IOutputStream& os, TReverseNodeEnumerator& enumerator, TOpaqueTrie& trie, EMinimizeMode mode) { char* data = const_cast<char*>(trie.Data); char* end = data + trie.Length; diff --git a/library/cpp/containers/comptrie/writeable_node.cpp b/library/cpp/containers/comptrie/writeable_node.cpp index b45f9f47ce..404003dbbd 100644 --- a/library/cpp/containers/comptrie/writeable_node.cpp +++ b/library/cpp/containers/comptrie/writeable_node.cpp @@ -12,7 +12,7 @@ namespace NCompactTrie { , Label(0) { } - + static size_t GetOffsetFromEnd(const TNode& node, size_t absOffset) { return absOffset ? absOffset - node.GetOffset() - node.GetCoreLength() : NPOS; } @@ -36,7 +36,7 @@ namespace NCompactTrie { do { lastLen = len; lastFwdLen = fwdLen; - + len = 2 + LeafLength; len += MeasureOffset(LeftOffset != NPOS ? LeftOffset + lastLen : 0); len += MeasureOffset(RightOffset != NPOS ? RightOffset + lastLen : 0); @@ -48,15 +48,15 @@ namespace NCompactTrie { fwdLen = MeasureOffset(ForwardOffset + lastFwdLen) + 1; len += fwdLen; } - + } while (lastLen != len || lastFwdLen != fwdLen); - + return len; } - + size_t TWriteableNode::Pack(char* buffer) const { const size_t length = Measure(); - + char flags = 0; if (LeafPos) { flags |= MT_FINAL; @@ -64,14 +64,14 @@ namespace NCompactTrie { if (ForwardOffset != NPOS) { flags |= MT_NEXT; } - + const size_t leftOffset = LeftOffset != NPOS ? LeftOffset + length : 0; const size_t rightOffset = RightOffset != NPOS ? RightOffset + length : 0; const size_t leftOffsetSize = MeasureOffset(leftOffset); const size_t rightOffsetSize = MeasureOffset(rightOffset); flags |= (leftOffsetSize << MT_LEFTSHIFT); flags |= (rightOffsetSize << MT_RIGHTSHIFT); - + buffer[0] = flags; buffer[1] = Label; size_t usedLen = 2; @@ -91,6 +91,6 @@ namespace NCompactTrie { } Y_ASSERT(usedLen == length); return usedLen; - } - -} + } + +} diff --git a/library/cpp/mime/types/mime.cpp b/library/cpp/mime/types/mime.cpp index 9d0350c59c..706d776b24 100644 --- a/library/cpp/mime/types/mime.cpp +++ b/library/cpp/mime/types/mime.cpp @@ -1,9 +1,9 @@ #include "mime.h" -#include <util/system/defaults.h> +#include <util/system/defaults.h> #include <util/generic/hash.h> #include <util/generic/strbuf.h> -#include <util/generic/singleton.h> +#include <util/generic/singleton.h> #include <util/generic/yexception.h> #include <cctype> diff --git a/library/cpp/packers/packers.h b/library/cpp/packers/packers.h index dd6865078c..1bde1b59aa 100644 --- a/library/cpp/packers/packers.h +++ b/library/cpp/packers/packers.h @@ -31,14 +31,14 @@ public: }; template <typename T> -class TAsIsPacker { // this packer is not really a packer... +class TAsIsPacker { // this packer is not really a packer... public: void UnpackLeaf(const char* p, T& t) const { - memcpy(&t, p, sizeof(T)); + memcpy(&t, p, sizeof(T)); } void PackLeaf(char* buffer, const T& data, size_t computedSize) const { Y_ASSERT(computedSize == sizeof(data)); - memcpy(buffer, &data, sizeof(T)); + memcpy(buffer, &data, sizeof(T)); } size_t MeasureLeaf(const T& data) const { Y_UNUSED(data); diff --git a/library/cpp/packers/ut/packers_ut.cpp b/library/cpp/packers/ut/packers_ut.cpp index 1e31c63482..18ce2150d1 100644 --- a/library/cpp/packers/ut/packers_ut.cpp +++ b/library/cpp/packers/ut/packers_ut.cpp @@ -34,7 +34,7 @@ private: template <class TData, class TPacker> void TestPacker(const TData* test, size_t size); -public: +public: void TestPackers(); }; diff --git a/util/charset/generated/unidata.cpp b/util/charset/generated/unidata.cpp index 273ee87dac..6f5adbbc0a 100644 --- a/util/charset/generated/unidata.cpp +++ b/util/charset/generated/unidata.cpp @@ -1,5 +1,5 @@ #include <util/charset/unidata.h> - + namespace { namespace NUnidataTableGenerated { using TV = const NUnicode::NPrivate::TUnidataTable::TStored; @@ -7521,7 +7521,7 @@ namespace { namespace NUnidataTableGenerated { static const size_t Size = 1114110; }} // namespace NUnidataTableGenerated - + namespace NUnicode { namespace NPrivate { const NUnicode::NPrivate::TUnidataTable& UnidataTable() { diff --git a/util/charset/unidata.h b/util/charset/unidata.h index bf364e088a..400d314186 100644 --- a/util/charset/unidata.h +++ b/util/charset/unidata.h @@ -66,13 +66,13 @@ enum WC_TYPE { // TODO move no NUnicode Sc_CURRENCY = 49, // '$' [$] DOLLAR SIGN Sk_MODIFIER = 50, // '`' [^`] CIRCUMFLEX ACCENT ... GRAVE ACCENT So_OTHER = 51, // '°' [°] DEGREE SIGN (00B0) - - Ps_SINGLE_QUOTE = 52, // '\'' ['] OPENING SINGLE QUOTE - Pe_SINGLE_QUOTE = 53, // '\'' ['] CLOSING SINGLE QUOTE - Pi_SINGLE_QUOTE = 54, // '\'' ['] INITIAL SINGLE QUOTE - Pf_SINGLE_QUOTE = 55, // '\'' ['] FINAL SINGLE QUOTE - Po_SINGLE_QUOTE = 56, // '\'' ['] APOSTROPHE and PRIME - + + Ps_SINGLE_QUOTE = 52, // '\'' ['] OPENING SINGLE QUOTE + Pe_SINGLE_QUOTE = 53, // '\'' ['] CLOSING SINGLE QUOTE + Pi_SINGLE_QUOTE = 54, // '\'' ['] INITIAL SINGLE QUOTE + Pf_SINGLE_QUOTE = 55, // '\'' ['] FINAL SINGLE QUOTE + Po_SINGLE_QUOTE = 56, // '\'' ['] APOSTROPHE and PRIME + CCL_NUM = 57, CCL_MASK = 0x3F, @@ -94,8 +94,8 @@ enum WC_TYPE { // TODO move no NUnicode SVAL_OFFSET = 22, }; -const size_t DEFCHAR_BUF = 58; // CCL_NUM + 1 - +const size_t DEFCHAR_BUF = 58; // CCL_NUM + 1 + #define SHIFT(i) (ULL(1) << (i)) namespace NUnicode { diff --git a/util/thread/pool.cpp b/util/thread/pool.cpp index bdef83fe12..05fad02e9b 100644 --- a/util/thread/pool.cpp +++ b/util/thread/pool.cpp @@ -372,7 +372,7 @@ static TAtomic mtp_queue_counter = 0; class TAdaptiveThreadPool::TImpl { public: class TThread: public IThreadFactory::IThreadAble { - public: + public: inline TThread(TImpl* parent) : Impl_(parent) , Thread_(Impl_->Parent_->Pool()->Run(this)) |