[Groonga-commit] groonga/groonga-normalizer-mysql [master] Use generated general_ci_table

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Feb 10 21:55:26 JST 2013


Kouhei Sutou	2013-02-10 21:55:26 +0900 (Sun, 10 Feb 2013)

  New Revision: e38ab1c63abd79c6afba88fcaa3705671a7f5b47
  https://github.com/groonga/groonga-normalizer-mysql/commit/e38ab1c63abd79c6afba88fcaa3705671a7f5b47

  Log:
    Use generated general_ci_table

  Added files:
    normalizers/mysql_general_ci_table.h
  Modified files:
    normalizers/mysql.c

  Modified: normalizers/mysql.c (+3 -1506)
===================================================================
--- normalizers/mysql.c    2013-02-10 21:55:01 +0900 (ad4e2f7)
+++ normalizers/mysql.c    2013-02-10 21:55:26 +0900 (39eabfc)
@@ -16,36 +16,12 @@
   License along with this library; if not, write to the Free
   Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
   MA 02110-1301, USA
-
-  This file uses normalization table defined in
-  MySQL-5.5.29/strings/ctype-utf8.c. The following is the header of
-  the file:
-
-    Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; version 2
-    of the License.
-
-    This library 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
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the Free
-    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-    MA 02110-1301, USA
-
-    UTF8 according RFC 2279
-    Written by Alexander Barkov <bar �� udm.net>
 */
 
 #include <groonga/normalizer.h>
 #include <groonga/nfkc.h>
 
-#include <stdint.h>
+#include "mysql_general_ci_table.h"
 
 #ifdef __GNUC__
 #  define GNUC_UNUSED __attribute__((__unused__))
@@ -53,1484 +29,6 @@
 #  define GNUC_UNUSED
 #endif
 
-/* based on mysql-5.5.29/strings/ctype-utf8.c: start */
-static uint32_t plane00[] = {
-  0x0000,  0x0001,
-  0x0002,  0x0003,
-  0x0004,  0x0005,
-  0x0006,  0x0007,
-  0x0008,  0x0009,
-  0x000A,  0x000B,
-  0x000C,  0x000D,
-  0x000E,  0x000F,
-  0x0010,  0x0011,
-  0x0012,  0x0013,
-  0x0014,  0x0015,
-  0x0016,  0x0017,
-  0x0018,  0x0019,
-  0x001A,  0x001B,
-  0x001C,  0x001D,
-  0x001E,  0x001F,
-  0x0020,  0x0021,
-  0x0022,  0x0023,
-  0x0024,  0x0025,
-  0x0026,  0x0027,
-  0x0028,  0x0029,
-  0x002A,  0x002B,
-  0x002C,  0x002D,
-  0x002E,  0x002F,
-  0x0030,  0x0031,
-  0x0032,  0x0033,
-  0x0034,  0x0035,
-  0x0036,  0x0037,
-  0x0038,  0x0039,
-  0x003A,  0x003B,
-  0x003C,  0x003D,
-  0x003E,  0x003F,
-  0x0040,  0x0041,
-  0x0042,  0x0043,
-  0x0044,  0x0045,
-  0x0046,  0x0047,
-  0x0048,  0x0049,
-  0x004A,  0x004B,
-  0x004C,  0x004D,
-  0x004E,  0x004F,
-  0x0050,  0x0051,
-  0x0052,  0x0053,
-  0x0054,  0x0055,
-  0x0056,  0x0057,
-  0x0058,  0x0059,
-  0x005A,  0x005B,
-  0x005C,  0x005D,
-  0x005E,  0x005F,
-  0x0060,  0x0041,
-  0x0042,  0x0043,
-  0x0044,  0x0045,
-  0x0046,  0x0047,
-  0x0048,  0x0049,
-  0x004A,  0x004B,
-  0x004C,  0x004D,
-  0x004E,  0x004F,
-  0x0050,  0x0051,
-  0x0052,  0x0053,
-  0x0054,  0x0055,
-  0x0056,  0x0057,
-  0x0058,  0x0059,
-  0x005A,  0x007B,
-  0x007C,  0x007D,
-  0x007E,  0x007F,
-  0x0080,  0x0081,
-  0x0082,  0x0083,
-  0x0084,  0x0085,
-  0x0086,  0x0087,
-  0x0088,  0x0089,
-  0x008A,  0x008B,
-  0x008C,  0x008D,
-  0x008E,  0x008F,
-  0x0090,  0x0091,
-  0x0092,  0x0093,
-  0x0094,  0x0095,
-  0x0096,  0x0097,
-  0x0098,  0x0099,
-  0x009A,  0x009B,
-  0x009C,  0x009D,
-  0x009E,  0x009F,
-  0x00A0,  0x00A1,
-  0x00A2,  0x00A3,
-  0x00A4,  0x00A5,
-  0x00A6,  0x00A7,
-  0x00A8,  0x00A9,
-  0x00AA,  0x00AB,
-  0x00AC,  0x00AD,
-  0x00AE,  0x00AF,
-  0x00B0,  0x00B1,
-  0x00B2,  0x00B3,
-  0x00B4,  0x039C,
-  0x00B6,  0x00B7,
-  0x00B8,  0x00B9,
-  0x00BA,  0x00BB,
-  0x00BC,  0x00BD,
-  0x00BE,  0x00BF,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x00C6,  0x0043,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x00D0,  0x004E,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x00D7,
-  0x00D8,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0059,
-  0x00DE,  0x0053,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x00C6,  0x0043,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x00D0,  0x004E,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x00F7,
-  0x00D8,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0059,
-  0x00DE,  0x0059
-};
-
-static uint32_t plane01[] = {
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0043,  0x0043,
-  0x0043,  0x0043,
-  0x0043,  0x0043,
-  0x0043,  0x0043,
-  0x0044,  0x0044,
-  0x0110,  0x0110,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0047,  0x0047,
-  0x0047,  0x0047,
-  0x0047,  0x0047,
-  0x0047,  0x0047,
-  0x0048,  0x0048,
-  0x0126,  0x0126,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x0132,  0x0132,
-  0x004A,  0x004A,
-  0x004B,  0x004B,
-  0x0138,  0x004C,
-  0x004C,  0x004C,
-  0x004C,  0x004C,
-  0x004C,  0x013F,
-  0x013F,  0x0141,
-  0x0141,  0x004E,
-  0x004E,  0x004E,
-  0x004E,  0x004E,
-  0x004E,  0x0149,
-  0x014A,  0x014A,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x0152,  0x0152,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0054,  0x0054,
-  0x0054,  0x0054,
-  0x0166,  0x0166,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0057,  0x0057,
-  0x0059,  0x0059,
-  0x0059,  0x005A,
-  0x005A,  0x005A,
-  0x005A,  0x005A,
-  0x005A,  0x0053,
-  0x0180,  0x0181,
-  0x0182,  0x0182,
-  0x0184,  0x0184,
-  0x0186,  0x0187,
-  0x0187,  0x0189,
-  0x018A,  0x018B,
-  0x018B,  0x018D,
-  0x018E,  0x018F,
-  0x0190,  0x0191,
-  0x0191,  0x0193,
-  0x0194,  0x01F6,
-  0x0196,  0x0197,
-  0x0198,  0x0198,
-  0x019A,  0x019B,
-  0x019C,  0x019D,
-  0x019E,  0x019F,
-  0x004F,  0x004F,
-  0x01A2,  0x01A2,
-  0x01A4,  0x01A4,
-  0x01A6,  0x01A7,
-  0x01A7,  0x01A9,
-  0x01AA,  0x01AB,
-  0x01AC,  0x01AC,
-  0x01AE,  0x0055,
-  0x0055,  0x01B1,
-  0x01B2,  0x01B3,
-  0x01B3,  0x01B5,
-  0x01B5,  0x01B7,
-  0x01B8,  0x01B8,
-  0x01BA,  0x01BB,
-  0x01BC,  0x01BC,
-  0x01BE,  0x01F7,
-  0x01C0,  0x01C1,
-  0x01C2,  0x01C3,
-  0x01C4,  0x01C4,
-  0x01C4,  0x01C7,
-  0x01C7,  0x01C7,
-  0x01CA,  0x01CA,
-  0x01CA,  0x0041,
-  0x0041,  0x0049,
-  0x0049,  0x004F,
-  0x004F,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x018E,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x00C6,  0x00C6,
-  0x01E4,  0x01E4,
-  0x0047,  0x0047,
-  0x004B,  0x004B,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x01B7,  0x01B7,
-  0x004A,  0x01F1,
-  0x01F1,  0x01F1,
-  0x0047,  0x0047,
-  0x01F6,  0x01F7,
-  0x004E,  0x004E,
-  0x0041,  0x0041,
-  0x00C6,  0x00C6,
-  0x00D8,  0x00D8
-};
-
-static uint32_t plane02[] = {
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0053,  0x0053,
-  0x0054,  0x0054,
-  0x021C,  0x021C,
-  0x0048,  0x0048,
-  0x0220,  0x0221,
-  0x0222,  0x0222,
-  0x0224,  0x0224,
-  0x0041,  0x0041,
-  0x0045,  0x0045,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x0059,  0x0059,
-  0x0234,  0x0235,
-  0x0236,  0x0237,
-  0x0238,  0x0239,
-  0x023A,  0x023B,
-  0x023C,  0x023D,
-  0x023E,  0x023F,
-  0x0240,  0x0241,
-  0x0242,  0x0243,
-  0x0244,  0x0245,
-  0x0246,  0x0247,
-  0x0248,  0x0249,
-  0x024A,  0x024B,
-  0x024C,  0x024D,
-  0x024E,  0x024F,
-  0x0250,  0x0251,
-  0x0252,  0x0181,
-  0x0186,  0x0255,
-  0x0189,  0x018A,
-  0x0258,  0x018F,
-  0x025A,  0x0190,
-  0x025C,  0x025D,
-  0x025E,  0x025F,
-  0x0193,  0x0261,
-  0x0262,  0x0194,
-  0x0264,  0x0265,
-  0x0266,  0x0267,
-  0x0197,  0x0196,
-  0x026A,  0x026B,
-  0x026C,  0x026D,
-  0x026E,  0x019C,
-  0x0270,  0x0271,
-  0x019D,  0x0273,
-  0x0274,  0x019F,
-  0x0276,  0x0277,
-  0x0278,  0x0279,
-  0x027A,  0x027B,
-  0x027C,  0x027D,
-  0x027E,  0x027F,
-  0x01A6,  0x0281,
-  0x0282,  0x01A9,
-  0x0284,  0x0285,
-  0x0286,  0x0287,
-  0x01AE,  0x0289,
-  0x01B1,  0x01B2,
-  0x028C,  0x028D,
-  0x028E,  0x028F,
-  0x0290,  0x0291,
-  0x01B7,  0x0293,
-  0x0294,  0x0295,
-  0x0296,  0x0297,
-  0x0298,  0x0299,
-  0x029A,  0x029B,
-  0x029C,  0x029D,
-  0x029E,  0x029F,
-  0x02A0,  0x02A1,
-  0x02A2,  0x02A3,
-  0x02A4,  0x02A5,
-  0x02A6,  0x02A7,
-  0x02A8,  0x02A9,
-  0x02AA,  0x02AB,
-  0x02AC,  0x02AD,
-  0x02AE,  0x02AF,
-  0x02B0,  0x02B1,
-  0x02B2,  0x02B3,
-  0x02B4,  0x02B5,
-  0x02B6,  0x02B7,
-  0x02B8,  0x02B9,
-  0x02BA,  0x02BB,
-  0x02BC,  0x02BD,
-  0x02BE,  0x02BF,
-  0x02C0,  0x02C1,
-  0x02C2,  0x02C3,
-  0x02C4,  0x02C5,
-  0x02C6,  0x02C7,
-  0x02C8,  0x02C9,
-  0x02CA,  0x02CB,
-  0x02CC,  0x02CD,
-  0x02CE,  0x02CF,
-  0x02D0,  0x02D1,
-  0x02D2,  0x02D3,
-  0x02D4,  0x02D5,
-  0x02D6,  0x02D7,
-  0x02D8,  0x02D9,
-  0x02DA,  0x02DB,
-  0x02DC,  0x02DD,
-  0x02DE,  0x02DF,
-  0x02E0,  0x02E1,
-  0x02E2,  0x02E3,
-  0x02E4,  0x02E5,
-  0x02E6,  0x02E7,
-  0x02E8,  0x02E9,
-  0x02EA,  0x02EB,
-  0x02EC,  0x02ED,
-  0x02EE,  0x02EF,
-  0x02F0,  0x02F1,
-  0x02F2,  0x02F3,
-  0x02F4,  0x02F5,
-  0x02F6,  0x02F7,
-  0x02F8,  0x02F9,
-  0x02FA,  0x02FB,
-  0x02FC,  0x02FD,
-  0x02FE,  0x02FF
-};
-
-static uint32_t plane03[] = {
-  0x0300,  0x0301,
-  0x0302,  0x0303,
-  0x0304,  0x0305,
-  0x0306,  0x0307,
-  0x0308,  0x0309,
-  0x030A,  0x030B,
-  0x030C,  0x030D,
-  0x030E,  0x030F,
-  0x0310,  0x0311,
-  0x0312,  0x0313,
-  0x0314,  0x0315,
-  0x0316,  0x0317,
-  0x0318,  0x0319,
-  0x031A,  0x031B,
-  0x031C,  0x031D,
-  0x031E,  0x031F,
-  0x0320,  0x0321,
-  0x0322,  0x0323,
-  0x0324,  0x0325,
-  0x0326,  0x0327,
-  0x0328,  0x0329,
-  0x032A,  0x032B,
-  0x032C,  0x032D,
-  0x032E,  0x032F,
-  0x0330,  0x0331,
-  0x0332,  0x0333,
-  0x0334,  0x0335,
-  0x0336,  0x0337,
-  0x0338,  0x0339,
-  0x033A,  0x033B,
-  0x033C,  0x033D,
-  0x033E,  0x033F,
-  0x0340,  0x0341,
-  0x0342,  0x0343,
-  0x0344,  0x0399,
-  0x0346,  0x0347,
-  0x0348,  0x0349,
-  0x034A,  0x034B,
-  0x034C,  0x034D,
-  0x034E,  0x034F,
-  0x0350,  0x0351,
-  0x0352,  0x0353,
-  0x0354,  0x0355,
-  0x0356,  0x0357,
-  0x0358,  0x0359,
-  0x035A,  0x035B,
-  0x035C,  0x035D,
-  0x035E,  0x035F,
-  0x0360,  0x0361,
-  0x0362,  0x0363,
-  0x0364,  0x0365,
-  0x0366,  0x0367,
-  0x0368,  0x0369,
-  0x036A,  0x036B,
-  0x036C,  0x036D,
-  0x036E,  0x036F,
-  0x0370,  0x0371,
-  0x0372,  0x0373,
-  0x0374,  0x0375,
-  0x0376,  0x0377,
-  0x0378,  0x0379,
-  0x037A,  0x037B,
-  0x037C,  0x037D,
-  0x037E,  0x037F,
-  0x0380,  0x0381,
-  0x0382,  0x0383,
-  0x0384,  0x0385,
-  0x0391,  0x0387,
-  0x0395,  0x0397,
-  0x0399,  0x038B,
-  0x039F,  0x038D,
-  0x03A5,  0x03A9,
-  0x0399,  0x0391,
-  0x0392,  0x0393,
-  0x0394,  0x0395,
-  0x0396,  0x0397,
-  0x0398,  0x0399,
-  0x039A,  0x039B,
-  0x039C,  0x039D,
-  0x039E,  0x039F,
-  0x03A0,  0x03A1,
-  0x03A2,  0x03A3,
-  0x03A4,  0x03A5,
-  0x03A6,  0x03A7,
-  0x03A8,  0x03A9,
-  0x0399,  0x03A5,
-  0x0391,  0x0395,
-  0x0397,  0x0399,
-  0x03A5,  0x0391,
-  0x0392,  0x0393,
-  0x0394,  0x0395,
-  0x0396,  0x0397,
-  0x0398,  0x0399,
-  0x039A,  0x039B,
-  0x039C,  0x039D,
-  0x039E,  0x039F,
-  0x03A0,  0x03A1,
-  0x03A3,  0x03A3,
-  0x03A4,  0x03A5,
-  0x03A6,  0x03A7,
-  0x03A8,  0x03A9,
-  0x0399,  0x03A5,
-  0x039F,  0x03A5,
-  0x03A9,  0x03CF,
-  0x0392,  0x0398,
-  0x03D2,  0x03D2,
-  0x03D2,  0x03A6,
-  0x03A0,  0x03D7,
-  0x03D8,  0x03D9,
-  0x03DA,  0x03DA,
-  0x03DC,  0x03DC,
-  0x03DE,  0x03DE,
-  0x03E0,  0x03E0,
-  0x03E2,  0x03E2,
-  0x03E4,  0x03E4,
-  0x03E6,  0x03E6,
-  0x03E8,  0x03E8,
-  0x03EA,  0x03EA,
-  0x03EC,  0x03EC,
-  0x03EE,  0x03EE,
-  0x039A,  0x03A1,
-  0x03A3,  0x03F3,
-  0x03F4,  0x03F5,
-  0x03F6,  0x03F7,
-  0x03F8,  0x03F9,
-  0x03FA,  0x03FB,
-  0x03FC,  0x03FD,
-  0x03FE,  0x03FF
-};
-
-static uint32_t plane04[] = {
-  0x0415,  0x0415,
-  0x0402,  0x0413,
-  0x0404,  0x0405,
-  0x0406,  0x0406,
-  0x0408,  0x0409,
-  0x040A,  0x040B,
-  0x041A,  0x0418,
-  0x0423,  0x040F,
-  0x0410,  0x0411,
-  0x0412,  0x0413,
-  0x0414,  0x0415,
-  0x0416,  0x0417,
-  0x0418,  0x0419,
-  0x041A,  0x041B,
-  0x041C,  0x041D,
-  0x041E,  0x041F,
-  0x0420,  0x0421,
-  0x0422,  0x0423,
-  0x0424,  0x0425,
-  0x0426,  0x0427,
-  0x0428,  0x0429,
-  0x042A,  0x042B,
-  0x042C,  0x042D,
-  0x042E,  0x042F,
-  0x0410,  0x0411,
-  0x0412,  0x0413,
-  0x0414,  0x0415,
-  0x0416,  0x0417,
-  0x0418,  0x0419,
-  0x041A,  0x041B,
-  0x041C,  0x041D,
-  0x041E,  0x041F,
-  0x0420,  0x0421,
-  0x0422,  0x0423,
-  0x0424,  0x0425,
-  0x0426,  0x0427,
-  0x0428,  0x0429,
-  0x042A,  0x042B,
-  0x042C,  0x042D,
-  0x042E,  0x042F,
-  0x0415,  0x0415,
-  0x0402,  0x0413,
-  0x0404,  0x0405,
-  0x0406,  0x0406,
-  0x0408,  0x0409,
-  0x040A,  0x040B,
-  0x041A,  0x0418,
-  0x0423,  0x040F,
-  0x0460,  0x0460,
-  0x0462,  0x0462,
-  0x0464,  0x0464,
-  0x0466,  0x0466,
-  0x0468,  0x0468,
-  0x046A,  0x046A,
-  0x046C,  0x046C,
-  0x046E,  0x046E,
-  0x0470,  0x0470,
-  0x0472,  0x0472,
-  0x0474,  0x0474,
-  0x0474,  0x0474,
-  0x0478,  0x0478,
-  0x047A,  0x047A,
-  0x047C,  0x047C,
-  0x047E,  0x047E,
-  0x0480,  0x0480,
-  0x0482,  0x0483,
-  0x0484,  0x0485,
-  0x0486,  0x0487,
-  0x0488,  0x0489,
-  0x048A,  0x048B,
-  0x048C,  0x048C,
-  0x048E,  0x048E,
-  0x0490,  0x0490,
-  0x0492,  0x0492,
-  0x0494,  0x0494,
-  0x0496,  0x0496,
-  0x0498,  0x0498,
-  0x049A,  0x049A,
-  0x049C,  0x049C,
-  0x049E,  0x049E,
-  0x04A0,  0x04A0,
-  0x04A2,  0x04A2,
-  0x04A4,  0x04A4,
-  0x04A6,  0x04A6,
-  0x04A8,  0x04A8,
-  0x04AA,  0x04AA,
-  0x04AC,  0x04AC,
-  0x04AE,  0x04AE,
-  0x04B0,  0x04B0,
-  0x04B2,  0x04B2,
-  0x04B4,  0x04B4,
-  0x04B6,  0x04B6,
-  0x04B8,  0x04B8,
-  0x04BA,  0x04BA,
-  0x04BC,  0x04BC,
-  0x04BE,  0x04BE,
-  0x04C0,  0x0416,
-  0x0416,  0x04C3,
-  0x04C3,  0x04C5,
-  0x04C6,  0x04C7,
-  0x04C7,  0x04C9,
-  0x04CA,  0x04CB,
-  0x04CB,  0x04CD,
-  0x04CE,  0x04CF,
-  0x0410,  0x0410,
-  0x0410,  0x0410,
-  0x04D4,  0x04D4,
-  0x0415,  0x0415,
-  0x04D8,  0x04D8,
-  0x04D8,  0x04D8,
-  0x0416,  0x0416,
-  0x0417,  0x0417,
-  0x04E0,  0x04E0,
-  0x0418,  0x0418,
-  0x0418,  0x0418,
-  0x041E,  0x041E,
-  0x04E8,  0x04E8,
-  0x04E8,  0x04E8,
-  0x042D,  0x042D,
-  0x0423,  0x0423,
-  0x0423,  0x0423,
-  0x0423,  0x0423,
-  0x0427,  0x0427,
-  0x04F6,  0x04F7,
-  0x042B,  0x042B,
-  0x04FA,  0x04FB,
-  0x04FC,  0x04FD,
-  0x04FE,  0x04FF
-};
-
-static uint32_t plane05[] = {
-  0x0500,  0x0501,
-  0x0502,  0x0503,
-  0x0504,  0x0505,
-  0x0506,  0x0507,
-  0x0508,  0x0509,
-  0x050A,  0x050B,
-  0x050C,  0x050D,
-  0x050E,  0x050F,
-  0x0510,  0x0511,
-  0x0512,  0x0513,
-  0x0514,  0x0515,
-  0x0516,  0x0517,
-  0x0518,  0x0519,
-  0x051A,  0x051B,
-  0x051C,  0x051D,
-  0x051E,  0x051F,
-  0x0520,  0x0521,
-  0x0522,  0x0523,
-  0x0524,  0x0525,
-  0x0526,  0x0527,
-  0x0528,  0x0529,
-  0x052A,  0x052B,
-  0x052C,  0x052D,
-  0x052E,  0x052F,
-  0x0530,  0x0531,
-  0x0532,  0x0533,
-  0x0534,  0x0535,
-  0x0536,  0x0537,
-  0x0538,  0x0539,
-  0x053A,  0x053B,
-  0x053C,  0x053D,
-  0x053E,  0x053F,
-  0x0540,  0x0541,
-  0x0542,  0x0543,
-  0x0544,  0x0545,
-  0x0546,  0x0547,
-  0x0548,  0x0549,
-  0x054A,  0x054B,
-  0x054C,  0x054D,
-  0x054E,  0x054F,
-  0x0550,  0x0551,
-  0x0552,  0x0553,
-  0x0554,  0x0555,
-  0x0556,  0x0557,
-  0x0558,  0x0559,
-  0x055A,  0x055B,
-  0x055C,  0x055D,
-  0x055E,  0x055F,
-  0x0560,  0x0531,
-  0x0532,  0x0533,
-  0x0534,  0x0535,
-  0x0536,  0x0537,
-  0x0538,  0x0539,
-  0x053A,  0x053B,
-  0x053C,  0x053D,
-  0x053E,  0x053F,
-  0x0540,  0x0541,
-  0x0542,  0x0543,
-  0x0544,  0x0545,
-  0x0546,  0x0547,
-  0x0548,  0x0549,
-  0x054A,  0x054B,
-  0x054C,  0x054D,
-  0x054E,  0x054F,
-  0x0550,  0x0551,
-  0x0552,  0x0553,
-  0x0554,  0x0555,
-  0x0556,  0x0587,
-  0x0588,  0x0589,
-  0x058A,  0x058B,
-  0x058C,  0x058D,
-  0x058E,  0x058F,
-  0x0590,  0x0591,
-  0x0592,  0x0593,
-  0x0594,  0x0595,
-  0x0596,  0x0597,
-  0x0598,  0x0599,
-  0x059A,  0x059B,
-  0x059C,  0x059D,
-  0x059E,  0x059F,
-  0x05A0,  0x05A1,
-  0x05A2,  0x05A3,
-  0x05A4,  0x05A5,
-  0x05A6,  0x05A7,
-  0x05A8,  0x05A9,
-  0x05AA,  0x05AB,
-  0x05AC,  0x05AD,
-  0x05AE,  0x05AF,
-  0x05B0,  0x05B1,
-  0x05B2,  0x05B3,
-  0x05B4,  0x05B5,
-  0x05B6,  0x05B7,
-  0x05B8,  0x05B9,
-  0x05BA,  0x05BB,
-  0x05BC,  0x05BD,
-  0x05BE,  0x05BF,
-  0x05C0,  0x05C1,
-  0x05C2,  0x05C3,
-  0x05C4,  0x05C5,
-  0x05C6,  0x05C7,
-  0x05C8,  0x05C9,
-  0x05CA,  0x05CB,
-  0x05CC,  0x05CD,
-  0x05CE,  0x05CF,
-  0x05D0,  0x05D1,
-  0x05D2,  0x05D3,
-  0x05D4,  0x05D5,
-  0x05D6,  0x05D7,
-  0x05D8,  0x05D9,
-  0x05DA,  0x05DB,
-  0x05DC,  0x05DD,
-  0x05DE,  0x05DF,
-  0x05E0,  0x05E1,
-  0x05E2,  0x05E3,
-  0x05E4,  0x05E5,
-  0x05E6,  0x05E7,
-  0x05E8,  0x05E9,
-  0x05EA,  0x05EB,
-  0x05EC,  0x05ED,
-  0x05EE,  0x05EF,
-  0x05F0,  0x05F1,
-  0x05F2,  0x05F3,
-  0x05F4,  0x05F5,
-  0x05F6,  0x05F7,
-  0x05F8,  0x05F9,
-  0x05FA,  0x05FB,
-  0x05FC,  0x05FD,
-  0x05FE,  0x05FF
-};
-
-static uint32_t plane1E[] = {
-  0x0041,  0x0041,
-  0x0042,  0x0042,
-  0x0042,  0x0042,
-  0x0042,  0x0042,
-  0x0043,  0x0043,
-  0x0044,  0x0044,
-  0x0044,  0x0044,
-  0x0044,  0x0044,
-  0x0044,  0x0044,
-  0x0044,  0x0044,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0046,  0x0046,
-  0x0047,  0x0047,
-  0x0048,  0x0048,
-  0x0048,  0x0048,
-  0x0048,  0x0048,
-  0x0048,  0x0048,
-  0x0048,  0x0048,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x004B,  0x004B,
-  0x004B,  0x004B,
-  0x004B,  0x004B,
-  0x004C,  0x004C,
-  0x004C,  0x004C,
-  0x004C,  0x004C,
-  0x004C,  0x004C,
-  0x004D,  0x004D,
-  0x004D,  0x004D,
-  0x004D,  0x004D,
-  0x004E,  0x004E,
-  0x004E,  0x004E,
-  0x004E,  0x004E,
-  0x004E,  0x004E,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x0050,  0x0050,
-  0x0050,  0x0050,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0052,  0x0052,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0053,  0x0053,
-  0x0054,  0x0054,
-  0x0054,  0x0054,
-  0x0054,  0x0054,
-  0x0054,  0x0054,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0056,  0x0056,
-  0x0056,  0x0056,
-  0x0057,  0x0057,
-  0x0057,  0x0057,
-  0x0057,  0x0057,
-  0x0057,  0x0057,
-  0x0057,  0x0057,
-  0x0058,  0x0058,
-  0x0058,  0x0058,
-  0x0059,  0x0059,
-  0x005A,  0x005A,
-  0x005A,  0x005A,
-  0x005A,  0x005A,
-  0x0048,  0x0054,
-  0x0057,  0x0059,
-  0x1E9A,  0x0053,
-  0x1E9C,  0x1E9D,
-  0x1E9E,  0x1E9F,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0041,  0x0041,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0045,  0x0045,
-  0x0049,  0x0049,
-  0x0049,  0x0049,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x004F,  0x004F,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0055,  0x0055,
-  0x0059,  0x0059,
-  0x0059,  0x0059,
-  0x0059,  0x0059,
-  0x0059,  0x0059,
-  0x1EFA,  0x1EFB,
-  0x1EFC,  0x1EFD,
-  0x1EFE,  0x1EFF
-};
-
-static uint32_t plane1F[] = {
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0395,  0x0395,
-  0x0395,  0x0395,
-  0x0395,  0x0395,
-  0x1F16,  0x1F17,
-  0x0395,  0x0395,
-  0x0395,  0x0395,
-  0x0395,  0x0395,
-  0x1F1E,  0x1F1F,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x039F,  0x039F,
-  0x039F,  0x039F,
-  0x039F,  0x039F,
-  0x1F46,  0x1F47,
-  0x039F,  0x039F,
-  0x039F,  0x039F,
-  0x039F,  0x039F,
-  0x1F4E,  0x1F4F,
-  0x03A5,  0x03A5,
-  0x03A5,  0x03A5,
-  0x03A5,  0x03A5,
-  0x03A5,  0x03A5,
-  0x1F58,  0x03A5,
-  0x1F5A,  0x03A5,
-  0x1F5C,  0x03A5,
-  0x1F5E,  0x03A5,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x0391,  0x1FBB,
-  0x0395,  0x1FC9,
-  0x0397,  0x1FCB,
-  0x0399,  0x1FDB,
-  0x039F,  0x1FF9,
-  0x03A5,  0x1FEB,
-  0x03A9,  0x1FFB,
-  0x1F7E,  0x1F7F,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x0397,  0x0397,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x03A9,  0x03A9,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x1FB5,
-  0x0391,  0x0391,
-  0x0391,  0x0391,
-  0x0391,  0x1FBB,
-  0x0391,  0x1FBD,
-  0x0399,  0x1FBF,
-  0x1FC0,  0x1FC1,
-  0x0397,  0x0397,
-  0x0397,  0x1FC5,
-  0x0397,  0x0397,
-  0x0395,  0x1FC9,
-  0x0397,  0x1FCB,
-  0x0397,  0x1FCD,
-  0x1FCE,  0x1FCF,
-  0x0399,  0x0399,
-  0x0399,  0x1FD3,
-  0x1FD4,  0x1FD5,
-  0x0399,  0x0399,
-  0x0399,  0x0399,
-  0x0399,  0x1FDB,
-  0x1FDC,  0x1FDD,
-  0x1FDE,  0x1FDF,
-  0x03A5,  0x03A5,
-  0x03A5,  0x1FE3,
-  0x03A1,  0x03A1,
-  0x03A5,  0x03A5,
-  0x03A5,  0x03A5,
-  0x03A5,  0x1FEB,
-  0x03A1,  0x1FED,
-  0x1FEE,  0x1FEF,
-  0x1FF0,  0x1FF1,
-  0x03A9,  0x03A9,
-  0x03A9,  0x1FF5,
-  0x03A9,  0x03A9,
-  0x039F,  0x1FF9,
-  0x03A9,  0x1FFB,
-  0x03A9,  0x1FFD,
-  0x1FFE,  0x1FFF
-};
-
-static uint32_t plane21[] = {
-  0x2100,  0x2101,
-  0x2102,  0x2103,
-  0x2104,  0x2105,
-  0x2106,  0x2107,
-  0x2108,  0x2109,
-  0x210A,  0x210B,
-  0x210C,  0x210D,
-  0x210E,  0x210F,
-  0x2110,  0x2111,
-  0x2112,  0x2113,
-  0x2114,  0x2115,
-  0x2116,  0x2117,
-  0x2118,  0x2119,
-  0x211A,  0x211B,
-  0x211C,  0x211D,
-  0x211E,  0x211F,
-  0x2120,  0x2121,
-  0x2122,  0x2123,
-  0x2124,  0x2125,
-  0x2126,  0x2127,
-  0x2128,  0x2129,
-  0x212A,  0x212B,
-  0x212C,  0x212D,
-  0x212E,  0x212F,
-  0x2130,  0x2131,
-  0x2132,  0x2133,
-  0x2134,  0x2135,
-  0x2136,  0x2137,
-  0x2138,  0x2139,
-  0x213A,  0x213B,
-  0x213C,  0x213D,
-  0x213E,  0x213F,
-  0x2140,  0x2141,
-  0x2142,  0x2143,
-  0x2144,  0x2145,
-  0x2146,  0x2147,
-  0x2148,  0x2149,
-  0x214A,  0x214B,
-  0x214C,  0x214D,
-  0x214E,  0x214F,
-  0x2150,  0x2151,
-  0x2152,  0x2153,
-  0x2154,  0x2155,
-  0x2156,  0x2157,
-  0x2158,  0x2159,
-  0x215A,  0x215B,
-  0x215C,  0x215D,
-  0x215E,  0x215F,
-  0x2160,  0x2161,
-  0x2162,  0x2163,
-  0x2164,  0x2165,
-  0x2166,  0x2167,
-  0x2168,  0x2169,
-  0x216A,  0x216B,
-  0x216C,  0x216D,
-  0x216E,  0x216F,
-  0x2160,  0x2161,
-  0x2162,  0x2163,
-  0x2164,  0x2165,
-  0x2166,  0x2167,
-  0x2168,  0x2169,
-  0x216A,  0x216B,
-  0x216C,  0x216D,
-  0x216E,  0x216F,
-  0x2180,  0x2181,
-  0x2182,  0x2183,
-  0x2184,  0x2185,
-  0x2186,  0x2187,
-  0x2188,  0x2189,
-  0x218A,  0x218B,
-  0x218C,  0x218D,
-  0x218E,  0x218F,
-  0x2190,  0x2191,
-  0x2192,  0x2193,
-  0x2194,  0x2195,
-  0x2196,  0x2197,
-  0x2198,  0x2199,
-  0x219A,  0x219B,
-  0x219C,  0x219D,
-  0x219E,  0x219F,
-  0x21A0,  0x21A1,
-  0x21A2,  0x21A3,
-  0x21A4,  0x21A5,
-  0x21A6,  0x21A7,
-  0x21A8,  0x21A9,
-  0x21AA,  0x21AB,
-  0x21AC,  0x21AD,
-  0x21AE,  0x21AF,
-  0x21B0,  0x21B1,
-  0x21B2,  0x21B3,
-  0x21B4,  0x21B5,
-  0x21B6,  0x21B7,
-  0x21B8,  0x21B9,
-  0x21BA,  0x21BB,
-  0x21BC,  0x21BD,
-  0x21BE,  0x21BF,
-  0x21C0,  0x21C1,
-  0x21C2,  0x21C3,
-  0x21C4,  0x21C5,
-  0x21C6,  0x21C7,
-  0x21C8,  0x21C9,
-  0x21CA,  0x21CB,
-  0x21CC,  0x21CD,
-  0x21CE,  0x21CF,
-  0x21D0,  0x21D1,
-  0x21D2,  0x21D3,
-  0x21D4,  0x21D5,
-  0x21D6,  0x21D7,
-  0x21D8,  0x21D9,
-  0x21DA,  0x21DB,
-  0x21DC,  0x21DD,
-  0x21DE,  0x21DF,
-  0x21E0,  0x21E1,
-  0x21E2,  0x21E3,
-  0x21E4,  0x21E5,
-  0x21E6,  0x21E7,
-  0x21E8,  0x21E9,
-  0x21EA,  0x21EB,
-  0x21EC,  0x21ED,
-  0x21EE,  0x21EF,
-  0x21F0,  0x21F1,
-  0x21F2,  0x21F3,
-  0x21F4,  0x21F5,
-  0x21F6,  0x21F7,
-  0x21F8,  0x21F9,
-  0x21FA,  0x21FB,
-  0x21FC,  0x21FD,
-  0x21FE,  0x21FF
-};
-
-static uint32_t plane24[] = {
-  0x2400,  0x2401,
-  0x2402,  0x2403,
-  0x2404,  0x2405,
-  0x2406,  0x2407,
-  0x2408,  0x2409,
-  0x240A,  0x240B,
-  0x240C,  0x240D,
-  0x240E,  0x240F,
-  0x2410,  0x2411,
-  0x2412,  0x2413,
-  0x2414,  0x2415,
-  0x2416,  0x2417,
-  0x2418,  0x2419,
-  0x241A,  0x241B,
-  0x241C,  0x241D,
-  0x241E,  0x241F,
-  0x2420,  0x2421,
-  0x2422,  0x2423,
-  0x2424,  0x2425,
-  0x2426,  0x2427,
-  0x2428,  0x2429,
-  0x242A,  0x242B,
-  0x242C,  0x242D,
-  0x242E,  0x242F,
-  0x2430,  0x2431,
-  0x2432,  0x2433,
-  0x2434,  0x2435,
-  0x2436,  0x2437,
-  0x2438,  0x2439,
-  0x243A,  0x243B,
-  0x243C,  0x243D,
-  0x243E,  0x243F,
-  0x2440,  0x2441,
-  0x2442,  0x2443,
-  0x2444,  0x2445,
-  0x2446,  0x2447,
-  0x2448,  0x2449,
-  0x244A,  0x244B,
-  0x244C,  0x244D,
-  0x244E,  0x244F,
-  0x2450,  0x2451,
-  0x2452,  0x2453,
-  0x2454,  0x2455,
-  0x2456,  0x2457,
-  0x2458,  0x2459,
-  0x245A,  0x245B,
-  0x245C,  0x245D,
-  0x245E,  0x245F,
-  0x2460,  0x2461,
-  0x2462,  0x2463,
-  0x2464,  0x2465,
-  0x2466,  0x2467,
-  0x2468,  0x2469,
-  0x246A,  0x246B,
-  0x246C,  0x246D,
-  0x246E,  0x246F,
-  0x2470,  0x2471,
-  0x2472,  0x2473,
-  0x2474,  0x2475,
-  0x2476,  0x2477,
-  0x2478,  0x2479,
-  0x247A,  0x247B,
-  0x247C,  0x247D,
-  0x247E,  0x247F,
-  0x2480,  0x2481,
-  0x2482,  0x2483,
-  0x2484,  0x2485,
-  0x2486,  0x2487,
-  0x2488,  0x2489,
-  0x248A,  0x248B,
-  0x248C,  0x248D,
-  0x248E,  0x248F,
-  0x2490,  0x2491,
-  0x2492,  0x2493,
-  0x2494,  0x2495,
-  0x2496,  0x2497,
-  0x2498,  0x2499,
-  0x249A,  0x249B,
-  0x249C,  0x249D,
-  0x249E,  0x249F,
-  0x24A0,  0x24A1,
-  0x24A2,  0x24A3,
-  0x24A4,  0x24A5,
-  0x24A6,  0x24A7,
-  0x24A8,  0x24A9,
-  0x24AA,  0x24AB,
-  0x24AC,  0x24AD,
-  0x24AE,  0x24AF,
-  0x24B0,  0x24B1,
-  0x24B2,  0x24B3,
-  0x24B4,  0x24B5,
-  0x24B6,  0x24B7,
-  0x24B8,  0x24B9,
-  0x24BA,  0x24BB,
-  0x24BC,  0x24BD,
-  0x24BE,  0x24BF,
-  0x24C0,  0x24C1,
-  0x24C2,  0x24C3,
-  0x24C4,  0x24C5,
-  0x24C6,  0x24C7,
-  0x24C8,  0x24C9,
-  0x24CA,  0x24CB,
-  0x24CC,  0x24CD,
-  0x24CE,  0x24CF,
-  0x24B6,  0x24B7,
-  0x24B8,  0x24B9,
-  0x24BA,  0x24BB,
-  0x24BC,  0x24BD,
-  0x24BE,  0x24BF,
-  0x24C0,  0x24C1,
-  0x24C2,  0x24C3,
-  0x24C4,  0x24C5,
-  0x24C6,  0x24C7,
-  0x24C8,  0x24C9,
-  0x24CA,  0x24CB,
-  0x24CC,  0x24CD,
-  0x24CE,  0x24CF,
-  0x24EA,  0x24EB,
-  0x24EC,  0x24ED,
-  0x24EE,  0x24EF,
-  0x24F0,  0x24F1,
-  0x24F2,  0x24F3,
-  0x24F4,  0x24F5,
-  0x24F6,  0x24F7,
-  0x24F8,  0x24F9,
-  0x24FA,  0x24FB,
-  0x24FC,  0x24FD,
-  0x24FE,  0x24FF
-};
-
-static uint32_t planeFF[] = {
-  0xFF00,  0xFF01,
-  0xFF02,  0xFF03,
-  0xFF04,  0xFF05,
-  0xFF06,  0xFF07,
-  0xFF08,  0xFF09,
-  0xFF0A,  0xFF0B,
-  0xFF0C,  0xFF0D,
-  0xFF0E,  0xFF0F,
-  0xFF10,  0xFF11,
-  0xFF12,  0xFF13,
-  0xFF14,  0xFF15,
-  0xFF16,  0xFF17,
-  0xFF18,  0xFF19,
-  0xFF1A,  0xFF1B,
-  0xFF1C,  0xFF1D,
-  0xFF1E,  0xFF1F,
-  0xFF20,  0xFF21,
-  0xFF22,  0xFF23,
-  0xFF24,  0xFF25,
-  0xFF26,  0xFF27,
-  0xFF28,  0xFF29,
-  0xFF2A,  0xFF2B,
-  0xFF2C,  0xFF2D,
-  0xFF2E,  0xFF2F,
-  0xFF30,  0xFF31,
-  0xFF32,  0xFF33,
-  0xFF34,  0xFF35,
-  0xFF36,  0xFF37,
-  0xFF38,  0xFF39,
-  0xFF3A,  0xFF3B,
-  0xFF3C,  0xFF3D,
-  0xFF3E,  0xFF3F,
-  0xFF40,  0xFF21,
-  0xFF22,  0xFF23,
-  0xFF24,  0xFF25,
-  0xFF26,  0xFF27,
-  0xFF28,  0xFF29,
-  0xFF2A,  0xFF2B,
-  0xFF2C,  0xFF2D,
-  0xFF2E,  0xFF2F,
-  0xFF30,  0xFF31,
-  0xFF32,  0xFF33,
-  0xFF34,  0xFF35,
-  0xFF36,  0xFF37,
-  0xFF38,  0xFF39,
-  0xFF3A,  0xFF5B,
-  0xFF5C,  0xFF5D,
-  0xFF5E,  0xFF5F,
-  0xFF60,  0xFF61,
-  0xFF62,  0xFF63,
-  0xFF64,  0xFF65,
-  0xFF66,  0xFF67,
-  0xFF68,  0xFF69,
-  0xFF6A,  0xFF6B,
-  0xFF6C,  0xFF6D,
-  0xFF6E,  0xFF6F,
-  0xFF70,  0xFF71,
-  0xFF72,  0xFF73,
-  0xFF74,  0xFF75,
-  0xFF76,  0xFF77,
-  0xFF78,  0xFF79,
-  0xFF7A,  0xFF7B,
-  0xFF7C,  0xFF7D,
-  0xFF7E,  0xFF7F,
-  0xFF80,  0xFF81,
-  0xFF82,  0xFF83,
-  0xFF84,  0xFF85,
-  0xFF86,  0xFF87,
-  0xFF88,  0xFF89,
-  0xFF8A,  0xFF8B,
-  0xFF8C,  0xFF8D,
-  0xFF8E,  0xFF8F,
-  0xFF90,  0xFF91,
-  0xFF92,  0xFF93,
-  0xFF94,  0xFF95,
-  0xFF96,  0xFF97,
-  0xFF98,  0xFF99,
-  0xFF9A,  0xFF9B,
-  0xFF9C,  0xFF9D,
-  0xFF9E,  0xFF9F,
-  0xFFA0,  0xFFA1,
-  0xFFA2,  0xFFA3,
-  0xFFA4,  0xFFA5,
-  0xFFA6,  0xFFA7,
-  0xFFA8,  0xFFA9,
-  0xFFAA,  0xFFAB,
-  0xFFAC,  0xFFAD,
-  0xFFAE,  0xFFAF,
-  0xFFB0,  0xFFB1,
-  0xFFB2,  0xFFB3,
-  0xFFB4,  0xFFB5,
-  0xFFB6,  0xFFB7,
-  0xFFB8,  0xFFB9,
-  0xFFBA,  0xFFBB,
-  0xFFBC,  0xFFBD,
-  0xFFBE,  0xFFBF,
-  0xFFC0,  0xFFC1,
-  0xFFC2,  0xFFC3,
-  0xFFC4,  0xFFC5,
-  0xFFC6,  0xFFC7,
-  0xFFC8,  0xFFC9,
-  0xFFCA,  0xFFCB,
-  0xFFCC,  0xFFCD,
-  0xFFCE,  0xFFCF,
-  0xFFD0,  0xFFD1,
-  0xFFD2,  0xFFD3,
-  0xFFD4,  0xFFD5,
-  0xFFD6,  0xFFD7,
-  0xFFD8,  0xFFD9,
-  0xFFDA,  0xFFDB,
-  0xFFDC,  0xFFDD,
-  0xFFDE,  0xFFDF,
-  0xFFE0,  0xFFE1,
-  0xFFE2,  0xFFE3,
-  0xFFE4,  0xFFE5,
-  0xFFE6,  0xFFE7,
-  0xFFE8,  0xFFE9,
-  0xFFEA,  0xFFEB,
-  0xFFEC,  0xFFED,
-  0xFFEE,  0xFFEF,
-  0xFFF0,  0xFFF1,
-  0xFFF2,  0xFFF3,
-  0xFFF4,  0xFFF5,
-  0xFFF6,  0xFFF7,
-  0xFFF8,  0xFFF9,
-  0xFFFA,  0xFFFB,
-  0xFFFC,  0xFFFD,
-  0xFFFE,  0xFFFF
-};
-
-static uint32_t *mysql_unicode_normalize_table[256] = {
- plane00, plane01, plane02, plane03, plane04, plane05,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL, plane1E, plane1F,
-    NULL, plane21,    NULL,    NULL, plane24,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
-    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL, planeFF
-};
-/* based on mysql-5.5.29/strings/ctype-utf8.c: end */
-
 static inline unsigned int
 unichar_to_utf8(uint32_t unichar, char *output)
 {
@@ -1651,11 +149,10 @@ normalize(grn_ctx *ctx, grn_obj *string)
         current_type[-1] |= GRN_CHAR_BLANK;
       }
     } else {
-      if ((0x00 <= plane && plane <= 0xff) &&
-          mysql_unicode_normalize_table[plane]) {
+      if ((0x00 <= plane && plane <= 0xff) && general_ci_table[plane]) {
         uint32_t normalized_code;
         unsigned int n_bytes;
-        normalized_code = mysql_unicode_normalize_table[plane][low_code];
+        normalized_code = general_ci_table[plane][low_code];
         n_bytes = unichar_to_utf8(normalized_code,
                                   normalized + normalized_length_in_bytes);
         normalized_length_in_bytes += n_bytes;

  Added: normalizers/mysql_general_ci_table.h (+565 -0) 100644
===================================================================
--- /dev/null
+++ normalizers/mysql_general_ci_table.h    2013-02-10 21:55:26 +0900 (e1e0c50)
@@ -0,0 +1,565 @@
+/*
+  Copyright(C) 2013  Kouhei Sutou <kou �� clear-code.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; version 2
+  of the License.
+
+  This library 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
+  Library General Public License for more details.
+
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the Free
+  Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+  MA 02110-1301, USA
+
+  This file uses normalization table defined in
+  mysql-5.5.29/strings/ctype-utf8.c.
+  The following is the header of the file:
+
+    Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; version 2
+    of the License.
+
+    This library 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
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+    MA 02110-1301, USA
+
+    UTF8 according RFC 2279
+    Written by Alexander Barkov <bar �� udm.net>
+*/
+
+#ifndef MYSQL_UTF8_H
+#define MYSQL_UTF8_H
+
+#include <stdint.h>
+
+static uint32_t general_ci_plane_00[] = {
+  0x00000, 0x00001, 0x00002, 0x00003, 0x00004, 0x00005, 0x00006, 0x00007,
+  0x00008, 0x00009, 0x0000a, 0x0000b, 0x0000c, 0x0000d, 0x0000e, 0x0000f,
+  0x00010, 0x00011, 0x00012, 0x00013, 0x00014, 0x00015, 0x00016, 0x00017,
+  0x00018, 0x00019, 0x0001a, 0x0001b, 0x0001c, 0x0001d, 0x0001e, 0x0001f,
+  0x00020, 0x00021, 0x00022, 0x00023, 0x00024, 0x00025, 0x00026, 0x00027,
+  0x00028, 0x00029, 0x0002a, 0x0002b, 0x0002c, 0x0002d, 0x0002e, 0x0002f,
+  0x00030, 0x00031, 0x00032, 0x00033, 0x00034, 0x00035, 0x00036, 0x00037,
+  0x00038, 0x00039, 0x0003a, 0x0003b, 0x0003c, 0x0003d, 0x0003e, 0x0003f,
+  0x00040, 0x00041, 0x00042, 0x00043, 0x00044, 0x00045, 0x00046, 0x00047,
+  0x00048, 0x00049, 0x0004a, 0x0004b, 0x0004c, 0x0004d, 0x0004e, 0x0004f,
+  0x00050, 0x00051, 0x00052, 0x00053, 0x00054, 0x00055, 0x00056, 0x00057,
+  0x00058, 0x00059, 0x0005a, 0x0005b, 0x0005c, 0x0005d, 0x0005e, 0x0005f,
+  0x00060, 0x00041, 0x00042, 0x00043, 0x00044, 0x00045, 0x00046, 0x00047,
+  0x00048, 0x00049, 0x0004a, 0x0004b, 0x0004c, 0x0004d, 0x0004e, 0x0004f,
+  0x00050, 0x00051, 0x00052, 0x00053, 0x00054, 0x00055, 0x00056, 0x00057,
+  0x00058, 0x00059, 0x0005a, 0x0007b, 0x0007c, 0x0007d, 0x0007e, 0x0007f,
+  0x00080, 0x00081, 0x00082, 0x00083, 0x00084, 0x00085, 0x00086, 0x00087,
+  0x00088, 0x00089, 0x0008a, 0x0008b, 0x0008c, 0x0008d, 0x0008e, 0x0008f,
+  0x00090, 0x00091, 0x00092, 0x00093, 0x00094, 0x00095, 0x00096, 0x00097,
+  0x00098, 0x00099, 0x0009a, 0x0009b, 0x0009c, 0x0009d, 0x0009e, 0x0009f,
+  0x000a0, 0x000a1, 0x000a2, 0x000a3, 0x000a4, 0x000a5, 0x000a6, 0x000a7,
+  0x000a8, 0x000a9, 0x000aa, 0x000ab, 0x000ac, 0x000ad, 0x000ae, 0x000af,
+  0x000b0, 0x000b1, 0x000b2, 0x000b3, 0x000b4, 0x0039c, 0x000b6, 0x000b7,
+  0x000b8, 0x000b9, 0x000ba, 0x000bb, 0x000bc, 0x000bd, 0x000be, 0x000bf,
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x000c6, 0x00043,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00049, 0x00049, 0x00049, 0x00049,
+  0x000d0, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x000d7,
+  0x000d8, 0x00055, 0x00055, 0x00055, 0x00055, 0x00059, 0x000de, 0x00053,
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x000c6, 0x00043,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00049, 0x00049, 0x00049, 0x00049,
+  0x000d0, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x000f7,
+  0x000d8, 0x00055, 0x00055, 0x00055, 0x00055, 0x00059, 0x000de, 0x00059
+};
+
+static uint32_t general_ci_plane_01[] = {
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00043, 0x00043,
+  0x00043, 0x00043, 0x00043, 0x00043, 0x00043, 0x00043, 0x00044, 0x00044,
+  0x00110, 0x00110, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00047, 0x00047, 0x00047, 0x00047,
+  0x00047, 0x00047, 0x00047, 0x00047, 0x00048, 0x00048, 0x00126, 0x00126,
+  0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049,
+  0x00049, 0x00049, 0x00132, 0x00132, 0x0004a, 0x0004a, 0x0004b, 0x0004b,
+  0x00138, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0013f,
+  0x0013f, 0x00141, 0x00141, 0x0004e, 0x0004e, 0x0004e, 0x0004e, 0x0004e,
+  0x0004e, 0x00149, 0x0014a, 0x0014a, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x00152, 0x00152, 0x00052, 0x00052, 0x00052, 0x00052,
+  0x00052, 0x00052, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053,
+  0x00053, 0x00053, 0x00054, 0x00054, 0x00054, 0x00054, 0x00166, 0x00166,
+  0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00055, 0x00055, 0x00055, 0x00055, 0x00057, 0x00057, 0x00059, 0x00059,
+  0x00059, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x00053,
+  0x00180, 0x00181, 0x00182, 0x00182, 0x00184, 0x00184, 0x00186, 0x00187,
+  0x00187, 0x00189, 0x0018a, 0x0018b, 0x0018b, 0x0018d, 0x0018e, 0x0018f,
+  0x00190, 0x00191, 0x00191, 0x00193, 0x00194, 0x001f6, 0x00196, 0x00197,
+  0x00198, 0x00198, 0x0019a, 0x0019b, 0x0019c, 0x0019d, 0x0019e, 0x0019f,
+  0x0004f, 0x0004f, 0x001a2, 0x001a2, 0x001a4, 0x001a4, 0x001a6, 0x001a7,
+  0x001a7, 0x001a9, 0x001aa, 0x001ab, 0x001ac, 0x001ac, 0x001ae, 0x00055,
+  0x00055, 0x001b1, 0x001b2, 0x001b3, 0x001b3, 0x001b5, 0x001b5, 0x001b7,
+  0x001b8, 0x001b8, 0x001ba, 0x001bb, 0x001bc, 0x001bc, 0x001be, 0x001f7,
+  0x001c0, 0x001c1, 0x001c2, 0x001c3, 0x001c4, 0x001c4, 0x001c4, 0x001c7,
+  0x001c7, 0x001c7, 0x001ca, 0x001ca, 0x001ca, 0x00041, 0x00041, 0x00049,
+  0x00049, 0x0004f, 0x0004f, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x0018e, 0x00041, 0x00041,
+  0x00041, 0x00041, 0x000c6, 0x000c6, 0x001e4, 0x001e4, 0x00047, 0x00047,
+  0x0004b, 0x0004b, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x001b7, 0x001b7,
+  0x0004a, 0x001f1, 0x001f1, 0x001f1, 0x00047, 0x00047, 0x001f6, 0x001f7,
+  0x0004e, 0x0004e, 0x00041, 0x00041, 0x000c6, 0x000c6, 0x000d8, 0x000d8
+};
+
+static uint32_t general_ci_plane_02[] = {
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00045, 0x00045, 0x00045, 0x00045,
+  0x00049, 0x00049, 0x00049, 0x00049, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x00052, 0x00052, 0x00052, 0x00052, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00053, 0x00053, 0x00054, 0x00054, 0x0021c, 0x0021c, 0x00048, 0x00048,
+  0x00220, 0x00221, 0x00222, 0x00222, 0x00224, 0x00224, 0x00041, 0x00041,
+  0x00045, 0x00045, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x00059, 0x00059, 0x00234, 0x00235, 0x00236, 0x00237,
+  0x00238, 0x00239, 0x0023a, 0x0023b, 0x0023c, 0x0023d, 0x0023e, 0x0023f,
+  0x00240, 0x00241, 0x00242, 0x00243, 0x00244, 0x00245, 0x00246, 0x00247,
+  0x00248, 0x00249, 0x0024a, 0x0024b, 0x0024c, 0x0024d, 0x0024e, 0x0024f,
+  0x00250, 0x00251, 0x00252, 0x00181, 0x00186, 0x00255, 0x00189, 0x0018a,
+  0x00258, 0x0018f, 0x0025a, 0x00190, 0x0025c, 0x0025d, 0x0025e, 0x0025f,
+  0x00193, 0x00261, 0x00262, 0x00194, 0x00264, 0x00265, 0x00266, 0x00267,
+  0x00197, 0x00196, 0x0026a, 0x0026b, 0x0026c, 0x0026d, 0x0026e, 0x0019c,
+  0x00270, 0x00271, 0x0019d, 0x00273, 0x00274, 0x0019f, 0x00276, 0x00277,
+  0x00278, 0x00279, 0x0027a, 0x0027b, 0x0027c, 0x0027d, 0x0027e, 0x0027f,
+  0x001a6, 0x00281, 0x00282, 0x001a9, 0x00284, 0x00285, 0x00286, 0x00287,
+  0x001ae, 0x00289, 0x001b1, 0x001b2, 0x0028c, 0x0028d, 0x0028e, 0x0028f,
+  0x00290, 0x00291, 0x001b7, 0x00293, 0x00294, 0x00295, 0x00296, 0x00297,
+  0x00298, 0x00299, 0x0029a, 0x0029b, 0x0029c, 0x0029d, 0x0029e, 0x0029f,
+  0x002a0, 0x002a1, 0x002a2, 0x002a3, 0x002a4, 0x002a5, 0x002a6, 0x002a7,
+  0x002a8, 0x002a9, 0x002aa, 0x002ab, 0x002ac, 0x002ad, 0x002ae, 0x002af,
+  0x002b0, 0x002b1, 0x002b2, 0x002b3, 0x002b4, 0x002b5, 0x002b6, 0x002b7,
+  0x002b8, 0x002b9, 0x002ba, 0x002bb, 0x002bc, 0x002bd, 0x002be, 0x002bf,
+  0x002c0, 0x002c1, 0x002c2, 0x002c3, 0x002c4, 0x002c5, 0x002c6, 0x002c7,
+  0x002c8, 0x002c9, 0x002ca, 0x002cb, 0x002cc, 0x002cd, 0x002ce, 0x002cf,
+  0x002d0, 0x002d1, 0x002d2, 0x002d3, 0x002d4, 0x002d5, 0x002d6, 0x002d7,
+  0x002d8, 0x002d9, 0x002da, 0x002db, 0x002dc, 0x002dd, 0x002de, 0x002df,
+  0x002e0, 0x002e1, 0x002e2, 0x002e3, 0x002e4, 0x002e5, 0x002e6, 0x002e7,
+  0x002e8, 0x002e9, 0x002ea, 0x002eb, 0x002ec, 0x002ed, 0x002ee, 0x002ef,
+  0x002f0, 0x002f1, 0x002f2, 0x002f3, 0x002f4, 0x002f5, 0x002f6, 0x002f7,
+  0x002f8, 0x002f9, 0x002fa, 0x002fb, 0x002fc, 0x002fd, 0x002fe, 0x002ff
+};
+
+static uint32_t general_ci_plane_03[] = {
+  0x00300, 0x00301, 0x00302, 0x00303, 0x00304, 0x00305, 0x00306, 0x00307,
+  0x00308, 0x00309, 0x0030a, 0x0030b, 0x0030c, 0x0030d, 0x0030e, 0x0030f,
+  0x00310, 0x00311, 0x00312, 0x00313, 0x00314, 0x00315, 0x00316, 0x00317,
+  0x00318, 0x00319, 0x0031a, 0x0031b, 0x0031c, 0x0031d, 0x0031e, 0x0031f,
+  0x00320, 0x00321, 0x00322, 0x00323, 0x00324, 0x00325, 0x00326, 0x00327,
+  0x00328, 0x00329, 0x0032a, 0x0032b, 0x0032c, 0x0032d, 0x0032e, 0x0032f,
+  0x00330, 0x00331, 0x00332, 0x00333, 0x00334, 0x00335, 0x00336, 0x00337,
+  0x00338, 0x00339, 0x0033a, 0x0033b, 0x0033c, 0x0033d, 0x0033e, 0x0033f,
+  0x00340, 0x00341, 0x00342, 0x00343, 0x00344, 0x00399, 0x00346, 0x00347,
+  0x00348, 0x00349, 0x0034a, 0x0034b, 0x0034c, 0x0034d, 0x0034e, 0x0034f,
+  0x00350, 0x00351, 0x00352, 0x00353, 0x00354, 0x00355, 0x00356, 0x00357,
+  0x00358, 0x00359, 0x0035a, 0x0035b, 0x0035c, 0x0035d, 0x0035e, 0x0035f,
+  0x00360, 0x00361, 0x00362, 0x00363, 0x00364, 0x00365, 0x00366, 0x00367,
+  0x00368, 0x00369, 0x0036a, 0x0036b, 0x0036c, 0x0036d, 0x0036e, 0x0036f,
+  0x00370, 0x00371, 0x00372, 0x00373, 0x00374, 0x00375, 0x00376, 0x00377,
+  0x00378, 0x00379, 0x0037a, 0x0037b, 0x0037c, 0x0037d, 0x0037e, 0x0037f,
+  0x00380, 0x00381, 0x00382, 0x00383, 0x00384, 0x00385, 0x00391, 0x00387,
+  0x00395, 0x00397, 0x00399, 0x0038b, 0x0039f, 0x0038d, 0x003a5, 0x003a9,
+  0x00399, 0x00391, 0x00392, 0x00393, 0x00394, 0x00395, 0x00396, 0x00397,
+  0x00398, 0x00399, 0x0039a, 0x0039b, 0x0039c, 0x0039d, 0x0039e, 0x0039f,
+  0x003a0, 0x003a1, 0x003a2, 0x003a3, 0x003a4, 0x003a5, 0x003a6, 0x003a7,
+  0x003a8, 0x003a9, 0x00399, 0x003a5, 0x00391, 0x00395, 0x00397, 0x00399,
+  0x003a5, 0x00391, 0x00392, 0x00393, 0x00394, 0x00395, 0x00396, 0x00397,
+  0x00398, 0x00399, 0x0039a, 0x0039b, 0x0039c, 0x0039d, 0x0039e, 0x0039f,
+  0x003a0, 0x003a1, 0x003a3, 0x003a3, 0x003a4, 0x003a5, 0x003a6, 0x003a7,
+  0x003a8, 0x003a9, 0x00399, 0x003a5, 0x0039f, 0x003a5, 0x003a9, 0x003cf,
+  0x00392, 0x00398, 0x003d2, 0x003d2, 0x003d2, 0x003a6, 0x003a0, 0x003d7,
+  0x003d8, 0x003d9, 0x003da, 0x003da, 0x003dc, 0x003dc, 0x003de, 0x003de,
+  0x003e0, 0x003e0, 0x003e2, 0x003e2, 0x003e4, 0x003e4, 0x003e6, 0x003e6,
+  0x003e8, 0x003e8, 0x003ea, 0x003ea, 0x003ec, 0x003ec, 0x003ee, 0x003ee,
+  0x0039a, 0x003a1, 0x003a3, 0x003f3, 0x003f4, 0x003f5, 0x003f6, 0x003f7,
+  0x003f8, 0x003f9, 0x003fa, 0x003fb, 0x003fc, 0x003fd, 0x003fe, 0x003ff
+};
+
+static uint32_t general_ci_plane_04[] = {
+  0x00415, 0x00415, 0x00402, 0x00413, 0x00404, 0x00405, 0x00406, 0x00406,
+  0x00408, 0x00409, 0x0040a, 0x0040b, 0x0041a, 0x00418, 0x00423, 0x0040f,
+  0x00410, 0x00411, 0x00412, 0x00413, 0x00414, 0x00415, 0x00416, 0x00417,
+  0x00418, 0x00419, 0x0041a, 0x0041b, 0x0041c, 0x0041d, 0x0041e, 0x0041f,
+  0x00420, 0x00421, 0x00422, 0x00423, 0x00424, 0x00425, 0x00426, 0x00427,
+  0x00428, 0x00429, 0x0042a, 0x0042b, 0x0042c, 0x0042d, 0x0042e, 0x0042f,
+  0x00410, 0x00411, 0x00412, 0x00413, 0x00414, 0x00415, 0x00416, 0x00417,
+  0x00418, 0x00419, 0x0041a, 0x0041b, 0x0041c, 0x0041d, 0x0041e, 0x0041f,
+  0x00420, 0x00421, 0x00422, 0x00423, 0x00424, 0x00425, 0x00426, 0x00427,
+  0x00428, 0x00429, 0x0042a, 0x0042b, 0x0042c, 0x0042d, 0x0042e, 0x0042f,
+  0x00415, 0x00415, 0x00402, 0x00413, 0x00404, 0x00405, 0x00406, 0x00406,
+  0x00408, 0x00409, 0x0040a, 0x0040b, 0x0041a, 0x00418, 0x00423, 0x0040f,
+  0x00460, 0x00460, 0x00462, 0x00462, 0x00464, 0x00464, 0x00466, 0x00466,
+  0x00468, 0x00468, 0x0046a, 0x0046a, 0x0046c, 0x0046c, 0x0046e, 0x0046e,
+  0x00470, 0x00470, 0x00472, 0x00472, 0x00474, 0x00474, 0x00474, 0x00474,
+  0x00478, 0x00478, 0x0047a, 0x0047a, 0x0047c, 0x0047c, 0x0047e, 0x0047e,
+  0x00480, 0x00480, 0x00482, 0x00483, 0x00484, 0x00485, 0x00486, 0x00487,
+  0x00488, 0x00489, 0x0048a, 0x0048b, 0x0048c, 0x0048c, 0x0048e, 0x0048e,
+  0x00490, 0x00490, 0x00492, 0x00492, 0x00494, 0x00494, 0x00496, 0x00496,
+  0x00498, 0x00498, 0x0049a, 0x0049a, 0x0049c, 0x0049c, 0x0049e, 0x0049e,
+  0x004a0, 0x004a0, 0x004a2, 0x004a2, 0x004a4, 0x004a4, 0x004a6, 0x004a6,
+  0x004a8, 0x004a8, 0x004aa, 0x004aa, 0x004ac, 0x004ac, 0x004ae, 0x004ae,
+  0x004b0, 0x004b0, 0x004b2, 0x004b2, 0x004b4, 0x004b4, 0x004b6, 0x004b6,
+  0x004b8, 0x004b8, 0x004ba, 0x004ba, 0x004bc, 0x004bc, 0x004be, 0x004be,
+  0x004c0, 0x00416, 0x00416, 0x004c3, 0x004c3, 0x004c5, 0x004c6, 0x004c7,
+  0x004c7, 0x004c9, 0x004ca, 0x004cb, 0x004cb, 0x004cd, 0x004ce, 0x004cf,
+  0x00410, 0x00410, 0x00410, 0x00410, 0x004d4, 0x004d4, 0x00415, 0x00415,
+  0x004d8, 0x004d8, 0x004d8, 0x004d8, 0x00416, 0x00416, 0x00417, 0x00417,
+  0x004e0, 0x004e0, 0x00418, 0x00418, 0x00418, 0x00418, 0x0041e, 0x0041e,
+  0x004e8, 0x004e8, 0x004e8, 0x004e8, 0x0042d, 0x0042d, 0x00423, 0x00423,
+  0x00423, 0x00423, 0x00423, 0x00423, 0x00427, 0x00427, 0x004f6, 0x004f7,
+  0x0042b, 0x0042b, 0x004fa, 0x004fb, 0x004fc, 0x004fd, 0x004fe, 0x004ff
+};
+
+static uint32_t general_ci_plane_05[] = {
+  0x00500, 0x00501, 0x00502, 0x00503, 0x00504, 0x00505, 0x00506, 0x00507,
+  0x00508, 0x00509, 0x0050a, 0x0050b, 0x0050c, 0x0050d, 0x0050e, 0x0050f,
+  0x00510, 0x00511, 0x00512, 0x00513, 0x00514, 0x00515, 0x00516, 0x00517,
+  0x00518, 0x00519, 0x0051a, 0x0051b, 0x0051c, 0x0051d, 0x0051e, 0x0051f,
+  0x00520, 0x00521, 0x00522, 0x00523, 0x00524, 0x00525, 0x00526, 0x00527,
+  0x00528, 0x00529, 0x0052a, 0x0052b, 0x0052c, 0x0052d, 0x0052e, 0x0052f,
+  0x00530, 0x00531, 0x00532, 0x00533, 0x00534, 0x00535, 0x00536, 0x00537,
+  0x00538, 0x00539, 0x0053a, 0x0053b, 0x0053c, 0x0053d, 0x0053e, 0x0053f,
+  0x00540, 0x00541, 0x00542, 0x00543, 0x00544, 0x00545, 0x00546, 0x00547,
+  0x00548, 0x00549, 0x0054a, 0x0054b, 0x0054c, 0x0054d, 0x0054e, 0x0054f,
+  0x00550, 0x00551, 0x00552, 0x00553, 0x00554, 0x00555, 0x00556, 0x00557,
+  0x00558, 0x00559, 0x0055a, 0x0055b, 0x0055c, 0x0055d, 0x0055e, 0x0055f,
+  0x00560, 0x00531, 0x00532, 0x00533, 0x00534, 0x00535, 0x00536, 0x00537,
+  0x00538, 0x00539, 0x0053a, 0x0053b, 0x0053c, 0x0053d, 0x0053e, 0x0053f,
+  0x00540, 0x00541, 0x00542, 0x00543, 0x00544, 0x00545, 0x00546, 0x00547,
+  0x00548, 0x00549, 0x0054a, 0x0054b, 0x0054c, 0x0054d, 0x0054e, 0x0054f,
+  0x00550, 0x00551, 0x00552, 0x00553, 0x00554, 0x00555, 0x00556, 0x00587,
+  0x00588, 0x00589, 0x0058a, 0x0058b, 0x0058c, 0x0058d, 0x0058e, 0x0058f,
+  0x00590, 0x00591, 0x00592, 0x00593, 0x00594, 0x00595, 0x00596, 0x00597,
+  0x00598, 0x00599, 0x0059a, 0x0059b, 0x0059c, 0x0059d, 0x0059e, 0x0059f,
+  0x005a0, 0x005a1, 0x005a2, 0x005a3, 0x005a4, 0x005a5, 0x005a6, 0x005a7,
+  0x005a8, 0x005a9, 0x005aa, 0x005ab, 0x005ac, 0x005ad, 0x005ae, 0x005af,
+  0x005b0, 0x005b1, 0x005b2, 0x005b3, 0x005b4, 0x005b5, 0x005b6, 0x005b7,
+  0x005b8, 0x005b9, 0x005ba, 0x005bb, 0x005bc, 0x005bd, 0x005be, 0x005bf,
+  0x005c0, 0x005c1, 0x005c2, 0x005c3, 0x005c4, 0x005c5, 0x005c6, 0x005c7,
+  0x005c8, 0x005c9, 0x005ca, 0x005cb, 0x005cc, 0x005cd, 0x005ce, 0x005cf,
+  0x005d0, 0x005d1, 0x005d2, 0x005d3, 0x005d4, 0x005d5, 0x005d6, 0x005d7,
+  0x005d8, 0x005d9, 0x005da, 0x005db, 0x005dc, 0x005dd, 0x005de, 0x005df,
+  0x005e0, 0x005e1, 0x005e2, 0x005e3, 0x005e4, 0x005e5, 0x005e6, 0x005e7,
+  0x005e8, 0x005e9, 0x005ea, 0x005eb, 0x005ec, 0x005ed, 0x005ee, 0x005ef,
+  0x005f0, 0x005f1, 0x005f2, 0x005f3, 0x005f4, 0x005f5, 0x005f6, 0x005f7,
+  0x005f8, 0x005f9, 0x005fa, 0x005fb, 0x005fc, 0x005fd, 0x005fe, 0x005ff
+};
+
+static uint32_t general_ci_plane_1e[] = {
+  0x00041, 0x00041, 0x00042, 0x00042, 0x00042, 0x00042, 0x00042, 0x00042,
+  0x00043, 0x00043, 0x00044, 0x00044, 0x00044, 0x00044, 0x00044, 0x00044,
+  0x00044, 0x00044, 0x00044, 0x00044, 0x00045, 0x00045, 0x00045, 0x00045,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00046, 0x00046,
+  0x00047, 0x00047, 0x00048, 0x00048, 0x00048, 0x00048, 0x00048, 0x00048,
+  0x00048, 0x00048, 0x00048, 0x00048, 0x00049, 0x00049, 0x00049, 0x00049,
+  0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004c, 0x0004c,
+  0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004d, 0x0004d,
+  0x0004d, 0x0004d, 0x0004d, 0x0004d, 0x0004e, 0x0004e, 0x0004e, 0x0004e,
+  0x0004e, 0x0004e, 0x0004e, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x00050, 0x00050, 0x00050, 0x00050,
+  0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052,
+  0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053,
+  0x00053, 0x00053, 0x00054, 0x00054, 0x00054, 0x00054, 0x00054, 0x00054,
+  0x00054, 0x00054, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00055, 0x00055, 0x00055, 0x00055, 0x00056, 0x00056, 0x00056, 0x00056,
+  0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057,
+  0x00057, 0x00057, 0x00058, 0x00058, 0x00058, 0x00058, 0x00059, 0x00059,
+  0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x00048, 0x00054,
+  0x00057, 0x00059, 0x01e9a, 0x00053, 0x01e9c, 0x01e9d, 0x01e9e, 0x01e9f,
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041,
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041,
+  0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045,
+  0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045,
+  0x00049, 0x00049, 0x00049, 0x00049, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f,
+  0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055,
+  0x00055, 0x00055, 0x00059, 0x00059, 0x00059, 0x00059, 0x00059, 0x00059,
+  0x00059, 0x00059, 0x01efa, 0x01efb, 0x01efc, 0x01efd, 0x01efe, 0x01eff
+};
+
+static uint32_t general_ci_plane_1f[] = {
+  0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391,
+  0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391,
+  0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x01f16, 0x01f17,
+  0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x01f1e, 0x01f1f,
+  0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397,
+  0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397,
+  0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399,
+  0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399,
+  0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x01f46, 0x01f47,
+  0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x01f4e, 0x01f4f,
+  0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5,
+  0x01f58, 0x003a5, 0x01f5a, 0x003a5, 0x01f5c, 0x003a5, 0x01f5e, 0x003a5,
+  0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9,
+  0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9,
+  0x00391, 0x01fbb, 0x00395, 0x01fc9, 0x00397, 0x01fcb, 0x00399, 0x01fdb,
+  0x0039f, 0x01ff9, 0x003a5, 0x01feb, 0x003a9, 0x01ffb, 0x01f7e, 0x01f7f,
+  0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391,
+  0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391,
+  0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397,
+  0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397,
+  0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9,
+  0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9,
+  0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x01fb5, 0x00391, 0x00391,
+  0x00391, 0x00391, 0x00391, 0x01fbb, 0x00391, 0x01fbd, 0x00399, 0x01fbf,
+  0x01fc0, 0x01fc1, 0x00397, 0x00397, 0x00397, 0x01fc5, 0x00397, 0x00397,
+  0x00395, 0x01fc9, 0x00397, 0x01fcb, 0x00397, 0x01fcd, 0x01fce, 0x01fcf,
+  0x00399, 0x00399, 0x00399, 0x01fd3, 0x01fd4, 0x01fd5, 0x00399, 0x00399,
+  0x00399, 0x00399, 0x00399, 0x01fdb, 0x01fdc, 0x01fdd, 0x01fde, 0x01fdf,
+  0x003a5, 0x003a5, 0x003a5, 0x01fe3, 0x003a1, 0x003a1, 0x003a5, 0x003a5,
+  0x003a5, 0x003a5, 0x003a5, 0x01feb, 0x003a1, 0x01fed, 0x01fee, 0x01fef,
+  0x01ff0, 0x01ff1, 0x003a9, 0x003a9, 0x003a9, 0x01ff5, 0x003a9, 0x003a9,
+  0x0039f, 0x01ff9, 0x003a9, 0x01ffb, 0x003a9, 0x01ffd, 0x01ffe, 0x01fff
+};
+
+static uint32_t general_ci_plane_21[] = {
+  0x02100, 0x02101, 0x02102, 0x02103, 0x02104, 0x02105, 0x02106, 0x02107,
+  0x02108, 0x02109, 0x0210a, 0x0210b, 0x0210c, 0x0210d, 0x0210e, 0x0210f,
+  0x02110, 0x02111, 0x02112, 0x02113, 0x02114, 0x02115, 0x02116, 0x02117,
+  0x02118, 0x02119, 0x0211a, 0x0211b, 0x0211c, 0x0211d, 0x0211e, 0x0211f,
+  0x02120, 0x02121, 0x02122, 0x02123, 0x02124, 0x02125, 0x02126, 0x02127,
+  0x02128, 0x02129, 0x0212a, 0x0212b, 0x0212c, 0x0212d, 0x0212e, 0x0212f,
+  0x02130, 0x02131, 0x02132, 0x02133, 0x02134, 0x02135, 0x02136, 0x02137,
+  0x02138, 0x02139, 0x0213a, 0x0213b, 0x0213c, 0x0213d, 0x0213e, 0x0213f,
+  0x02140, 0x02141, 0x02142, 0x02143, 0x02144, 0x02145, 0x02146, 0x02147,
+  0x02148, 0x02149, 0x0214a, 0x0214b, 0x0214c, 0x0214d, 0x0214e, 0x0214f,
+  0x02150, 0x02151, 0x02152, 0x02153, 0x02154, 0x02155, 0x02156, 0x02157,
+  0x02158, 0x02159, 0x0215a, 0x0215b, 0x0215c, 0x0215d, 0x0215e, 0x0215f,
+  0x02160, 0x02161, 0x02162, 0x02163, 0x02164, 0x02165, 0x02166, 0x02167,
+  0x02168, 0x02169, 0x0216a, 0x0216b, 0x0216c, 0x0216d, 0x0216e, 0x0216f,
+  0x02160, 0x02161, 0x02162, 0x02163, 0x02164, 0x02165, 0x02166, 0x02167,
+  0x02168, 0x02169, 0x0216a, 0x0216b, 0x0216c, 0x0216d, 0x0216e, 0x0216f,
+  0x02180, 0x02181, 0x02182, 0x02183, 0x02184, 0x02185, 0x02186, 0x02187,
+  0x02188, 0x02189, 0x0218a, 0x0218b, 0x0218c, 0x0218d, 0x0218e, 0x0218f,
+  0x02190, 0x02191, 0x02192, 0x02193, 0x02194, 0x02195, 0x02196, 0x02197,
+  0x02198, 0x02199, 0x0219a, 0x0219b, 0x0219c, 0x0219d, 0x0219e, 0x0219f,
+  0x021a0, 0x021a1, 0x021a2, 0x021a3, 0x021a4, 0x021a5, 0x021a6, 0x021a7,
+  0x021a8, 0x021a9, 0x021aa, 0x021ab, 0x021ac, 0x021ad, 0x021ae, 0x021af,
+  0x021b0, 0x021b1, 0x021b2, 0x021b3, 0x021b4, 0x021b5, 0x021b6, 0x021b7,
+  0x021b8, 0x021b9, 0x021ba, 0x021bb, 0x021bc, 0x021bd, 0x021be, 0x021bf,
+  0x021c0, 0x021c1, 0x021c2, 0x021c3, 0x021c4, 0x021c5, 0x021c6, 0x021c7,
+  0x021c8, 0x021c9, 0x021ca, 0x021cb, 0x021cc, 0x021cd, 0x021ce, 0x021cf,
+  0x021d0, 0x021d1, 0x021d2, 0x021d3, 0x021d4, 0x021d5, 0x021d6, 0x021d7,
+  0x021d8, 0x021d9, 0x021da, 0x021db, 0x021dc, 0x021dd, 0x021de, 0x021df,
+  0x021e0, 0x021e1, 0x021e2, 0x021e3, 0x021e4, 0x021e5, 0x021e6, 0x021e7,
+  0x021e8, 0x021e9, 0x021ea, 0x021eb, 0x021ec, 0x021ed, 0x021ee, 0x021ef,
+  0x021f0, 0x021f1, 0x021f2, 0x021f3, 0x021f4, 0x021f5, 0x021f6, 0x021f7,
+  0x021f8, 0x021f9, 0x021fa, 0x021fb, 0x021fc, 0x021fd, 0x021fe, 0x021ff
+};
+
+static uint32_t general_ci_plane_24[] = {
+  0x02400, 0x02401, 0x02402, 0x02403, 0x02404, 0x02405, 0x02406, 0x02407,
+  0x02408, 0x02409, 0x0240a, 0x0240b, 0x0240c, 0x0240d, 0x0240e, 0x0240f,
+  0x02410, 0x02411, 0x02412, 0x02413, 0x02414, 0x02415, 0x02416, 0x02417,
+  0x02418, 0x02419, 0x0241a, 0x0241b, 0x0241c, 0x0241d, 0x0241e, 0x0241f,
+  0x02420, 0x02421, 0x02422, 0x02423, 0x02424, 0x02425, 0x02426, 0x02427,
+  0x02428, 0x02429, 0x0242a, 0x0242b, 0x0242c, 0x0242d, 0x0242e, 0x0242f,
+  0x02430, 0x02431, 0x02432, 0x02433, 0x02434, 0x02435, 0x02436, 0x02437,
+  0x02438, 0x02439, 0x0243a, 0x0243b, 0x0243c, 0x0243d, 0x0243e, 0x0243f,
+  0x02440, 0x02441, 0x02442, 0x02443, 0x02444, 0x02445, 0x02446, 0x02447,
+  0x02448, 0x02449, 0x0244a, 0x0244b, 0x0244c, 0x0244d, 0x0244e, 0x0244f,
+  0x02450, 0x02451, 0x02452, 0x02453, 0x02454, 0x02455, 0x02456, 0x02457,
+  0x02458, 0x02459, 0x0245a, 0x0245b, 0x0245c, 0x0245d, 0x0245e, 0x0245f,
+  0x02460, 0x02461, 0x02462, 0x02463, 0x02464, 0x02465, 0x02466, 0x02467,
+  0x02468, 0x02469, 0x0246a, 0x0246b, 0x0246c, 0x0246d, 0x0246e, 0x0246f,
+  0x02470, 0x02471, 0x02472, 0x02473, 0x02474, 0x02475, 0x02476, 0x02477,
+  0x02478, 0x02479, 0x0247a, 0x0247b, 0x0247c, 0x0247d, 0x0247e, 0x0247f,
+  0x02480, 0x02481, 0x02482, 0x02483, 0x02484, 0x02485, 0x02486, 0x02487,
+  0x02488, 0x02489, 0x0248a, 0x0248b, 0x0248c, 0x0248d, 0x0248e, 0x0248f,
+  0x02490, 0x02491, 0x02492, 0x02493, 0x02494, 0x02495, 0x02496, 0x02497,
+  0x02498, 0x02499, 0x0249a, 0x0249b, 0x0249c, 0x0249d, 0x0249e, 0x0249f,
+  0x024a0, 0x024a1, 0x024a2, 0x024a3, 0x024a4, 0x024a5, 0x024a6, 0x024a7,
+  0x024a8, 0x024a9, 0x024aa, 0x024ab, 0x024ac, 0x024ad, 0x024ae, 0x024af,
+  0x024b0, 0x024b1, 0x024b2, 0x024b3, 0x024b4, 0x024b5, 0x024b6, 0x024b7,
+  0x024b8, 0x024b9, 0x024ba, 0x024bb, 0x024bc, 0x024bd, 0x024be, 0x024bf,
+  0x024c0, 0x024c1, 0x024c2, 0x024c3, 0x024c4, 0x024c5, 0x024c6, 0x024c7,
+  0x024c8, 0x024c9, 0x024ca, 0x024cb, 0x024cc, 0x024cd, 0x024ce, 0x024cf,
+  0x024b6, 0x024b7, 0x024b8, 0x024b9, 0x024ba, 0x024bb, 0x024bc, 0x024bd,
+  0x024be, 0x024bf, 0x024c0, 0x024c1, 0x024c2, 0x024c3, 0x024c4, 0x024c5,
+  0x024c6, 0x024c7, 0x024c8, 0x024c9, 0x024ca, 0x024cb, 0x024cc, 0x024cd,
+  0x024ce, 0x024cf, 0x024ea, 0x024eb, 0x024ec, 0x024ed, 0x024ee, 0x024ef,
+  0x024f0, 0x024f1, 0x024f2, 0x024f3, 0x024f4, 0x024f5, 0x024f6, 0x024f7,
+  0x024f8, 0x024f9, 0x024fa, 0x024fb, 0x024fc, 0x024fd, 0x024fe, 0x024ff
+};
+
+static uint32_t general_ci_plane_ff[] = {
+  0x0ff00, 0x0ff01, 0x0ff02, 0x0ff03, 0x0ff04, 0x0ff05, 0x0ff06, 0x0ff07,
+  0x0ff08, 0x0ff09, 0x0ff0a, 0x0ff0b, 0x0ff0c, 0x0ff0d, 0x0ff0e, 0x0ff0f,
+  0x0ff10, 0x0ff11, 0x0ff12, 0x0ff13, 0x0ff14, 0x0ff15, 0x0ff16, 0x0ff17,
+  0x0ff18, 0x0ff19, 0x0ff1a, 0x0ff1b, 0x0ff1c, 0x0ff1d, 0x0ff1e, 0x0ff1f,
+  0x0ff20, 0x0ff21, 0x0ff22, 0x0ff23, 0x0ff24, 0x0ff25, 0x0ff26, 0x0ff27,
+  0x0ff28, 0x0ff29, 0x0ff2a, 0x0ff2b, 0x0ff2c, 0x0ff2d, 0x0ff2e, 0x0ff2f,
+  0x0ff30, 0x0ff31, 0x0ff32, 0x0ff33, 0x0ff34, 0x0ff35, 0x0ff36, 0x0ff37,
+  0x0ff38, 0x0ff39, 0x0ff3a, 0x0ff3b, 0x0ff3c, 0x0ff3d, 0x0ff3e, 0x0ff3f,
+  0x0ff40, 0x0ff21, 0x0ff22, 0x0ff23, 0x0ff24, 0x0ff25, 0x0ff26, 0x0ff27,
+  0x0ff28, 0x0ff29, 0x0ff2a, 0x0ff2b, 0x0ff2c, 0x0ff2d, 0x0ff2e, 0x0ff2f,
+  0x0ff30, 0x0ff31, 0x0ff32, 0x0ff33, 0x0ff34, 0x0ff35, 0x0ff36, 0x0ff37,
+  0x0ff38, 0x0ff39, 0x0ff3a, 0x0ff5b, 0x0ff5c, 0x0ff5d, 0x0ff5e, 0x0ff5f,
+  0x0ff60, 0x0ff61, 0x0ff62, 0x0ff63, 0x0ff64, 0x0ff65, 0x0ff66, 0x0ff67,
+  0x0ff68, 0x0ff69, 0x0ff6a, 0x0ff6b, 0x0ff6c, 0x0ff6d, 0x0ff6e, 0x0ff6f,
+  0x0ff70, 0x0ff71, 0x0ff72, 0x0ff73, 0x0ff74, 0x0ff75, 0x0ff76, 0x0ff77,
+  0x0ff78, 0x0ff79, 0x0ff7a, 0x0ff7b, 0x0ff7c, 0x0ff7d, 0x0ff7e, 0x0ff7f,
+  0x0ff80, 0x0ff81, 0x0ff82, 0x0ff83, 0x0ff84, 0x0ff85, 0x0ff86, 0x0ff87,
+  0x0ff88, 0x0ff89, 0x0ff8a, 0x0ff8b, 0x0ff8c, 0x0ff8d, 0x0ff8e, 0x0ff8f,
+  0x0ff90, 0x0ff91, 0x0ff92, 0x0ff93, 0x0ff94, 0x0ff95, 0x0ff96, 0x0ff97,
+  0x0ff98, 0x0ff99, 0x0ff9a, 0x0ff9b, 0x0ff9c, 0x0ff9d, 0x0ff9e, 0x0ff9f,
+  0x0ffa0, 0x0ffa1, 0x0ffa2, 0x0ffa3, 0x0ffa4, 0x0ffa5, 0x0ffa6, 0x0ffa7,
+  0x0ffa8, 0x0ffa9, 0x0ffaa, 0x0ffab, 0x0ffac, 0x0ffad, 0x0ffae, 0x0ffaf,
+  0x0ffb0, 0x0ffb1, 0x0ffb2, 0x0ffb3, 0x0ffb4, 0x0ffb5, 0x0ffb6, 0x0ffb7,
+  0x0ffb8, 0x0ffb9, 0x0ffba, 0x0ffbb, 0x0ffbc, 0x0ffbd, 0x0ffbe, 0x0ffbf,
+  0x0ffc0, 0x0ffc1, 0x0ffc2, 0x0ffc3, 0x0ffc4, 0x0ffc5, 0x0ffc6, 0x0ffc7,
+  0x0ffc8, 0x0ffc9, 0x0ffca, 0x0ffcb, 0x0ffcc, 0x0ffcd, 0x0ffce, 0x0ffcf,
+  0x0ffd0, 0x0ffd1, 0x0ffd2, 0x0ffd3, 0x0ffd4, 0x0ffd5, 0x0ffd6, 0x0ffd7,
+  0x0ffd8, 0x0ffd9, 0x0ffda, 0x0ffdb, 0x0ffdc, 0x0ffdd, 0x0ffde, 0x0ffdf,
+  0x0ffe0, 0x0ffe1, 0x0ffe2, 0x0ffe3, 0x0ffe4, 0x0ffe5, 0x0ffe6, 0x0ffe7,
+  0x0ffe8, 0x0ffe9, 0x0ffea, 0x0ffeb, 0x0ffec, 0x0ffed, 0x0ffee, 0x0ffef,
+  0x0fff0, 0x0fff1, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff5, 0x0fff6, 0x0fff7,
+  0x0fff8, 0x0fff9, 0x0fffa, 0x0fffb, 0x0fffc, 0x0fffd, 0x0fffe, 0x0ffff
+};
+
+static uint32_t *general_ci_table[256] = {
+  general_ci_plane_00, general_ci_plane_01,
+  general_ci_plane_02, general_ci_plane_03,
+  general_ci_plane_04, general_ci_plane_05,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+  general_ci_plane_1e, general_ci_plane_1f,
+                 NULL, general_ci_plane_21,
+                 NULL,                NULL,
+  general_ci_plane_24,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL,                NULL,
+                 NULL, general_ci_plane_ff
+};
+
+#endif




More information about the Groonga-commit mailing list
Back to archive index