You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ryzom-core/nel/src/misc/string_to_ci.cpp

2854 lines
78 KiB
C++

// NeL - MMORPG Framework <https://wiki.ryzom.dev/>
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdmisc.h"
#include "nel/misc/ucstring.h"
#include "nel/misc/utf_string_view.h"
#ifdef DEBUG_NEW
#define new DEBUG_NEW
#endif
namespace NLMISC {
static const char s_StringToCaseInsensitiveC2[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCE', '\xBC', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveC3[64 * 4] = {
'\xC3', '\xA0', '\x00', 0,
'\xC3', '\xA1', '\x00', 0,
'\xC3', '\xA2', '\x00', 0,
'\xC3', '\xA3', '\x00', 0,
'\xC3', '\xA4', '\x00', 0,
'\xC3', '\xA5', '\x00', 0,
'\xC3', '\xA6', '\x00', 0,
'\xC3', '\xA7', '\x00', 0,
'\xC3', '\xA8', '\x00', 0,
'\xC3', '\xA9', '\x00', 0,
'\xC3', '\xAA', '\x00', 0,
'\xC3', '\xAB', '\x00', 0,
'\xC3', '\xAC', '\x00', 0,
'\xC3', '\xAD', '\x00', 0,
'\xC3', '\xAE', '\x00', 0,
'\xC3', '\xAF', '\x00', 0,
'\xC3', '\xB0', '\x00', 0,
'\xC3', '\xB1', '\x00', 0,
'\xC3', '\xB2', '\x00', 0,
'\xC3', '\xB3', '\x00', 0,
'\xC3', '\xB4', '\x00', 0,
'\xC3', '\xB5', '\x00', 0,
'\xC3', '\xB6', '\x00', 0,
0, 0, 0, 0,
'\xC3', '\xB8', '\x00', 0,
'\xC3', '\xB9', '\x00', 0,
'\xC3', '\xBA', '\x00', 0,
'\xC3', '\xBB', '\x00', 0,
'\xC3', '\xBC', '\x00', 0,
'\xC3', '\xBD', '\x00', 0,
'\xC3', '\xBE', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveC4[64 * 4] = {
'\xC4', '\x81', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x83', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x85', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x87', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x89', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x8F', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\x69', '\x00', '\x00', 0,
'\x69', '\x00', '\x00', 0,
'\xC4', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xB7', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0,
'\xC4', '\xBA', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xBC', '\x00', 0,
0, 0, 0, 0,
'\xC4', '\xBE', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x80', '\x00', 0,
};
static const char s_StringToCaseInsensitiveC5[64 * 4] = {
0, 0, 0, 0,
'\xC5', '\x82', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x84', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x86', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x88', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xC5', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x8F', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xB7', '\x00', 0,
0, 0, 0, 0,
'\xC3', '\xBF', '\x00', 0,
'\xC5', '\xBA', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xBC', '\x00', 0,
0, 0, 0, 0,
'\xC5', '\xBE', '\x00', 0,
0, 0, 0, 0,
'\x73', '\x00', '\x00', 0,
};
static const char s_StringToCaseInsensitiveC6[64 * 4] = {
0, 0, 0, 0,
'\xC9', '\x93', '\x00', 0,
'\xC6', '\x83', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\x85', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x94', '\x00', 0,
'\xC6', '\x88', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x96', '\x00', 0,
'\xC9', '\x97', '\x00', 0,
'\xC6', '\x8C', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xC7', '\x9D', '\x00', 0,
'\xC9', '\x99', '\x00', 0,
'\xC9', '\x9B', '\x00', 0,
'\xC6', '\x92', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\xA0', '\x00', 0,
'\xC9', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\xA9', '\x00', 0,
'\xC9', '\xA8', '\x00', 0,
'\xC6', '\x99', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xC9', '\xAF', '\x00', 0,
'\xC9', '\xB2', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\xB5', '\x00', 0,
'\xC6', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x80', '\x00', 0,
'\xC6', '\xA8', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x83', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xC6', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x88', '\x00', 0,
'\xC6', '\xB0', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x8A', '\x00', 0,
'\xCA', '\x8B', '\x00', 0,
'\xC6', '\xB4', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\xB6', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x92', '\x00', 0,
'\xC6', '\xB9', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xC6', '\xBD', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveC7[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xC7', '\x86', '\x00', 0,
'\xC7', '\x86', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x89', '\x00', 0,
'\xC7', '\x89', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x8C', '\x00', 0,
'\xC7', '\x8C', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x8E', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x90', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x92', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x94', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x96', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x98', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x9A', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\x9C', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xC7', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xAF', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0,
'\xC7', '\xB3', '\x00', 0,
'\xC7', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\x95', '\x00', 0,
'\xC6', '\xBF', '\x00', 0,
'\xC7', '\xB9', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xBB', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xBD', '\x00', 0,
0, 0, 0, 0,
'\xC7', '\xBF', '\x00', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveC8[64 * 4] = {
'\xC8', '\x81', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x83', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x85', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x87', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x89', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x8F', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\x9E', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xC8', '\xB3', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB1', '\xA5', 0,
'\xC8', '\xBC', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\x9A', '\x00', 0,
'\xE2', '\xB1', '\xA6', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveC9[64 * 4] = {
0, 0, 0, 0,
'\xC9', '\x82', '\x00', 0,
0, 0, 0, 0,
'\xC6', '\x80', '\x00', 0,
'\xCA', '\x89', '\x00', 0,
'\xCA', '\x8C', '\x00', 0,
'\xC9', '\x87', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x89', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xC9', '\x8F', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveCD[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCE', '\xB9', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCD', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xCD', '\xB3', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCD', '\xB7', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCF', '\xB3', '\x00', 0,
};
static const char s_StringToCaseInsensitiveCE[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCE', '\xAC', '\x00', 0,
0, 0, 0, 0,
'\xCE', '\xAD', '\x00', 0,
'\xCE', '\xAE', '\x00', 0,
'\xCE', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x8C', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x8D', '\x00', 0,
'\xCF', '\x8E', '\x00', 0,
0, 0, 0, 0,
'\xCE', '\xB1', '\x00', 0,
'\xCE', '\xB2', '\x00', 0,
'\xCE', '\xB3', '\x00', 0,
'\xCE', '\xB4', '\x00', 0,
'\xCE', '\xB5', '\x00', 0,
'\xCE', '\xB6', '\x00', 0,
'\xCE', '\xB7', '\x00', 0,
'\xCE', '\xB8', '\x00', 0,
'\xCE', '\xB9', '\x00', 0,
'\xCE', '\xBA', '\x00', 0,
'\xCE', '\xBB', '\x00', 0,
'\xCE', '\xBC', '\x00', 0,
'\xCE', '\xBD', '\x00', 0,
'\xCE', '\xBE', '\x00', 0,
'\xCE', '\xBF', '\x00', 0,
'\xCF', '\x80', '\x00', 0,
'\xCF', '\x81', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x83', '\x00', 0,
'\xCF', '\x84', '\x00', 0,
'\xCF', '\x85', '\x00', 0,
'\xCF', '\x86', '\x00', 0,
'\xCF', '\x87', '\x00', 0,
'\xCF', '\x88', '\x00', 0,
'\xCF', '\x89', '\x00', 0,
'\xCF', '\x8A', '\x00', 0,
'\xCF', '\x8B', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveCF[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0,
'\xCF', '\x83', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCF', '\x97', '\x00', 0,
'\xCE', '\xB2', '\x00', 0,
'\xCE', '\xB8', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCF', '\x86', '\x00', 0,
'\xCF', '\x80', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xCE', '\xBA', '\x00', 0,
'\xCF', '\x81', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xCE', '\xB8', '\x00', 0,
'\xCE', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xB8', '\x00', 0,
0, 0, 0, 0,
'\xCF', '\xB2', '\x00', 0,
'\xCF', '\xBB', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xCD', '\xBB', '\x00', 0,
'\xCD', '\xBC', '\x00', 0,
'\xCD', '\xBD', '\x00', 0,
};
static const char s_StringToCaseInsensitiveD0[64 * 4] = {
'\xD1', '\x90', '\x00', 0,
'\xD1', '\x91', '\x00', 0,
'\xD1', '\x92', '\x00', 0,
'\xD1', '\x93', '\x00', 0,
'\xD1', '\x94', '\x00', 0,
'\xD1', '\x95', '\x00', 0,
'\xD1', '\x96', '\x00', 0,
'\xD1', '\x97', '\x00', 0,
'\xD1', '\x98', '\x00', 0,
'\xD1', '\x99', '\x00', 0,
'\xD1', '\x9A', '\x00', 0,
'\xD1', '\x9B', '\x00', 0,
'\xD1', '\x9C', '\x00', 0,
'\xD1', '\x9D', '\x00', 0,
'\xD1', '\x9E', '\x00', 0,
'\xD1', '\x9F', '\x00', 0,
'\xD0', '\xB0', '\x00', 0,
'\xD0', '\xB1', '\x00', 0,
'\xD0', '\xB2', '\x00', 0,
'\xD0', '\xB3', '\x00', 0,
'\xD0', '\xB4', '\x00', 0,
'\xD0', '\xB5', '\x00', 0,
'\xD0', '\xB6', '\x00', 0,
'\xD0', '\xB7', '\x00', 0,
'\xD0', '\xB8', '\x00', 0,
'\xD0', '\xB9', '\x00', 0,
'\xD0', '\xBA', '\x00', 0,
'\xD0', '\xBB', '\x00', 0,
'\xD0', '\xBC', '\x00', 0,
'\xD0', '\xBD', '\x00', 0,
'\xD0', '\xBE', '\x00', 0,
'\xD0', '\xBF', '\x00', 0,
'\xD1', '\x80', '\x00', 0,
'\xD1', '\x81', '\x00', 0,
'\xD1', '\x82', '\x00', 0,
'\xD1', '\x83', '\x00', 0,
'\xD1', '\x84', '\x00', 0,
'\xD1', '\x85', '\x00', 0,
'\xD1', '\x86', '\x00', 0,
'\xD1', '\x87', '\x00', 0,
'\xD1', '\x88', '\x00', 0,
'\xD1', '\x89', '\x00', 0,
'\xD1', '\x8A', '\x00', 0,
'\xD1', '\x8B', '\x00', 0,
'\xD1', '\x8C', '\x00', 0,
'\xD1', '\x8D', '\x00', 0,
'\xD1', '\x8E', '\x00', 0,
'\xD1', '\x8F', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveD1[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xD1', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xB7', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xB9', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xBB', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xBD', '\x00', 0,
0, 0, 0, 0,
'\xD1', '\xBF', '\x00', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveD2[64 * 4] = {
'\xD2', '\x81', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xD2', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x8F', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xB7', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xB9', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xBB', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xBD', '\x00', 0,
0, 0, 0, 0,
'\xD2', '\xBF', '\x00', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveD3[64 * 4] = {
'\xD3', '\x8F', '\x00', 0,
'\xD3', '\x82', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x84', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x86', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x88', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x8A', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x8C', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x8E', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xD3', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xAF', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xB1', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xB3', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xB5', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xB7', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xB9', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xBB', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xBD', '\x00', 0,
0, 0, 0, 0,
'\xD3', '\xBF', '\x00', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveD4[64 * 4] = {
'\xD4', '\x81', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x83', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x85', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x87', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x89', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x8B', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x8D', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x8F', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x91', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x93', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x95', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x97', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x99', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x9B', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x9D', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xA1', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xA3', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xA5', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xA7', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xA9', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xAB', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xAD', '\x00', 0,
0, 0, 0, 0,
'\xD4', '\xAF', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0,
'\xD5', '\xA1', '\x00', 0,
'\xD5', '\xA2', '\x00', 0,
'\xD5', '\xA3', '\x00', 0,
'\xD5', '\xA4', '\x00', 0,
'\xD5', '\xA5', '\x00', 0,
'\xD5', '\xA6', '\x00', 0,
'\xD5', '\xA7', '\x00', 0,
'\xD5', '\xA8', '\x00', 0,
'\xD5', '\xA9', '\x00', 0,
'\xD5', '\xAA', '\x00', 0,
'\xD5', '\xAB', '\x00', 0,
'\xD5', '\xAC', '\x00', 0,
'\xD5', '\xAD', '\x00', 0,
'\xD5', '\xAE', '\x00', 0,
'\xD5', '\xAF', '\x00', 0,
};
static const char s_StringToCaseInsensitiveD5[64 * 4] = {
'\xD5', '\xB0', '\x00', 0,
'\xD5', '\xB1', '\x00', 0,
'\xD5', '\xB2', '\x00', 0,
'\xD5', '\xB3', '\x00', 0,
'\xD5', '\xB4', '\x00', 0,
'\xD5', '\xB5', '\x00', 0,
'\xD5', '\xB6', '\x00', 0,
'\xD5', '\xB7', '\x00', 0,
'\xD5', '\xB8', '\x00', 0,
'\xD5', '\xB9', '\x00', 0,
'\xD5', '\xBA', '\x00', 0,
'\xD5', '\xBB', '\x00', 0,
'\xD5', '\xBC', '\x00', 0,
'\xD5', '\xBD', '\x00', 0,
'\xD5', '\xBE', '\x00', 0,
'\xD5', '\xBF', '\x00', 0,
'\xD6', '\x80', '\x00', 0,
'\xD6', '\x81', '\x00', 0,
'\xD6', '\x82', '\x00', 0,
'\xD6', '\x83', '\x00', 0,
'\xD6', '\x84', '\x00', 0,
'\xD6', '\x85', '\x00', 0,
'\xD6', '\x86', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE182[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB4', '\x80', 0,
'\xE2', '\xB4', '\x81', 0,
'\xE2', '\xB4', '\x82', 0,
'\xE2', '\xB4', '\x83', 0,
'\xE2', '\xB4', '\x84', 0,
'\xE2', '\xB4', '\x85', 0,
'\xE2', '\xB4', '\x86', 0,
'\xE2', '\xB4', '\x87', 0,
'\xE2', '\xB4', '\x88', 0,
'\xE2', '\xB4', '\x89', 0,
'\xE2', '\xB4', '\x8A', 0,
'\xE2', '\xB4', '\x8B', 0,
'\xE2', '\xB4', '\x8C', 0,
'\xE2', '\xB4', '\x8D', 0,
'\xE2', '\xB4', '\x8E', 0,
'\xE2', '\xB4', '\x8F', 0,
'\xE2', '\xB4', '\x90', 0,
'\xE2', '\xB4', '\x91', 0,
'\xE2', '\xB4', '\x92', 0,
'\xE2', '\xB4', '\x93', 0,
'\xE2', '\xB4', '\x94', 0,
'\xE2', '\xB4', '\x95', 0,
'\xE2', '\xB4', '\x96', 0,
'\xE2', '\xB4', '\x97', 0,
'\xE2', '\xB4', '\x98', 0,
'\xE2', '\xB4', '\x99', 0,
'\xE2', '\xB4', '\x9A', 0,
'\xE2', '\xB4', '\x9B', 0,
'\xE2', '\xB4', '\x9C', 0,
'\xE2', '\xB4', '\x9D', 0,
'\xE2', '\xB4', '\x9E', 0,
'\xE2', '\xB4', '\x9F', 0,
};
static const char s_StringToCaseInsensitiveE183[64 * 4] = {
'\xE2', '\xB4', '\xA0', 0,
'\xE2', '\xB4', '\xA1', 0,
'\xE2', '\xB4', '\xA2', 0,
'\xE2', '\xB4', '\xA3', 0,
'\xE2', '\xB4', '\xA4', 0,
'\xE2', '\xB4', '\xA5', 0,
0, 0, 0, 0,
'\xE2', '\xB4', '\xA7', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB4', '\xAD', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE18E[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\xAD', '\xB0', 0,
'\xEA', '\xAD', '\xB1', 0,
'\xEA', '\xAD', '\xB2', 0,
'\xEA', '\xAD', '\xB3', 0,
'\xEA', '\xAD', '\xB4', 0,
'\xEA', '\xAD', '\xB5', 0,
'\xEA', '\xAD', '\xB6', 0,
'\xEA', '\xAD', '\xB7', 0,
'\xEA', '\xAD', '\xB8', 0,
'\xEA', '\xAD', '\xB9', 0,
'\xEA', '\xAD', '\xBA', 0,
'\xEA', '\xAD', '\xBB', 0,
'\xEA', '\xAD', '\xBC', 0,
'\xEA', '\xAD', '\xBD', 0,
'\xEA', '\xAD', '\xBE', 0,
'\xEA', '\xAD', '\xBF', 0,
'\xEA', '\xAE', '\x80', 0,
'\xEA', '\xAE', '\x81', 0,
'\xEA', '\xAE', '\x82', 0,
'\xEA', '\xAE', '\x83', 0,
'\xEA', '\xAE', '\x84', 0,
'\xEA', '\xAE', '\x85', 0,
'\xEA', '\xAE', '\x86', 0,
'\xEA', '\xAE', '\x87', 0,
'\xEA', '\xAE', '\x88', 0,
'\xEA', '\xAE', '\x89', 0,
'\xEA', '\xAE', '\x8A', 0,
'\xEA', '\xAE', '\x8B', 0,
'\xEA', '\xAE', '\x8C', 0,
'\xEA', '\xAE', '\x8D', 0,
'\xEA', '\xAE', '\x8E', 0,
'\xEA', '\xAE', '\x8F', 0,
};
static const char s_StringToCaseInsensitiveE18F[64 * 4] = {
'\xEA', '\xAE', '\x90', 0,
'\xEA', '\xAE', '\x91', 0,
'\xEA', '\xAE', '\x92', 0,
'\xEA', '\xAE', '\x93', 0,
'\xEA', '\xAE', '\x94', 0,
'\xEA', '\xAE', '\x95', 0,
'\xEA', '\xAE', '\x96', 0,
'\xEA', '\xAE', '\x97', 0,
'\xEA', '\xAE', '\x98', 0,
'\xEA', '\xAE', '\x99', 0,
'\xEA', '\xAE', '\x9A', 0,
'\xEA', '\xAE', '\x9B', 0,
'\xEA', '\xAE', '\x9C', 0,
'\xEA', '\xAE', '\x9D', 0,
'\xEA', '\xAE', '\x9E', 0,
'\xEA', '\xAE', '\x9F', 0,
'\xEA', '\xAE', '\xA0', 0,
'\xEA', '\xAE', '\xA1', 0,
'\xEA', '\xAE', '\xA2', 0,
'\xEA', '\xAE', '\xA3', 0,
'\xEA', '\xAE', '\xA4', 0,
'\xEA', '\xAE', '\xA5', 0,
'\xEA', '\xAE', '\xA6', 0,
'\xEA', '\xAE', '\xA7', 0,
'\xEA', '\xAE', '\xA8', 0,
'\xEA', '\xAE', '\xA9', 0,
'\xEA', '\xAE', '\xAA', 0,
'\xEA', '\xAE', '\xAB', 0,
'\xEA', '\xAE', '\xAC', 0,
'\xEA', '\xAE', '\xAD', 0,
'\xEA', '\xAE', '\xAE', 0,
'\xEA', '\xAE', '\xAF', 0,
'\xEA', '\xAE', '\xB0', 0,
'\xEA', '\xAE', '\xB1', 0,
'\xEA', '\xAE', '\xB2', 0,
'\xEA', '\xAE', '\xB3', 0,
'\xEA', '\xAE', '\xB4', 0,
'\xEA', '\xAE', '\xB5', 0,
'\xEA', '\xAE', '\xB6', 0,
'\xEA', '\xAE', '\xB7', 0,
'\xEA', '\xAE', '\xB8', 0,
'\xEA', '\xAE', '\xB9', 0,
'\xEA', '\xAE', '\xBA', 0,
'\xEA', '\xAE', '\xBB', 0,
'\xEA', '\xAE', '\xBC', 0,
'\xEA', '\xAE', '\xBD', 0,
'\xEA', '\xAE', '\xBE', 0,
'\xEA', '\xAE', '\xBF', 0,
'\xE1', '\x8F', '\xB8', 0,
'\xE1', '\x8F', '\xB9', 0,
'\xE1', '\x8F', '\xBA', 0,
'\xE1', '\x8F', '\xBB', 0,
'\xE1', '\x8F', '\xBC', 0,
'\xE1', '\x8F', '\xBD', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1B2[64 * 4] = {
'\xD0', '\xB2', '\x00', 0,
'\xD0', '\xB4', '\x00', 0,
'\xD0', '\xBE', '\x00', 0,
'\xD1', '\x81', '\x00', 0,
'\xD1', '\x82', '\x00', 0,
'\xD1', '\x82', '\x00', 0,
'\xD1', '\x8A', '\x00', 0,
'\xD1', '\xA3', '\x00', 0,
'\xEA', '\x99', '\x8B', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\x83', '\x90', 0,
'\xE1', '\x83', '\x91', 0,
'\xE1', '\x83', '\x92', 0,
'\xE1', '\x83', '\x93', 0,
'\xE1', '\x83', '\x94', 0,
'\xE1', '\x83', '\x95', 0,
'\xE1', '\x83', '\x96', 0,
'\xE1', '\x83', '\x97', 0,
'\xE1', '\x83', '\x98', 0,
'\xE1', '\x83', '\x99', 0,
'\xE1', '\x83', '\x9A', 0,
'\xE1', '\x83', '\x9B', 0,
'\xE1', '\x83', '\x9C', 0,
'\xE1', '\x83', '\x9D', 0,
'\xE1', '\x83', '\x9E', 0,
'\xE1', '\x83', '\x9F', 0,
'\xE1', '\x83', '\xA0', 0,
'\xE1', '\x83', '\xA1', 0,
'\xE1', '\x83', '\xA2', 0,
'\xE1', '\x83', '\xA3', 0,
'\xE1', '\x83', '\xA4', 0,
'\xE1', '\x83', '\xA5', 0,
'\xE1', '\x83', '\xA6', 0,
'\xE1', '\x83', '\xA7', 0,
'\xE1', '\x83', '\xA8', 0,
'\xE1', '\x83', '\xA9', 0,
'\xE1', '\x83', '\xAA', 0,
'\xE1', '\x83', '\xAB', 0,
'\xE1', '\x83', '\xAC', 0,
'\xE1', '\x83', '\xAD', 0,
'\xE1', '\x83', '\xAE', 0,
'\xE1', '\x83', '\xAF', 0,
'\xE1', '\x83', '\xB0', 0,
'\xE1', '\x83', '\xB1', 0,
'\xE1', '\x83', '\xB2', 0,
'\xE1', '\x83', '\xB3', 0,
'\xE1', '\x83', '\xB4', 0,
'\xE1', '\x83', '\xB5', 0,
'\xE1', '\x83', '\xB6', 0,
'\xE1', '\x83', '\xB7', 0,
'\xE1', '\x83', '\xB8', 0,
'\xE1', '\x83', '\xB9', 0,
'\xE1', '\x83', '\xBA', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\x83', '\xBD', 0,
'\xE1', '\x83', '\xBE', 0,
'\xE1', '\x83', '\xBF', 0,
};
static const char s_StringToCaseInsensitiveE1B8[64 * 4] = {
'\xE1', '\xB8', '\x81', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x83', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x85', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x87', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x89', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x8B', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x8D', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x8F', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x91', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x93', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x95', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x97', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x99', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x9B', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x9D', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\x9F', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xA1', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xA3', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xA5', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xA7', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xA9', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xAB', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xAD', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xAF', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xB1', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xB3', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xB5', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xB7', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xB9', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xBB', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xBD', 0,
0, 0, 0, 0,
'\xE1', '\xB8', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1B9[64 * 4] = {
'\xE1', '\xB9', '\x81', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x83', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x85', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x87', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x89', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x8B', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x8D', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x8F', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x91', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x93', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x95', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x97', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x99', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x9B', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x9D', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\x9F', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xA1', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xA3', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xA5', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xA7', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xA9', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xAB', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xAD', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xAF', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xB1', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xB3', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xB5', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xB7', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xB9', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xBB', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xBD', 0,
0, 0, 0, 0,
'\xE1', '\xB9', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1BA[64 * 4] = {
'\xE1', '\xBA', '\x81', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x83', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x85', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x87', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x89', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x8B', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x8D', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x8F', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x91', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x93', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\x95', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xB9', '\xA1', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xC3', '\x9F', '\x00', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xA1', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xA3', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xA5', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xA7', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xA9', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xAB', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xAD', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xAF', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xB1', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xB3', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xB5', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xB7', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xB9', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xBB', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xBD', 0,
0, 0, 0, 0,
'\xE1', '\xBA', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1BB[64 * 4] = {
'\xE1', '\xBB', '\x81', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x83', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x85', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x87', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x89', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x8B', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x8D', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x8F', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x91', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x93', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x95', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x97', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x99', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x9B', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x9D', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\x9F', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xA1', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xA3', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xA5', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xA7', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xA9', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xAB', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xAD', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xAF', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xB1', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xB3', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xB5', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xB7', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xB9', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xBB', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xBD', 0,
0, 0, 0, 0,
'\xE1', '\xBB', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1BC[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBC', '\x80', 0,
'\xE1', '\xBC', '\x81', 0,
'\xE1', '\xBC', '\x82', 0,
'\xE1', '\xBC', '\x83', 0,
'\xE1', '\xBC', '\x84', 0,
'\xE1', '\xBC', '\x85', 0,
'\xE1', '\xBC', '\x86', 0,
'\xE1', '\xBC', '\x87', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBC', '\x90', 0,
'\xE1', '\xBC', '\x91', 0,
'\xE1', '\xBC', '\x92', 0,
'\xE1', '\xBC', '\x93', 0,
'\xE1', '\xBC', '\x94', 0,
'\xE1', '\xBC', '\x95', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBC', '\xA0', 0,
'\xE1', '\xBC', '\xA1', 0,
'\xE1', '\xBC', '\xA2', 0,
'\xE1', '\xBC', '\xA3', 0,
'\xE1', '\xBC', '\xA4', 0,
'\xE1', '\xBC', '\xA5', 0,
'\xE1', '\xBC', '\xA6', 0,
'\xE1', '\xBC', '\xA7', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBC', '\xB0', 0,
'\xE1', '\xBC', '\xB1', 0,
'\xE1', '\xBC', '\xB2', 0,
'\xE1', '\xBC', '\xB3', 0,
'\xE1', '\xBC', '\xB4', 0,
'\xE1', '\xBC', '\xB5', 0,
'\xE1', '\xBC', '\xB6', 0,
'\xE1', '\xBC', '\xB7', 0,
};
static const char s_StringToCaseInsensitiveE1BD[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBD', '\x80', 0,
'\xE1', '\xBD', '\x81', 0,
'\xE1', '\xBD', '\x82', 0,
'\xE1', '\xBD', '\x83', 0,
'\xE1', '\xBD', '\x84', 0,
'\xE1', '\xBD', '\x85', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,
'\xE1', '\xBD', '\x91', 0,
0, 0, 0, 0,
'\xE1', '\xBD', '\x93', 0,
0, 0, 0, 0,
'\xE1', '\xBD', '\x95', 0,
0, 0, 0, 0,
'\xE1', '\xBD', '\x97', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBD', '\xA0', 0,
'\xE1', '\xBD', '\xA1', 0,
'\xE1', '\xBD', '\xA2', 0,
'\xE1', '\xBD', '\xA3', 0,
'\xE1', '\xBD', '\xA4', 0,
'\xE1', '\xBD', '\xA5', 0,
'\xE1', '\xBD', '\xA6', 0,
'\xE1', '\xBD', '\xA7', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1BE[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBE', '\x80', 0,
'\xE1', '\xBE', '\x81', 0,
'\xE1', '\xBE', '\x82', 0,
'\xE1', '\xBE', '\x83', 0,
'\xE1', '\xBE', '\x84', 0,
'\xE1', '\xBE', '\x85', 0,
'\xE1', '\xBE', '\x86', 0,
'\xE1', '\xBE', '\x87', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBE', '\x90', 0,
'\xE1', '\xBE', '\x91', 0,
'\xE1', '\xBE', '\x92', 0,
'\xE1', '\xBE', '\x93', 0,
'\xE1', '\xBE', '\x94', 0,
'\xE1', '\xBE', '\x95', 0,
'\xE1', '\xBE', '\x96', 0,
'\xE1', '\xBE', '\x97', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBE', '\xA0', 0,
'\xE1', '\xBE', '\xA1', 0,
'\xE1', '\xBE', '\xA2', 0,
'\xE1', '\xBE', '\xA3', 0,
'\xE1', '\xBE', '\xA4', 0,
'\xE1', '\xBE', '\xA5', 0,
'\xE1', '\xBE', '\xA6', 0,
'\xE1', '\xBE', '\xA7', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBE', '\xB0', 0,
'\xE1', '\xBE', '\xB1', 0,
'\xE1', '\xBD', '\xB0', 0,
'\xE1', '\xBD', '\xB1', 0,
'\xE1', '\xBE', '\xB3', 0,
0, 0, 0, 0,
'\xCE', '\xB9', '\x00', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE1BF[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBD', '\xB2', 0,
'\xE1', '\xBD', '\xB3', 0,
'\xE1', '\xBD', '\xB4', 0,
'\xE1', '\xBD', '\xB5', 0,
'\xE1', '\xBF', '\x83', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBF', '\x90', 0,
'\xE1', '\xBF', '\x91', 0,
'\xE1', '\xBD', '\xB6', 0,
'\xE1', '\xBD', '\xB7', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBF', '\xA0', 0,
'\xE1', '\xBF', '\xA1', 0,
'\xE1', '\xBD', '\xBA', 0,
'\xE1', '\xBD', '\xBB', 0,
'\xE1', '\xBF', '\xA5', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE1', '\xBD', '\xB8', 0,
'\xE1', '\xBD', '\xB9', 0,
'\xE1', '\xBD', '\xBC', 0,
'\xE1', '\xBD', '\xBD', 0,
'\xE1', '\xBF', '\xB3', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE284[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xCF', '\x89', '\x00', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\x6B', '\x00', '\x00', 0,
'\xC3', '\xA5', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\x85', '\x8E', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE285[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\x85', '\xB0', 0,
'\xE2', '\x85', '\xB1', 0,
'\xE2', '\x85', '\xB2', 0,
'\xE2', '\x85', '\xB3', 0,
'\xE2', '\x85', '\xB4', 0,
'\xE2', '\x85', '\xB5', 0,
'\xE2', '\x85', '\xB6', 0,
'\xE2', '\x85', '\xB7', 0,
'\xE2', '\x85', '\xB8', 0,
'\xE2', '\x85', '\xB9', 0,
'\xE2', '\x85', '\xBA', 0,
'\xE2', '\x85', '\xBB', 0,
'\xE2', '\x85', '\xBC', 0,
'\xE2', '\x85', '\xBD', 0,
'\xE2', '\x85', '\xBE', 0,
'\xE2', '\x85', '\xBF', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE286[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\x86', '\x84', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE292[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\x93', '\x90', 0,
'\xE2', '\x93', '\x91', 0,
'\xE2', '\x93', '\x92', 0,
'\xE2', '\x93', '\x93', 0,
'\xE2', '\x93', '\x94', 0,
'\xE2', '\x93', '\x95', 0,
'\xE2', '\x93', '\x96', 0,
'\xE2', '\x93', '\x97', 0,
'\xE2', '\x93', '\x98', 0,
'\xE2', '\x93', '\x99', 0,
};
static const char s_StringToCaseInsensitiveE293[64 * 4] = {
'\xE2', '\x93', '\x9A', 0,
'\xE2', '\x93', '\x9B', 0,
'\xE2', '\x93', '\x9C', 0,
'\xE2', '\x93', '\x9D', 0,
'\xE2', '\x93', '\x9E', 0,
'\xE2', '\x93', '\x9F', 0,
'\xE2', '\x93', '\xA0', 0,
'\xE2', '\x93', '\xA1', 0,
'\xE2', '\x93', '\xA2', 0,
'\xE2', '\x93', '\xA3', 0,
'\xE2', '\x93', '\xA4', 0,
'\xE2', '\x93', '\xA5', 0,
'\xE2', '\x93', '\xA6', 0,
'\xE2', '\x93', '\xA7', 0,
'\xE2', '\x93', '\xA8', 0,
'\xE2', '\x93', '\xA9', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE2B0[64 * 4] = {
'\xE2', '\xB0', '\xB0', 0,
'\xE2', '\xB0', '\xB1', 0,
'\xE2', '\xB0', '\xB2', 0,
'\xE2', '\xB0', '\xB3', 0,
'\xE2', '\xB0', '\xB4', 0,
'\xE2', '\xB0', '\xB5', 0,
'\xE2', '\xB0', '\xB6', 0,
'\xE2', '\xB0', '\xB7', 0,
'\xE2', '\xB0', '\xB8', 0,
'\xE2', '\xB0', '\xB9', 0,
'\xE2', '\xB0', '\xBA', 0,
'\xE2', '\xB0', '\xBB', 0,
'\xE2', '\xB0', '\xBC', 0,
'\xE2', '\xB0', '\xBD', 0,
'\xE2', '\xB0', '\xBE', 0,
'\xE2', '\xB0', '\xBF', 0,
'\xE2', '\xB1', '\x80', 0,
'\xE2', '\xB1', '\x81', 0,
'\xE2', '\xB1', '\x82', 0,
'\xE2', '\xB1', '\x83', 0,
'\xE2', '\xB1', '\x84', 0,
'\xE2', '\xB1', '\x85', 0,
'\xE2', '\xB1', '\x86', 0,
'\xE2', '\xB1', '\x87', 0,
'\xE2', '\xB1', '\x88', 0,
'\xE2', '\xB1', '\x89', 0,
'\xE2', '\xB1', '\x8A', 0,
'\xE2', '\xB1', '\x8B', 0,
'\xE2', '\xB1', '\x8C', 0,
'\xE2', '\xB1', '\x8D', 0,
'\xE2', '\xB1', '\x8E', 0,
'\xE2', '\xB1', '\x8F', 0,
'\xE2', '\xB1', '\x90', 0,
'\xE2', '\xB1', '\x91', 0,
'\xE2', '\xB1', '\x92', 0,
'\xE2', '\xB1', '\x93', 0,
'\xE2', '\xB1', '\x94', 0,
'\xE2', '\xB1', '\x95', 0,
'\xE2', '\xB1', '\x96', 0,
'\xE2', '\xB1', '\x97', 0,
'\xE2', '\xB1', '\x98', 0,
'\xE2', '\xB1', '\x99', 0,
'\xE2', '\xB1', '\x9A', 0,
'\xE2', '\xB1', '\x9B', 0,
'\xE2', '\xB1', '\x9C', 0,
'\xE2', '\xB1', '\x9D', 0,
'\xE2', '\xB1', '\x9E', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE2B1[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB1', '\xA1', 0,
0, 0, 0, 0,
'\xC9', '\xAB', '\x00', 0,
'\xE1', '\xB5', '\xBD', 0,
'\xC9', '\xBD', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB1', '\xA8', 0,
0, 0, 0, 0,
'\xE2', '\xB1', '\xAA', 0,
0, 0, 0, 0,
'\xE2', '\xB1', '\xAC', 0,
0, 0, 0, 0,
'\xC9', '\x91', '\x00', 0,
'\xC9', '\xB1', '\x00', 0,
'\xC9', '\x90', '\x00', 0,
'\xC9', '\x92', '\x00', 0,
0, 0, 0, 0,
'\xE2', '\xB1', '\xB3', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB1', '\xB6', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xC8', '\xBF', '\x00', 0,
'\xC9', '\x80', '\x00', 0,
};
static const char s_StringToCaseInsensitiveE2B2[64 * 4] = {
'\xE2', '\xB2', '\x81', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x83', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x85', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x87', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x89', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x8B', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x8D', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x8F', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x91', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x93', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x95', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x97', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x99', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x9B', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x9D', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\x9F', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xA1', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xA3', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xA5', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xA7', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xA9', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xAB', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xAD', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xAF', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xB1', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xB3', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xB5', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xB7', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xB9', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xBB', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xBD', 0,
0, 0, 0, 0,
'\xE2', '\xB2', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveE2B3[64 * 4] = {
'\xE2', '\xB3', '\x81', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x83', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x85', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x87', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x89', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x8B', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x8D', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x8F', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x91', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x93', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x95', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x97', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x99', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x9B', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x9D', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\x9F', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\xA1', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\xA3', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB3', '\xAC', 0,
0, 0, 0, 0,
'\xE2', '\xB3', '\xAE', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xE2', '\xB3', '\xB3', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA99[64 * 4] = {
'\xEA', '\x99', '\x81', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x83', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x85', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x87', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x89', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x8B', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x8D', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x8F', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x91', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x93', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x95', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x97', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x99', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x9B', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x9D', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\x9F', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xA1', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xA3', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xA5', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xA7', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xA9', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xAB', 0,
0, 0, 0, 0,
'\xEA', '\x99', '\xAD', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA9A[64 * 4] = {
'\xEA', '\x9A', '\x81', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x83', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x85', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x87', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x89', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x8B', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x8D', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x8F', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x91', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x93', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x95', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x97', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x99', 0,
0, 0, 0, 0,
'\xEA', '\x9A', '\x9B', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA9C[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9C', '\xA3', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xA5', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xA7', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xA9', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xAB', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xAD', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xAF', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9C', '\xB3', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xB5', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xB7', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xB9', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xBB', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xBD', 0,
0, 0, 0, 0,
'\xEA', '\x9C', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA9D[64 * 4] = {
'\xEA', '\x9D', '\x81', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x83', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x85', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x87', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x89', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x8B', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x8D', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x8F', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x91', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x93', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x95', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x97', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x99', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x9B', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x9D', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\x9F', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xA1', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xA3', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xA5', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xA7', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xA9', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xAB', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xAD', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xAF', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xBA', 0,
0, 0, 0, 0,
'\xEA', '\x9D', '\xBC', 0,
0, 0, 0, 0,
'\xE1', '\xB5', '\xB9', 0,
'\xEA', '\x9D', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA9E[64 * 4] = {
'\xEA', '\x9E', '\x81', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x83', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x85', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x87', 0,
0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9E', '\x8C', 0,
0, 0, 0, 0,
'\xC9', '\xA5', '\x00', 0,
0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9E', '\x91', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x93', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9E', '\x97', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x99', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x9B', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x9D', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x9F', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xA1', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xA3', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xA5', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xA7', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xA9', 0,
0, 0, 0, 0,
'\xC9', '\xA6', '\x00', 0,
'\xC9', '\x9C', '\x00', 0,
'\xC9', '\xA1', '\x00', 0,
'\xC9', '\xAC', '\x00', 0,
'\xC9', '\xAA', '\x00', 0,
0, 0, 0, 0,
'\xCA', '\x9E', '\x00', 0,
'\xCA', '\x87', '\x00', 0,
'\xCA', '\x9D', '\x00', 0,
'\xEA', '\xAD', '\x93', 0,
'\xEA', '\x9E', '\xB5', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xB7', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xB9', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xBB', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xBD', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\xBF', 0,
0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEA9F[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9F', '\x83', 0,
0, 0, 0, 0,
'\xEA', '\x9E', '\x94', 0,
'\xCA', '\x82', '\x00', 0,
'\xE1', '\xB6', '\x8E', 0,
'\xEA', '\x9F', '\x88', 0,
0, 0, 0, 0,
'\xEA', '\x9F', '\x8A', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xEA', '\x9F', '\xB6', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveEFBC[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,
'\xEF', '\xBD', '\x81', 0,
'\xEF', '\xBD', '\x82', 0,
'\xEF', '\xBD', '\x83', 0,
'\xEF', '\xBD', '\x84', 0,
'\xEF', '\xBD', '\x85', 0,
'\xEF', '\xBD', '\x86', 0,
'\xEF', '\xBD', '\x87', 0,
'\xEF', '\xBD', '\x88', 0,
'\xEF', '\xBD', '\x89', 0,
'\xEF', '\xBD', '\x8A', 0,
'\xEF', '\xBD', '\x8B', 0,
'\xEF', '\xBD', '\x8C', 0,
'\xEF', '\xBD', '\x8D', 0,
'\xEF', '\xBD', '\x8E', 0,
'\xEF', '\xBD', '\x8F', 0,
'\xEF', '\xBD', '\x90', 0,
'\xEF', '\xBD', '\x91', 0,
'\xEF', '\xBD', '\x92', 0,
'\xEF', '\xBD', '\x93', 0,
'\xEF', '\xBD', '\x94', 0,
'\xEF', '\xBD', '\x95', 0,
'\xEF', '\xBD', '\x96', 0,
'\xEF', '\xBD', '\x97', 0,
'\xEF', '\xBD', '\x98', 0,
'\xEF', '\xBD', '\x99', 0,
'\xEF', '\xBD', '\x9A', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveF09090[64 * 4] = {
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x90', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
'\xF0', '\x90', '\x91', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveF09092[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
};
static const char s_StringToCaseInsensitiveF09093[64 * 4] = {
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
'\xF0', '\x90', '\x93', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveF090B2[64 * 4] = {
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
'\xF0', '\x90', '\xB3', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveF091A2[64 * 4] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
'\xF0', '\x91', '\xA3', 0,
};
static const char s_StringToCaseInsensitiveF096B9[64 * 4] = {
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
'\xF0', '\x96', '\xB9', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char s_StringToCaseInsensitiveF09EA4[64 * 4] = {
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA4', 0,
'\xF0', '\x9E', '\xA5', 0,
'\xF0', '\x9E', '\xA5', 0,
'\xF0', '\x9E', '\xA5', 0,
'\xF0', '\x9E', '\xA5', 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMap[32] = {
0, 0,
s_StringToCaseInsensitiveC2,
s_StringToCaseInsensitiveC3,
s_StringToCaseInsensitiveC4,
s_StringToCaseInsensitiveC5,
s_StringToCaseInsensitiveC6,
s_StringToCaseInsensitiveC7,
s_StringToCaseInsensitiveC8,
s_StringToCaseInsensitiveC9,
0, 0, 0,
s_StringToCaseInsensitiveCD,
s_StringToCaseInsensitiveCE,
s_StringToCaseInsensitiveCF,
s_StringToCaseInsensitiveD0,
s_StringToCaseInsensitiveD1,
s_StringToCaseInsensitiveD2,
s_StringToCaseInsensitiveD3,
s_StringToCaseInsensitiveD4,
s_StringToCaseInsensitiveD5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapE1[64] = {
0, 0,
s_StringToCaseInsensitiveE182,
s_StringToCaseInsensitiveE183,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveE18E,
s_StringToCaseInsensitiveE18F,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveE1B2,
0, 0, 0, 0, 0,
s_StringToCaseInsensitiveE1B8,
s_StringToCaseInsensitiveE1B9,
s_StringToCaseInsensitiveE1BA,
s_StringToCaseInsensitiveE1BB,
s_StringToCaseInsensitiveE1BC,
s_StringToCaseInsensitiveE1BD,
s_StringToCaseInsensitiveE1BE,
s_StringToCaseInsensitiveE1BF,
};
static const char *s_StringToCaseInsensitiveMapE2[64] = {
0, 0, 0, 0,
s_StringToCaseInsensitiveE284,
s_StringToCaseInsensitiveE285,
s_StringToCaseInsensitiveE286,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveE292,
s_StringToCaseInsensitiveE293,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveE2B0,
s_StringToCaseInsensitiveE2B1,
s_StringToCaseInsensitiveE2B2,
s_StringToCaseInsensitiveE2B3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapEA[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveEA99,
s_StringToCaseInsensitiveEA9A,
0,
s_StringToCaseInsensitiveEA9C,
s_StringToCaseInsensitiveEA9D,
s_StringToCaseInsensitiveEA9E,
s_StringToCaseInsensitiveEA9F,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapEF[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveEFBC,
0, 0, 0,
};
static const char **s_StringToCaseInsensitiveMapMap[16] = {
0,
s_StringToCaseInsensitiveMapE1,
s_StringToCaseInsensitiveMapE2,
0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveMapEA,
0, 0, 0, 0,
s_StringToCaseInsensitiveMapEF,
};
static const char *s_StringToCaseInsensitiveMapF090[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveF09090,
0,
s_StringToCaseInsensitiveF09092,
s_StringToCaseInsensitiveF09093,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveF090B2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapF091[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveF091A2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapF096[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveF096B9,
0, 0, 0, 0, 0, 0,
};
static const char *s_StringToCaseInsensitiveMapF09E[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveF09EA4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char **s_StringToCaseInsensitiveMapMapF0[64] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveMapF090,
s_StringToCaseInsensitiveMapF091,
0, 0, 0, 0,
s_StringToCaseInsensitiveMapF096,
0, 0, 0, 0, 0, 0, 0,
s_StringToCaseInsensitiveMapF09E,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const char ***s_StringToCaseInsensitiveMapMapMap[8] = {
s_StringToCaseInsensitiveMapMapF0,
0, 0, 0, 0, 0, 0, 0,
};
static const char s_LowerAscii[] = {
'a', 0, 'b', 0, 'c', 0, 'd', 0, 'e', 0, 'f', 0, 'g', 0,
'h', 0, 'i', 0, 'j', 0, 'k', 0, 'l', 0, 'm', 0, 'n', 0,
'o', 0, 'p', 0, 'q', 0, 'r', 0, 's', 0, 't', 0, 'u', 0,
'v', 0, 'w', 0, 'x', 0, 'y', 0, 'z', 0, 0, 0, 0, 0
};
// ***************************************************************************
const char *fetchToCaseInsensitiveAsUtf8(const char **str)
{
unsigned char c = *(*str);
unsigned char d, e, f;
if (c < 0x80)
{
if (c >= 'A' && c <= 'Z')
{
// 1-byte UTF-8
++(*str);
return &s_LowerAscii[(c - 'A') << 1];
}
}
else if (c < 0xC0)
{
// non-starting byte
}
else if (c < 0xE0)
{
// 2-byte UTF-8
if (((d = (*str)[1]) & 0xC0) == 0x80)
{
const char *table = s_StringToCaseInsensitiveMap[c & 0x1F];
if (table)
{
unsigned char idx = (d & 0x3F) << 2;
if (table[idx])
{
(*str) += 2;
return &table[idx];
}
}
}
}
else if (c < 0xF0)
{
// 3-byte UTF-8
if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80)
{
const char **map = s_StringToCaseInsensitiveMapMap[c & 0x0F];
if (map)
{
const char *table = map[d & 0x3F];
if (table)
{
unsigned char idx = (e & 0x3F) << 2;
if (table[idx])
{
(*str) += 3;
return &table[idx];
}
}
}
}
}
else if (c < 0xF8)
{
// 4-byte UTF-8
if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80 && ((f = (*str)[3]) & 0xC0) == 0x80)
{
const char ***mapMap = s_StringToCaseInsensitiveMapMapMap[c & 0x07];
if (mapMap)
{
const char **map = mapMap[d & 0x3F];
if (map)
{
const char *table = map[e & 0x3F];
if (table)
{
unsigned char idx = (f & 0x3F) << 2;
if (table[idx])
{
(*str) += 4;
return &table[idx];
}
}
}
}
}
}
return NULL;
}
// ***************************************************************************
int compareCaseInsensitive(const char *a, const char *b)
{
// while (*a != 0 && *b != 0)
for (; ;)
{
const char *ca = fetchToCaseInsensitiveAsUtf8(&a);
const char *cb = fetchToCaseInsensitiveAsUtf8(&b);
if (!ca && !cb)
{
// Easy case, ASCII compare or junk
if (*a != *b)
{
if (*a > * b) return 1;
else return -1;
}
else if (!*a) // Equal and NUL, ends both
{
return 0;
}
++a;
++b;
}
else if (!cb)
{
// String a changed lowercase, iterate ca until NUL alongside b
nlassert(*ca);
do
{
if (*ca != *b)
{
if (*ca > *b) return 1;
else return -1;
}
++ca;
++b;
} while (*ca);
}
else if (!ca)
{
// String b changed lowercase, iterate a alongside cb until NUL
nlassert(*cb);
do
{
if (*a != *cb)
{
if (*a > *cb) return 1;
else return -1;
}
++a;
++cb;
} while (*cb);
}
else
{
// Both strings changed lowercase
if (ca != cb) // Only check if it's a different result
{
do
{
if (*ca != *cb)
{
if (*ca > *cb) return 1;
else return -1;
}
++ca;
++cb;
} while (*ca && *cb);
}
}
}
// if (*a == *b) return 0;
// if (*a > *b) return 1;
// return -1;
}
// ***************************************************************************
int compareCaseInsensitive(const char *a, size_t lenA, const char *b, size_t lenB)
{
const char *ma = a + lenA;
const char *mb = b + lenB;
for (; ;)
{
if (a >= ma)
{
if (b >= mb)
{
return 0; // Both strings ended
}
else
{
return 1; // A is longer
}
}
if (b >= mb)
{
return -1; // B is longer
}
const char *ca = fetchToCaseInsensitiveAsUtf8(&a);
const char *cb = fetchToCaseInsensitiveAsUtf8(&b);
if (!ca && !cb)
{
// Easy case, ASCII compare or junk
if (*a != *b)
{
if (*a > * b) return 1;
else return -1;
}
/*
else if (!*a) // Equal and NUL, ends both
{
return 0;
}
*/
++a;
++b;
}
else if (!cb)
{
// String a changed lowercase, iterate ca until NUL alongside b
nlassert(*ca);
do
{
if (*ca != *b)
{
if (*ca > *b) return 1;
else return -1;
}
++ca;
++b;
} while (*ca);
}
else if (!ca)
{
// String b changed lowercase, iterate a alongside cb until NUL
nlassert(*cb);
do
{
if (*a != *cb)
{
if (*a > *cb) return 1;
else return -1;
}
++a;
++cb;
} while (*cb);
}
else
{
// Both strings changed lowercase
if (ca != cb) // Only check if it's a different result
{
do
{
if (*ca != *cb)
{
if (*ca > *cb) return 1;
else return -1;
}
++ca;
++cb;
} while (*ca && *cb);
}
}
}
}
// ***************************************************************************
NL_FORCE_INLINE void appendToCaseInsensitiveAsUtf8(std::string &res, const char *str, ptrdiff_t &i)
{
unsigned char c = str[i];
unsigned char d, e, f;
if (c < 0x80)
{
if (c >= 'A' && c <= 'Z')
{
// 1-byte UTF-8
c += 'a' - 'A';
}
}
else if (c < 0xC0)
{
// non-starting byte
}
else if (c < 0xE0)
{
// 2-byte UTF-8
if (((d = str[i + 1]) & 0xC0) == 0x80)
{
const char *table = s_StringToCaseInsensitiveMap[c & 0x1F];
if (table)
{
unsigned char idx = (d & 0x3F) << 2;
if (table[idx])
{
res += &table[idx];
i += 2;
return;
}
}
}
}
else if (c < 0xF0)
{
// 3-byte UTF-8
if (((d = str[i + 1]) & 0xC0) == 0x80 && ((e = str[i + 2]) & 0xC0) == 0x80)
{
const char **map = s_StringToCaseInsensitiveMapMap[c & 0x0F];
if (map)
{
const char *table = map[d & 0x3F];
if (table)
{
unsigned char idx = (e & 0x3F) << 2;
if (table[idx])
{
res += &table[idx];
i += 3;
return;
}
}
}
}
}
else if (c < 0xF8)
{
// 4-byte UTF-8
if (((d = str[i + 1]) & 0xC0) == 0x80 && ((e = str[i + 2]) & 0xC0) == 0x80 && ((f = str[i + 3]) & 0xC0) == 0x80)
{
const char ***mapMap = s_StringToCaseInsensitiveMapMapMap[c & 0x07];
if (mapMap)
{
const char **map = mapMap[d & 0x3F];
if (map)
{
const char *table = map[e & 0x3F];
if (table)
{
unsigned char idx = (f & 0x3F) << 2;
if (table[idx])
{
res += &table[idx];
i += 4;
return;
}
}
}
}
}
}
res += c;
++i;
}
// ***************************************************************************
std::string toCaseInsensitive(const char *str)
{
// UTF-8 toCaseInsensitive
std::string res;
for (ptrdiff_t i = 0; str[i];)
appendToCaseInsensitiveAsUtf8(res, str, i);
return res;
}
// ***************************************************************************
std::string toCaseInsensitive(const std::string &str)
{
// UTF-8 toCaseInsensitive
std::string res;
res.reserve(str.size() + (str.size() >> 2));
const char *cstr = &str[0];
for (ptrdiff_t i = 0; i < (ptrdiff_t)str.size();)
appendToCaseInsensitiveAsUtf8(res, cstr, i);
return res;
}
} // NLMISC